diff --git a/PROMS/AnalyzeLinx/AnalyzeLinx.sln b/PROMS/AnalyzeLinx/AnalyzeLinx.sln deleted file mode 100644 index dc636809..00000000 --- a/PROMS/AnalyzeLinx/AnalyzeLinx.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindLinx", "FindLinx\FindLinx.csproj", "{48CD3831-84A5-45AB-BD36-213359779E21}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {48CD3831-84A5-45AB-BD36-213359779E21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48CD3831-84A5-45AB-BD36-213359779E21}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48CD3831-84A5-45AB-BD36-213359779E21}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48CD3831-84A5-45AB-BD36-213359779E21}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/AnalyzeLinx/FindLinx/FindLinx.csproj b/PROMS/AnalyzeLinx/FindLinx/FindLinx.csproj deleted file mode 100644 index 6f42311b..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/FindLinx.csproj +++ /dev/null @@ -1,78 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {48CD3831-84A5-45AB-BD36-213359779E21} - WinExe - Properties - FindLinx - FindLinx - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmFindLinx.cs - - - - - Designer - frmFindLinx.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/AnalyzeLinx/FindLinx/Program.cs b/PROMS/AnalyzeLinx/FindLinx/Program.cs deleted file mode 100644 index 75e57451..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace FindLinx -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmFindLinx()); - } - } -} \ No newline at end of file diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/AssemblyInfo.cs b/PROMS/AnalyzeLinx/FindLinx/Properties/AssemblyInfo.cs deleted file mode 100644 index b53f3eff..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FindLinx")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FindLinx")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("864d5e18-264c-4257-98d3-a50da715ca19")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.Designer.cs b/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.Designer.cs deleted file mode 100644 index 1c8b3d28..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.5477 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindLinx.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FindLinx.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.resx b/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.Designer.cs b/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.Designer.cs deleted file mode 100644 index baf82eb5..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.5477 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindLinx.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.settings b/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.Designer.cs b/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.Designer.cs deleted file mode 100644 index e8ab7e92..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.Designer.cs +++ /dev/null @@ -1,153 +0,0 @@ -namespace FindLinx -{ - partial class frmFindLinx - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.chooseDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.findLinxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.allDBsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.chooseDBToolStripMenuItem, - this.findLinxToolStripMenuItem, - this.allDBsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(642, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // chooseDBToolStripMenuItem - // - this.chooseDBToolStripMenuItem.Name = "chooseDBToolStripMenuItem"; - this.chooseDBToolStripMenuItem.Size = new System.Drawing.Size(77, 20); - this.chooseDBToolStripMenuItem.Text = "Choose DB"; - this.chooseDBToolStripMenuItem.Click += new System.EventHandler(this.chooseDBToolStripMenuItem_Click); - // - // findLinxToolStripMenuItem - // - this.findLinxToolStripMenuItem.Enabled = false; - this.findLinxToolStripMenuItem.Name = "findLinxToolStripMenuItem"; - this.findLinxToolStripMenuItem.Size = new System.Drawing.Size(63, 20); - this.findLinxToolStripMenuItem.Text = "FindLinx"; - this.findLinxToolStripMenuItem.Click += new System.EventHandler(this.findLinxToolStripMenuItem_Click); - // - // allDBsToolStripMenuItem - // - this.allDBsToolStripMenuItem.Name = "allDBsToolStripMenuItem"; - this.allDBsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); - this.allDBsToolStripMenuItem.Text = "All DBs"; - this.allDBsToolStripMenuItem.Click += new System.EventHandler(this.allDBsToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 328); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(642, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // tbResults - // - this.tbResults.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbResults.Location = new System.Drawing.Point(0, 24); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbResults.Size = new System.Drawing.Size(642, 304); - this.tbResults.TabIndex = 2; - // - // frmFindLinx - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(642, 350); - this.Controls.Add(this.tbResults); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmFindLinx"; - this.Text = "Find Links"; - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem chooseDBToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.ToolStripMenuItem findLinxToolStripMenuItem; - private System.Windows.Forms.TextBox tbResults; - private System.Windows.Forms.ToolStripMenuItem allDBsToolStripMenuItem; - } -} - diff --git a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.cs b/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.cs deleted file mode 100644 index 2ccd4052..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.cs +++ /dev/null @@ -1,378 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.Data.SqlClient; -using System.Text.RegularExpressions; - -namespace FindLinx -{ - public partial class frmFindLinx : Form - { - public frmFindLinx() - { - InitializeComponent(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private static string _SelectedDatabase = null; - public static string SelectedDatabase - { - get { return frmFindLinx._SelectedDatabase; } - set - { - frmFindLinx._SelectedDatabase = value; - _ConnectionString = _MenuConnectionString.Replace("{MENU}", SelectedDatabase); - } - } - private static string _MenuConnectionString = @"Data Source=VOLIAN-SERVER;User Id=proms2010;password=proms2010;Initial Catalog={MENU}"; - private static string _ConnectionString = null; - private Dictionary _MyContents = null; - private void chooseDBToolStripMenuItem_Click(object sender, EventArgs e) - { - ChooseDatabase(); - findLinxToolStripMenuItem.Enabled = true; - LoadContents(); - ResetLinks(); - FindLinks(); - //ShowLinks(SelectedDatabase); - } - private void ChooseDatabase() - { - System.Windows.Forms.ContextMenuStrip cms = BuildDatabaseMenu(); - SelectedDatabase = null; - while (SelectedDatabase == null) - { - cms.Show(new System.Drawing.Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - cms.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - cms.Height) / 2)); - System.Windows.Forms.Application.DoEvents(); - } - } - private static System.Windows.Forms.ContextMenuStrip BuildDatabaseMenu() - { - System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - cms.Items.Add("Choose Database"); - System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (string name in DBNames) - cms.Items.Add(name, null, new EventHandler(Database_Click)); - return cms; - } - private static List _DBNames; - public static List DBNames - { - get - { - if (_DBNames == null) - _DBNames = GetDatabases(); - return _DBNames; - } - } - private static List GetDatabases() - { - List dbNames; - dbNames = new List(); - SelectedDatabase = "master"; - SqlConnection cn = new SqlConnection(_ConnectionString); - cn.Open(); - // SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name not in ('master','model','msdb','tempdb') and name like 'VEPROMS%' order by name", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - foreach (DataRow dr in ds.Tables[0].Rows) - dbNames.Add(dr["name"].ToString()); - return dbNames; - } - private static void Database_Click(object sender, EventArgs e) - { - System.Windows.Forms.ToolStripMenuItem tsmi = sender as System.Windows.Forms.ToolStripMenuItem; - if (tsmi != null) - { - SelectedDatabase = tsmi.Text; - } - } - private void findLinxToolStripMenuItem_Click(object sender, EventArgs e) - { - FindLinks(); - } - private Dictionary DicPrefix; - private Dictionary DicSuffix; - private void ResetLinks() - { - DicPrefix = new Dictionary(); - DicSuffix = new Dictionary(); - } - private void ShowLinks(string selectedDatabase) - { - tbResults.Clear(); - SortedList srtPrefixes = new SortedList(new DegreeComparer()); - foreach (string pre in DicPrefix.Keys) - { - srtPrefixes.Add(-DicPrefix[pre], pre); - } - tbResults.AppendText(string.Format("{0} Prefixes\r\n", selectedDatabase)); - foreach (string pre in srtPrefixes.Values) - { - tbResults.AppendText(string.Format("{0},'{1}'\r\n", DicPrefix[pre], pre)); - } - SortedList srtSuffixes = new SortedList(new DegreeComparer()); - foreach (string suf in DicSuffix.Keys) - { - srtSuffixes.Add(-DicSuffix[suf], suf); - } - tbResults.AppendText(string.Format("\r\n{0} Suffixes\r\n", selectedDatabase)); - foreach (string suf in srtSuffixes.Values) - { - tbResults.AppendText(string.Format("{0},'{1}'\r\n", DicSuffix[suf], suf)); - } - } - private void FindLinks() - { - // loop through contents - foreach (int ic in _MyContents.Keys)// for each content record - { - string Text = _MyContents[ic]; - // find all links - //string findLink = @""; // need to only process transitions (no ros) - string findLink = @""; // need to only process transitions (no ros) - MatchCollection ms = Regex.Matches(Text, findLink); - int ii = 0; - foreach (Match mlink in ms)// for each link - { - if (mlink.ToString().Contains("#Link:T")) - { - string key = string.Format("{0}.{1}.{2}", _SelectedDatabase, ic, ii); - if (key == "VEPROMS_BWD.16964.0") Console.WriteLine("Here"); - string oldval = OldTransitionValue(mlink.ToString()); - string newval = NewTransitionValue(mlink.ToString()); - //if (oldval != newval && (!(oldval == "" && newval.Contains("Prerequisite {Prereq")) && !oldval.Contains("{First Step")) && !oldval.Contains("{Page Num")) tbResults.AppendText(string.Format("'{0}','{1}','{2}'\r\n", _SelectedDatabase, oldval, newval)); - if (oldval != newval) tbResults.AppendText(string.Format("'{0}','{1}','{2}','{3}'\r\n", _SelectedDatabase, oldval, newval, mlink.ToString())); - ii++; // instance of transition - } - } - } - } - private string OldTransitionValue(string _TextAndLink) - { - Match m = Regex.Match(_TextAndLink, @""); - return m.Groups[3].ToString(); - } - private string NewTransitionValue(string _TextAndLink) - { - Match m = Regex.Match(_TextAndLink, @""); // get value string including formatting. - string mtxt = m.Groups[1].ToString(); - mtxt = Regex.Replace(mtxt, @"^(\\[^v \\]+)*\\v0", ""); // replace the rtf commands that occur prior to the value string - if (mtxt.StartsWith(" ")) mtxt = mtxt.Substring(1); - mtxt = Regex.Replace(mtxt, @"\\v(\\[^v \\]+)* $", ""); // replace the rtf commands that occur after to the value string - mtxt = Regex.Replace(mtxt, @"(\\ulnone|\\b0)+$", ""); - return mtxt; - } - private string GetValuePrefix(string Text, Match mlink, int lastlink) - { - throw new Exception("The method or operation is not implemented."); - } - private string SuffixPattern(string suffix) - { - string firstchar = ""; - suffix = suffix.Replace("\r", "{CR}"); - suffix = suffix.Replace("\n", "{LF}"); - if (Regex.IsMatch(suffix, @"^(\\(b0|b|ulnone|ul))+\\")) - { - firstchar = "{RTFCommand}"; - suffix = Regex.Replace(suffix, @"^(\\(b0|b|ulnone|ul))+", ""); - } - if (suffix == @"\v0 ") - return @"Pattern','" + firstchar + @"\v0{Space}"; - if (suffix == @"\v0") - return @"Pattern','" + firstchar + @"\v0"; - return _SelectedDatabase + "','" + suffix; - } - private string GetSuffix(string Text, Match mlink, int iEnd) - { - int iStart = mlink.Index + mlink.Length; - //int iEnd = (mlink.NextMatch() == null) ? Text.Length : mlink.NextMatch().Index; - string follows = Text.Substring(iStart,iEnd-iStart); - int iEndComment = follows.IndexOf("\\v0"); - if (follows.Length > 3 + iEndComment) - { - if (follows.Substring(iEndComment + 3, 1) == " ") - return follows.Substring(0, iEndComment + 4); - if (follows.Substring(iEndComment + 3, 1) == "\\") - return follows.Substring(0, iEndComment + 3); - return follows.Substring(0, iEndComment + 3); - } - return follows; - } - public class DegreeComparer : IComparer - { - #region IComparer Members - public int Compare(int x, int y) - { - if (x < y) - return -1; - else - return 1; - } - #endregion - } - private string PrefixPattern(string prefix) - { - string firstchar = ""; - if(prefix.StartsWith(" ")) - { - firstchar = "{Space}"; - prefix = prefix.Substring(1); - } - else if (prefix.StartsWith("\n")) - { - firstchar = "{Newline}"; - prefix = prefix.Substring(1); - } - else if (prefix.StartsWith("\xa0")) - { - firstchar = "{HardSpace}"; - prefix = prefix.Substring(1); - } - else if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?")) - { - firstchar = "{Unicode}"; - prefix=Regex.Replace(prefix, @"^\\u[0-9]{1,4}\?",""); - } - else if (Regex.IsMatch(prefix, @"^\\'[0-9a-fA-F]{2}")) - { - firstchar = "{Hexcode}"; - prefix = Regex.Replace(prefix, @"^\\'[0-9a-fA-F]{2}", ""); - } - else if (Regex.IsMatch(prefix, @"^[:.()\[\]""*=<>]")) - { - firstchar = "{Punctuation}"; - prefix = Regex.Replace(prefix, @"^[:.()\[\]""*=<>]", ""); - } - else if (Regex.IsMatch(prefix, @"^\\[{}~]")) - { - firstchar = "{Special}"; - prefix = Regex.Replace(prefix, @"^\\[{}~]", ""); - } - else if (Regex.IsMatch(prefix, @"^\\(b0|b|ulnone|ul|line)\\")) - { - firstchar = "{RTFCommand}"; - prefix = Regex.Replace(prefix, @"^\\(b0|b|ulnone|ul|line)", ""); - } - if (prefix == @"\v ") - return @"Pattern','" + firstchar +@"\v "; - //if (prefix == @" \v ") - // return @"Pattern-{Space}\v "; - //if (prefix == "\xA0\\v ") - // return @"Pattern-{HardSpace}\v "; - //if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?\\v $")) - // return @"Pattern-" + firstchar + @"{Unicode}\v "; - //if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?.*\\v $")) - // return @"Pattern-" + firstchar + @"{Unicode}{Text}\v "; -// if (Regex.IsMatch(prefix, @"^\\[{}~]\\v $")) -// return @"Pattern-" + firstchar + @"{Special}\v "; -// if (Regex.IsMatch(prefix, @"^ ?[()""\[\]]\\v $")) -// return @"Pattern-" + firstchar + @"{Puctuation}\v "; - if (Regex.IsMatch(prefix, @"^ ?[-%A-Za-z0-9.,/()\[\]]+\\v $")) - return @"Pattern','" + firstchar + @"{Text}\v "; - //if (prefix == "\n\\v ") - // return @"Pattern-{Newline}\v "; - return SelectedDatabase + "','" + prefix; - } - private string GetPrefix(string Text, Match mlink, int lastlink) - { - string precedes = Text.Substring(lastlink, mlink.Index - lastlink); - if(mlink.Index - lastlink <= 3) - return precedes; - - if (precedes.EndsWith(@"\v ")) - { - //int indexSpace = Text.LastIndexOf(' ', mlink.Index - 4); - ////if (indexSpace > mlink.Index) indexSpace = 0; - //int indexCR = Text.LastIndexOf('\n', mlink.Index - 4); - ////if (indexCR > mlink.Index) indexCR = 0; - //if (indexCR >= 0 && indexCR > indexSpace) - // indexSpace = indexCR; - //int indexHS = Text.LastIndexOf('\xA0', mlink.Index - 4); - ////if (indexHS > mlink.Index) indexHS = 0; - //if (indexHS >= 0 && indexHS > indexSpace) - // indexSpace = indexHS; - int indexSpace = Text.LastIndexOfAny(" \n\xA0:.()[]\"<>*=".ToCharArray(), mlink.Index - 4); - int indexSlash = Text.LastIndexOf('\\', mlink.Index - 4); - if (indexSlash >= 0) - { - if (indexSlash > indexSpace) - return Text.Substring(indexSlash, mlink.Index - indexSlash); - } - if (indexSpace >= 0) - { - return Text.Substring(indexSpace, mlink.Index - indexSpace); - } - } - return precedes; - } - private void LoadContents() - { - SqlConnection cn = new SqlConnection(_ConnectionString); - cn.Open(); - //SqlDataAdapter da = new SqlDataAdapter("select ContentID,Text from Contents where ContentID in(select fromID from transitions union select contentid from rousages)", cn); - SqlDataAdapter da = new SqlDataAdapter("select ContentID,Text from Contents where ContentID in(select fromID from transitions)", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - _MyContents = new Dictionary(); - foreach (DataRow dr in ds.Tables[0].Rows) - { - _MyContents.Add((int)dr["ContentID"], dr["Text"].ToString()); - } - //MessageBox.Show(string.Format("{0} Content Records Found", ds.Tables[0].Rows.Count), "Contents Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.Message, ex.GetType().Name, MessageBoxButtons.OK, MessageBoxIcon.Error); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - } - - private void allDBsToolStripMenuItem_Click(object sender, EventArgs e) - { - DateTime tStart = DateTime.Now; - ResetLinks(); - foreach (string dbName in DBNames) - { - SelectedDatabase = dbName; - LoadContents(); - MyStatus = string.Format("{0} - {1} Contents", SelectedDatabase, _MyContents.Count); - FindLinks(); - } - //ShowLinks("All Databases"); - DateTime tEnd = DateTime.Now; - TimeSpan ts = TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks); - MyStatus = string.Format("{0:0.000} Seconds", ts.TotalSeconds); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - } -} \ No newline at end of file diff --git a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.resx b/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.resx deleted file mode 100644 index 7de6988d..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 132, 17 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/BarakahConvert.sln b/PROMS/BarakahConvert/BarakahConvert.sln deleted file mode 100644 index a7311777..00000000 --- a/PROMS/BarakahConvert/BarakahConvert.sln +++ /dev/null @@ -1,105 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLConvert", "XMLConvert\XMLConvert.csproj", "{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CPPConvert", "CPPConvert\CPPConvert.csproj", "{1153363A-3395-4BBA-A507-4FA69132CDFC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertAlarms", "ConvertAlarms\ConvertAlarms.csproj", "{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertLocalAlarms", "ConvertLocalAlarms\ConvertLocalAlarms.csproj", "{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReadFile", "ReadFile\ReadFile.csproj", "{D83BC593-811C-4D32-81B2-9C6031AFDAF5}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 6 - SccLocalPath0 = . - SccProjectUniqueName1 = ConvertAlarms\\ConvertAlarms.csproj - SccLocalPath1 = . - SccProjectFilePathRelativizedFromConnection1 = ConvertAlarms\\ - SccProjectUniqueName2 = ConvertLocalAlarms\\ConvertLocalAlarms.csproj - SccLocalPath2 = . - SccProjectFilePathRelativizedFromConnection2 = ConvertLocalAlarms\\ - SccProjectUniqueName3 = CPPConvert\\CPPConvert.csproj - SccLocalPath3 = . - SccProjectFilePathRelativizedFromConnection3 = CPPConvert\\ - SccProjectUniqueName4 = ReadFile\\ReadFile.csproj - SccLocalPath4 = . - SccProjectFilePathRelativizedFromConnection4 = ReadFile\\ - SccProjectUniqueName5 = XMLConvert\\XMLConvert.csproj - SccLocalPath5 = . - SccProjectFilePathRelativizedFromConnection5 = XMLConvert\\ - EndGlobalSection - 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 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|x86.ActiveCfg = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|x86.Build.0 = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Any CPU.Build.0 = Release|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Mixed Platforms.Build.0 = Release|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|x86.ActiveCfg = Release|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|x86.Build.0 = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|x86.ActiveCfg = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|x86.Build.0 = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Any CPU.Build.0 = Release|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Mixed Platforms.Build.0 = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|x86.ActiveCfg = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|x86.Build.0 = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|x86.ActiveCfg = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|x86.Build.0 = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Any CPU.Build.0 = Release|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Mixed Platforms.Build.0 = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|x86.ActiveCfg = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|x86.Build.0 = Release|x86 - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|x86.ActiveCfg = Debug|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Any CPU.Build.0 = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|x86.ActiveCfg = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|x86.ActiveCfg = Debug|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Any CPU.Build.0 = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|x86.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/BarakahConvert/CPPConvert/App.config b/PROMS/BarakahConvert/CPPConvert/App.config deleted file mode 100644 index bae5d6d8..00000000 --- a/PROMS/BarakahConvert/CPPConvert/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/PROMS/BarakahConvert/CPPConvert/CPPConvert.csproj b/PROMS/BarakahConvert/CPPConvert/CPPConvert.csproj deleted file mode 100644 index 8d0aa6f3..00000000 --- a/PROMS/BarakahConvert/CPPConvert/CPPConvert.csproj +++ /dev/null @@ -1,112 +0,0 @@ - - - - - Debug - AnyCPU - {1153363A-3395-4BBA-A507-4FA69132CDFC} - WinExe - Properties - CPPConvert - CPPConvert - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - x86 - bin\x86\Debug\ - - - x86 - bin\x86\Release\ - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll - - - - - - - - - - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - - - Form - - - frmCPPConvert.cs - - - - - frmCPPConvert.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/CPPConvert/Program.cs b/PROMS/BarakahConvert/CPPConvert/Program.cs deleted file mode 100644 index a3e3366c..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CPPConvert -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmCPPConvert()); - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/CPPConvert/Properties/AssemblyInfo.cs deleted file mode 100644 index eeba6589..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CPPConvert")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CPPConvert")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1e1f432a-54d7-4c79-a5ed-c8c863ca75b0")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/CPPConvert/Properties/Resources.Designer.cs deleted file mode 100644 index bd2d72e4..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +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. -// -//------------------------------------------------------------------------------ - -namespace CPPConvert.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CPPConvert.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.resx b/PROMS/BarakahConvert/CPPConvert/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/BarakahConvert/CPPConvert/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/CPPConvert/Properties/Settings.Designer.cs deleted file mode 100644 index e7da2853..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +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. -// -//------------------------------------------------------------------------------ - -namespace CPPConvert.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/Settings.settings b/PROMS/BarakahConvert/CPPConvert/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.Designer.cs b/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.Designer.cs deleted file mode 100644 index a3449e31..00000000 --- a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.Designer.cs +++ /dev/null @@ -1,236 +0,0 @@ -namespace CPPConvert -{ - partial class frmCPPConvert - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmCPPConvert)); - this.label1 = new System.Windows.Forms.Label(); - this.tbFile = new System.Windows.Forms.TextBox(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.tbDest = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.btnBrowseDest = new System.Windows.Forms.Button(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.processToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pb = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(14, 30); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(47, 13); - this.label1.TabIndex = 0; - this.label1.Text = "CPP File"; - // - // tbFile - // - this.tbFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFile.Location = new System.Drawing.Point(83, 27); - this.tbFile.Name = "tbFile"; - this.tbFile.Size = new System.Drawing.Size(482, 20); - this.tbFile.TabIndex = 1; - this.tbFile.Text = "C:\\Development\\Proms\\Barakah\\SGTR\\1N2-OP-EOP-RC-0002 Rev00 - Steam Generator Tube" + - " Rupture (CPS-CPP).cpp"; - // - // tbResults - // - this.tbResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbResults.Location = new System.Drawing.Point(12, 124); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.tbResults.Size = new System.Drawing.Size(637, 169); - this.tbResults.TabIndex = 3; - // - // btnBrowse - // - this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowse.Location = new System.Drawing.Point(571, 25); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(72, 23); - this.btnBrowse.TabIndex = 4; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbDest - // - this.tbDest.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbDest.Location = new System.Drawing.Point(83, 53); - this.tbDest.Name = "tbDest"; - this.tbDest.Size = new System.Drawing.Size(482, 20); - this.tbDest.TabIndex = 5; - this.tbDest.Text = "C:\\Development\\Proms\\Barakah\\EOP CPPs\\Output"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(14, 53); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(60, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Destination"; - // - // btnBrowseDest - // - this.btnBrowseDest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseDest.Location = new System.Drawing.Point(571, 50); - this.btnBrowseDest.Name = "btnBrowseDest"; - this.btnBrowseDest.Size = new System.Drawing.Size(72, 23); - this.btnBrowseDest.TabIndex = 7; - this.btnBrowseDest.Text = "Browse..."; - this.btnBrowseDest.UseVisualStyleBackColor = true; - this.btnBrowseDest.Click += new System.EventHandler(this.btnBrowseDest_Click); - // - // ofd - // - this.ofd.FileName = "openFileDialog1"; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(661, 24); - this.menuStrip1.TabIndex = 8; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.processToolStripMenuItem, - this.allToolStripMenuItem, - this.testToolStripMenuItem, - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // processToolStripMenuItem - // - this.processToolStripMenuItem.Name = "processToolStripMenuItem"; - this.processToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.processToolStripMenuItem.Text = "&Process"; - this.processToolStripMenuItem.Click += new System.EventHandler(this.processToolStripMenuItem_Click); - // - // allToolStripMenuItem - // - this.allToolStripMenuItem.Name = "allToolStripMenuItem"; - this.allToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.allToolStripMenuItem.Text = "&All"; - this.allToolStripMenuItem.Click += new System.EventHandler(this.allToolStripMenuItem_Click); - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // pb - // - this.pb.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - // - // - // - this.pb.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pb.Location = new System.Drawing.Point(12, 91); - this.pb.Name = "pb"; - this.pb.Size = new System.Drawing.Size(637, 23); - this.pb.TabIndex = 9; - this.pb.Text = "progressBarX1"; - // - // testToolStripMenuItem - // - this.testToolStripMenuItem.Name = "testToolStripMenuItem"; - this.testToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.testToolStripMenuItem.Text = "&Test"; - this.testToolStripMenuItem.Click += new System.EventHandler(this.testToolStripMenuItem_Click); - // - // frmCPPConvert - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(661, 305); - this.Controls.Add(this.pb); - this.Controls.Add(this.btnBrowseDest); - this.Controls.Add(this.label2); - this.Controls.Add(this.tbDest); - this.Controls.Add(this.btnBrowse); - this.Controls.Add(this.tbResults); - this.Controls.Add(this.tbFile); - this.Controls.Add(this.label1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmCPPConvert"; - this.Text = "Extract XML and Image Files"; - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbFile; - private System.Windows.Forms.TextBox tbResults; - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.TextBox tbDest; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button btnBrowseDest; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem processToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private DevComponents.DotNetBar.Controls.ProgressBarX pb; - private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem; - } -} - diff --git a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.cs b/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.cs deleted file mode 100644 index 22c3281c..00000000 --- a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.cs +++ /dev/null @@ -1,310 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; - -namespace CPPConvert -{ - public partial class frmCPPConvert : Form - { - public frmCPPConvert() - { - InitializeComponent(); - } - private long _Offset; - private static long _lastPos = 0l; - private void ReadRecord(BinaryReader br) - { - long curPos = FS.Position; - int nxtPos = PathStartList[0]; - if (nxtPos - 4 != curPos) - { - Console.WriteLine("curpos, nxtpos, lastpos\t{0:X08}\t{1:X08}", curPos - _lastPos, nxtPos- _lastPos); - FS.Seek(nxtPos - 4, SeekOrigin.Begin); - } - PathStartList.RemoveAt(0); - _lastPos = FS.Position; - string filePath = ReadString(br); - Console.WriteLine(filePath.Substring(120,filePath.Length-120)); - string type = ReadString(br); - int pos = (int) FS.Position; - byte [] buf = ReadBuffer(br); - int size = buf.Length; - if (buf.Length > 4 && StartsWith(buf, " 0) - { - FS.Position = pos + buf.Length + 4 - misMatch; - size -= misMatch; - } - } - - //Console.WriteLine("filePath={0}\r\ntype={1}", filePath, type); - if(type.ToLower().Contains("procedure")) - { - tbResults.AppendText(string.Format("Extracted {0}\r\n",PartialName(filePath,type))); - SaveFile(filePath,type,buf,size); - } - } - private string PartialName(string filePath, string type) - { - int skipSlashes = 2 +type.Length - type.Replace("/", "").Length; - int start = filePath.Length; - while(skipSlashes-- > 0) - start = filePath.LastIndexOf('/', start-1); - return filePath.Substring(start+1); - } - private void SaveFile(string filePath, string type, byte[] buf,int size) - { - string fn = (tbDest.Text.EndsWith("/") ? tbDest.Text : tbDest.Text + "/") + PartialName(filePath, type); - BuildPath(fn); - FileStream fs = File.Create(fn); - BinaryWriter bw = new BinaryWriter(fs); - if (filePath.ToUpper().EndsWith(".PNG") && buf[4]==0xA) - { - bw.Write(buf, 0, 4); - bw.Write(Encoding.ASCII.GetBytes("\xD")); - bw.Write(buf, 4, size-4); - } - else - { - } - bw.Write(buf,0,size); - bw.Close(); - } - private void BuildPath(string fn) - { - FileInfo fi = new FileInfo(fn); - fi.Directory.Create(); - } - private string ReadString(BinaryReader br) - { - byte[] buffer = ReadBuffer(br); - return Encoding.BigEndianUnicode.GetString(buffer, 0, buffer.Length); - } - private byte[] ReadBuffer(BinaryReader br) - { - int size = ReadBytesToInt32(br); - if (size == -1) size = 0; - if(size > FS.Length || size < 0) - throw(new Exception(string.Format("Location {0:X08} has a buffer that is too big {1:X08}",FS.Position,size))); - byte[] buffer = new byte[size]; - br.Read(buffer, 0, size); - _Offset += size; - return buffer; - } - private int ReadBytesToInt32(BinaryReader br) - { - byte[] buffer = new byte[4]; - long off = Offset; - br.Read(buffer, 0, 4); - int i = BitConverter.ToInt32(buffer.Reverse().ToArray(), 0); - //if(i>255) Console.WriteLine("{0:X8} - {1:X8}", off,i); - _Offset += 4; - return i; - } - private void btnBrowse_Click(object sender, EventArgs e) - { - ofd.FileName = tbFile.Text; - if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - tbFile.Text = ofd.FileName; - } - private void btnBrowseDest_Click(object sender, EventArgs e) - { - fbd.SelectedPath = tbDest.Text; - if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - tbDest.Text = fbd.SelectedPath; - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - public long Offset - { - get - { - return FS.Seek(0, SeekOrigin.Current); - } - } - FileStream _FS; - public FileStream FS - { - get { return _FS; } - set { _FS = value; } - } - private List _PathStartList; - - public List PathStartList - { - get { return _PathStartList; } - set { _PathStartList = value; } - } - private List GetPathStartList(string findIt,FileStream fs) - { - List lst= new List(); - BinaryReader br = new BinaryReader(FS); - int buflen = (int) FS.Length; - byte [] buf =br.ReadBytes(buflen); - byte[] bFindIt = Encoding.BigEndianUnicode.GetBytes(findIt); - int findlen = bFindIt.Length; - pb.Text = "Looking for C:/"; - pb.Maximum = (int) fs.Length; - for (int i = 0; i < buflen - 4; i++) - { - if (buf[i] == bFindIt[0]) - { - int k=0; - for (; k < findlen; k++) - if (buf[k + i] != bFindIt[k]) - break; - if (k == findlen) lst.Add(i); - } - pb.Value = i; - } - pb.Text = "Done"; - br.Close(); - return lst; - } - -private bool Foundit(byte[] buf, int offset, byte [] bFindIt) -{ - for (int i = 0; i < bFindIt.Length; i++) - if (buf[i + offset] != (int)bFindIt[i]) - return false; - return true; -} - private void processToolStripMenuItem_Click(object sender, EventArgs e) - { - tbResults.Clear(); - ConvertCPP(tbFile.Text); - pb.Text = "All Done"; - } - - private void ConvertCPP(string fileName) - { - FS = File.OpenRead(fileName); - PathStartList = GetPathStartList("C:/", FS); - //Console.WriteLine("===> {0} Paths", PathStartList.Count); - FS = File.OpenRead(fileName); - BinaryReader br = new BinaryReader(FS); - try - { - _Offset = 0; - int nRecords = ReadBytesToInt32(br); - //Console.WriteLine("===> {0} Records", nRecords); - int i = 0; - pb.Text = "Splitting File"; - pb.Maximum = nRecords; - while (_Offset < FS.Length && nRecords-- > 0) - { - ReadRecord(br); - pb.Value = ++i; - } - } - catch (Exception ex) - { - tbResults.AppendText(string.Format("{0} - {1}-{2}\r\n{3}\r\n\r\n", fileName, ex.GetType().Name, ex.Message, ex.StackTrace)); - } - finally - { - br.Close(); - } - } - - private void allToolStripMenuItem_Click(object sender, EventArgs e) - { - tbResults.Clear(); - FileInfo[] myFiles = new FileInfo(tbFile.Text).Directory.GetFiles("*.cpp"); - foreach (FileInfo fi in myFiles) - ConvertCPP(fi.FullName); - pb.Text = "All Done"; - } - - private void testToolStripMenuItem_Click(object sender, EventArgs e) - { - FS = File.OpenRead(tbFile.Text); - PathStartList = GetPathStartList("C:/", FS); - FS = File.OpenRead(tbFile.Text); - BinaryReader br = new BinaryReader(FS); - int nRecords = ReadBytesToInt32(br); - int bytesRead = 4; - int countByThree = 0; - while (bytesRead < FS.Length) - { - if(countByThree % 3 == 0) - { - long curPos = FS.Position; - int nxtPos = PathStartList[0]; - if (nxtPos - 4 != curPos) - { - Console.WriteLine("curpos, nxtpos, lastpos\t{0:X08}\t{1:X08}", curPos - _lastPos, nxtPos - _lastPos); - FS.Seek(nxtPos - 4, SeekOrigin.Begin); - } - PathStartList.RemoveAt(0); - } - _lastPos = FS.Position; - long pos = FS.Position; - int size = ReadBytesToInt32(br); - bytesRead += 4; - byte[] buf = br.ReadBytes(size); - bytesRead += size; - StringBuilder sb = new StringBuilder(); - sb.Append(string.Format("{0:D4} {1:X08} {2:X08} ",countByThree ,pos,size)); - for (int i = 0; i < 120 && i < size; i++) - { - if(buf[i] < 0x20) - sb.Append('.'); - else - sb.Append((char) buf[i]); - } - Console.WriteLine(sb.ToString()); - if (StartsWith(buf, " 0) - { - FS.Position = pos + size + 4 - misMatch; - bytesRead -= misMatch; - } - } - countByThree++; - } - } - - private bool StartsWith(byte[] buf, string findIt) - { - byte[] bFindIt = Encoding.ASCII.GetBytes(findIt); - int findlen = bFindIt.Length; - int k=0; - for (; k < findlen; k++) - if (buf[k] != bFindIt[k]) - return false; - return true; - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.resx b/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.resx deleted file mode 100644 index d3024f8f..00000000 --- a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.resx +++ /dev/null @@ -1,7339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 186, 17 - - - 256, 17 - - - - - AAABAAkAAAAAAAEAIAAoIAQAlgAAAICAAAABACAAKAgBAL4gBABgYAAAAQAgAKiUAADmKAUASEgAAAEA - IACIVAAAjr0FAEBAAAABACAAKEIAABYSBgAwMAAAAQAgAKglAAA+VAYAICAAAAEAIACoEAAA5nkGABgY - AAABACAAiAkAAI6KBgAQEAAAAQAgAGgEAAAWlAYAKAAAAAABAAAAAgAAAQAgAAAAAAAAIAQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADU1NQE1NTUBNTU1ATU1NQE1NTUBNTU1ATY2NQE2NjYBNjY2ATY2NgE2NjYBNjY2ATc3 - NgE3NzYCNzc3Ajc3NwI3NzcDNzc3Azc3NwM4ODcDODg3Azg4NwM4ODgDODg4BDg4OAQ4ODgEODg4BDk5 - OAQ5OTgFOTk4BTk5OQU5OTkFOTk5Bjk5OQY5OTkGOTk5Bjo6OQc6OjkHOjo5Bzo6OQc6OjoHOjo6CDo6 - Ogg6OjoIOjo6CDo6Ogk7OzoJOzs6CTs7Ogk7OzoJOzs6CTs7Ogk7OzoKOzs7Cjs7Owo7OzsKOzs7Cjs7 - Owo7OzsKOzs7Cjs7Owo7OzsKOzs7Cjw8Owo8PDsKPDw7Cjw8Owo8PDsKPDw7Cjw8Owo8PDsKPDw7Cjw8 - Owo8PDsKOzs7Cjs7Owo7OzsKOzs7Cjs7Owo7OzsKOzs7Cjs7Owo7OzsKOzs7Cjs7Ogo7OzoJOzs6CTs7 - Ogk7OzoJOzs6CTs7Ogk6OjoIOjo6CDo6Ogg6OjoIOjo6CDo6Ogc6OjkHOjo5Bzo6OQc6OjkGOTk5Bjk5 - OQY5OTkGOTk5Bjk5OQU5OTgFOTk4BTk5OAQ4ODgEODg4BDg4OAQ4ODgEODg4BDg4OAM4ODcDODg3Azc3 - NwM3NzcDNzc3Azc3NwI3NzcCNzc2Ajc3NgI2NjYBNjY2ATY2NgE2NjYBNjY2ATY2NgE2NjUBNTU1ATU1 - NQE1NTUBNTU1ATU1NQE1NTUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0 - NAE0NDQBNDQ0ATU1NAE1NTUBNTU1ATU1NQE1NTUBNTU1ATU1NQE2NjUBNjY2ATY2NgI2NjYCNjY2AjY2 - NgM3NzYDNzc2Azc3NwM3NzcDNzc3Azc3NwQ3NzcEODg3BDg4NwQ4ODcFODg4BTg4OAU4ODgFODg4Bjg4 - OAY5OTgGOTk4Bzk5OAc5OTkHOTk5Bzk5OQg5OTkIOTk5CDk5OQk6OjkJOjo5CTo6OQo6OjkKOjo6Cjo6 - Ogo6OjoLOjo6Czo6Ogs6OjoMOzs6DDs7Ogw7OzoMOzs6DDs7Ogw7OzoMOzs6DTs7Ow07OzsNOzs7DTs7 - Ow07OzsOOzs7Djs7Ow47OzsOOzs7Djs7Ow48PDsOPDw7Djw8Ow48PDsOPDw7Djw8Ow48PDsOPDw7Djw8 - Ow48PDsOPDw7Djs7Ow47OzsOOzs7Djs7Ow47OzsOOzs7Djs7Ow07OzsNOzs7DTs7Ow07OzoNOzs6DDs7 - Ogw7OzoMOzs6DDs7Ogw7OzoMOjo6Czo6Ogs6OjoLOjo6Cjo6Ogo6OjoKOjo5Cjo6OQk6OjkJOjo5CTk5 - OQg5OTkIOTk5CDk5OQc5OTkHOTk4Bzk5OAc5OTgHODg4Bjg4OAY4ODgFODg4BTg4OAU4ODgFODg3BDg4 - NwQ3NzcENzc3BDc3NwQ3NzcDNzc3Azc3NgM3NzYDNjY2AzY2NgI2NjYCNjY2AjY2NgE2NjYBNjY1ATU1 - NQE1NTUBNTU1ATU1NQE1NTUBNTU1ATU1NAE0NDQBNDQ0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBNDQ0ATQ0 - NAE0NDQBNDQ0ATQ0NAE1NTQBNTU1ATU1NQE1NTUBNTU1ATU1NQE1NTUCNjY1AjY2NgI2NjYDNjY2AzY2 - NgM2NjYDNzc2BDc3NgQ3NzcENzc3BDc3NwQ3NzcFNzc3BTg4NwY4ODcGODg3Bjg4OAc4ODgHODg4Bzg4 - OAg4ODgIOTk4CTk5OAk5OTgJOTk5Cjk5OQo5OTkKOTk5Cjk5OQs5OTkLOjo5DDo6OQw6OjkMOjo5DTo6 - Og06OjoOOjo6Djo6Og46OjoOOjo6Dzs7Og87OzoPOzs6Dzs7OhA7OzoQOzs6EDs7OxA7OzsROzs7ETs7 - OxE7OzsROzs7ETs7OxE7OzsSOzs7Ejs7OxI7OzsSPDw7Ejw8OxI8PDsSPDw7Ejw8OxI8PDsSPDw7Ejw8 - OxI8PDsSPDw7Ejw8OxI7OzsSOzs7Ejs7OxI7OzsROzs7ETs7OxE7OzsROzs7ETs7OxE7OzsQOzs6EDs7 - OhA7OzoQOzs6Dzs7Og87OzoPOzs6Dzo6Og46OjoOOjo6Djo6Og46OjoNOjo6DTo6OQw6OjkMOjo5DDo6 - OQw5OTkLOTk5Czk5OQo5OTkKOTk5Cjk5OAk5OTgJOTk4CTg4OAg4ODgIODg4CDg4OAc4ODgHODg4Bjg4 - NwY4ODcGNzc3BTc3NwU3NzcFNzc3BDc3NwQ3NzYENzc2BDY2NgM2NjYDNjY2AzY2NgM2NjYDNjY2AjY2 - NQI1NTUCNTU1ATU1NQE1NTUBNTU1ATU1NQE1NTQBNDQ0ATQ0NAE0NDQBNDQ0ATQ0NAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwEzMzMBNDQ0ATQ0 - NAE0NDQBNDQ0ATQ0NAE0NDQBNTU0ATU1NQE1NTUCNTU1AjU1NQI1NTUDNTU1AzY2NQM2NjYDNjY2AzY2 - NgQ2NjYENjY2BDc3NgU3NzYFNzc3BTc3NwY3NzcGNzc3Bzc3Nwc4ODcHODg3CDg4Nwg4ODgJODg4CTg4 - OAo4ODgKODg4Cjk5OAs5OTgLOTk4DDk5OQw5OTkNOTk5DTk5OQ45OTkOOjo5Djo6OQ86OjkPOjo5EDo6 - ORA6OjoQOjo6ETo6OhE6OjoROjo6Ejs7OhI7OzoTOzs6Ezs7OhM7OzoUOzs6FDs7OhQ7OzsUOzs7FDs7 - OxU7OzsVOzs7FTs7OxU7OzsVOzs7FTs7OxY7OzsWPDw7Fjw8OxY8PDsWPDw7Fjw8OxY8PDsWPDw7Fjw8 - OxY8PDsWPDw7Fjw8OxY8PDsWPDw7Fjs7OxY7OzsWOzs7FTs7OxU7OzsVOzs7FTs7OxU7OzsUOzs7FDs7 - OhQ7OzoUOzs6FDs7OhM7OzoTOzs6Ezs7OhI6OjoSOjo6Ejo6OhE6OjoROjo6EDo6OhA6OjkQOjo5Dzo6 - OQ86OjkOOTk5Djk5OQ45OTkNOTk5DTk5OQw5OTgMOTk4DDk5OAs4ODgKODg4Cjg4OAo4ODgJODg4CTg4 - OAg4ODcIODg3CDc3Nwc3NzcHNzc3Bjc3NwY3NzcGNzc2BTc3NgU2NjYENjY2BDY2NgQ2NjYENjY2AzY2 - NgM2NjUDNTU1AzU1NQI1NTUCNTU1AjU1NQE1NTUBNTU0ATQ0NAE0NDQBNDQ0ATQ0NAE0NDQBNDQ0ATMz - MwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATMzMwEzMzMBMzMzATQ0 - NAE0NDQBNDQ0ATQ0NAE0NDQBNDQ0ATU1NAI1NTUCNTU1AzU1NQM1NTUDNTU1AzU1NQQ2NjUENjY2BDY2 - NgQ2NjYFNjY2BTY2NgY3NzYGNzc2Bzc3Nwc3NzcINzc3CDc3Nwk3NzcJODg3Cjg4Nwo4ODcKODg4Czg4 - OAw4ODgMODg4DTg4OA05OTgOOTk4Djk5OA85OTkPOTk5EDk5ORA5OTkROTk5ETo6ORI6OjkSOjo5Ezo6 - ORM6OjkUOjo6FDo6OhU6OjoVOjo6FTo6OhY7OzoWOzs6Fjs7Ohc7OzoXOzs6Fzs7Ohg7OzoYOzs7GDs7 - Oxk7OzsZOzs7GTs7Oxk7OzsZOzs7Gjs7Oxo7OzsaOzs7Gjw8Oxo8PDsaPDw7Gzw8Oxs8PDsbPDw7Gzw8 - Oxs8PDsbPDw7Gzw8Oxs8PDsbPDw7Gjw8Oxo7OzsaOzs7Gjs7Oxo7OzsZOzs7GTs7Oxk7OzsZOzs7GTs7 - Oxk7OzsYOzs6GDs7Ohc7OzoXOzs6Fzs7Ohc7OzoWOjo6Fjo6OhU6OjoVOjo6FTo6OhQ6OjoUOjo5Ezo6 - ORM6OjkTOjo5Ejk5ORE5OTkROTk5EDk5ORA5OTkPOTk5Dzk5OA85OTgOOTk4Djg4OA04ODgMODg4DDg4 - OAs4ODgLODg3Cjg4Nwo3NzcJNzc3CTc3Nwg3NzcINzc3Bzc3Ngc3NzYGNjY2BjY2NgY2NjYFNjY2BDY2 - NgQ2NjYENjY1BDU1NQM1NTUDNTU1AzU1NQM1NTUCNTU1AjU1NAI0NDQBNDQ0ATQ0NAE0NDQBNDQ0ATQ0 - NAEzMzMBMzMzATMzMwEzMzMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMBMzMzATMzMwEzMzMBMzMzATMz - MwE0NDQBNDQ0ATQ0NAE0NDQCNDQ0AjQ0NAI1NTQDNTU1AzU1NQM1NTUENTU1BDU1NQQ1NTUFNjY1BTY2 - NgY2NjYGNjY2BzY2Ngc2NjYINzc2CDc3Ngk3NzcJNzc3Cjc3Nwo3NzcLNzc3DDg4Nww4ODcNODg3Djg4 - OA44ODgPODg4Dzg4OBA4ODgQOTk4ETk5OBI5OTgSOTk5Ezk5ORQ5OTkUOTk5FTk5ORU6OjkWOjo5Fjo6 - ORc6OjkXOjo5GDo6Ohk6OjoZOjo6GTo6Oho6OjoaOzs6Gzs7Ohs7OzocOzs6HDs7Ohw7OzodOzs6HTs7 - Ox07OzseOzs7Hjs7Ox47OzseOzs7Hjs7Ox87OzsfOzs7Hzw8Ox88PDsfPDw7Hzw8OyA8PDsgPDw7IDw8 - OyA8PDsgPDw7IDw8OyA8PDsgPDw7Hzw8Ox88PDsfPDw7Hzs7Ox87OzsfOzs7Hjs7Ox47OzseOzs7Hjs7 - Ox47OzsdOzs7HTs7Oh07OzodOzs6HDs7Ohw7OzobOzs6Gzs7Ohs6OjoaOjo6Gjo6Ohk6OjoZOjo6GDo6 - ORc6OjkXOjo5Fzo6ORY6OjkVOTk5FTk5ORQ5OTkUOTk5Ezk5ORM5OTgSOTk4ETk5OBE4ODgQODg4Dzg4 - OA84ODgOODg4Djg4Nw04ODcMNzc3DDc3Nws3NzcKNzc3Cjc3Nwk3NzYJNzc2CDY2Ngg2NjYHNjY2BzY2 - NgY2NjYGNjY2BTY2NQU1NTUENTU1BDU1NQQ1NTUDNTU1AzU1NQM1NTQDNDQ0AjQ0NAI0NDQBNDQ0ATQ0 - NAE0NDQBMzMzATMzMwEzMzMBMzMzATMzMwEzMzMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEzMzMBMzMzATMzMwEzMzMBMzMzATMz - MwEzMzMBNDQ0AjQ0NAI0NDQCNDQ0AzQ0NAM0NDQDNTU0BDU1NQQ1NTUENTU1BTU1NQU1NTUGNTU1BjY2 - NQc2NjYINjY2CDY2Ngk2NjYJNjY2Cjc3Ngo3NzYLNzc3DDc3Nww3NzcNNzc3Djc3Nw84ODcPODg3EDg4 - NxE4ODgRODg4Ejg4OBM4ODgUODg4FDk5OBU5OTgWOTk4Fjk5ORc5OTkYOTk5GTk5ORk5OTkaOjo5Gjo6 - ORs6OjkcOjo5HDo6Oh06OjodOjo6Hjo6Oh46OjofOjo6Hzs7OiA7OzogOzs6ITs7OiE7OzoiOzs6Ijs7 - OyI7OzsiOzs7Izs7OyM7OzsjOzs7JDs7OyQ7OzskOzs7JDw8OyQ8PDslPDw7JTw8OyU8PDslPDw7JTw8 - OyU8PDslPDw7JTw8OyU8PDslPDw7JTw8OyU8PDslPDw7JTw8OyU7OzskOzs7JDs7OyQ7OzskOzs7Izs7 - OyM7OzsjOzs7Izs7OyI7OzoiOzs6Ijs7OiE7OzohOzs6IDs7OiA7OzofOjo6Hzo6Oh46OjoeOjo6Hjo6 - Oh06OjkcOjo5HDo6ORs6OjkbOjo5Gjk5ORk5OTkZOTk5GDk5ORc5OTkXOTk4Fjk5OBU5OTgUODg4FDg4 - OBM4ODgSODg4Ejg4OBE4ODcQODg3EDc3Nw83NzcONzc3Djc3Nw03NzcMNzc2Czc3Ngs2NjYKNjY2CTY2 - Ngk2NjYINjY2CDY2Ngc2NjUHNTU1BjU1NQU1NTUFNTU1BDU1NQQ1NTUENTU0AzQ0NAM0NDQDNDQ0AjQ0 - NAI0NDQCNDQ0ATMzMwEzMzMBMzMzATMzMwEzMzMBMzMzATMzMwEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMzMzATMzMwEzMzMBMzMzATMz - MwEzMzMCMzMzAjQ0NAM0NDQDNDQ0AzQ0NAQ0NDQENDQ0BDU1NAU1NTUFNTU1BjU1NQc1NTUHNTU1CDU1 - NQk2NjUJNjY2CjY2Ngo2NjYLNjY2DDY2Ng03NzYONzc2Djc3Nw83NzcQNzc3ETc3NxE3NzcTODg3Ezg4 - NxQ4ODcVODg4Fjg4OBY4ODgXODg4GDg4OBk5OTgaOTk4Gzk5OBs5OTkcOTk5HTk5OR45OTkfOTk5Hzo6 - OSA6OjkhOjo5ITo6OSI6OjojOjo6Izo6OiQ6OjokOjo6JTs7OiY7OzomOzs6Jzs7Oic7OzooOzs6KDs7 - Oig7OzspOzs7KTs7Oyo7OzsqOzs7Kjs7Oyo7OzsrOzs7Kzs7Oys8PDssPDw7LDw8Oyw8PDssPDw7LDw8 - Oyw8PDssPDw7LDw8Oyw8PDssPDw7LDw8Oyw8PDssPDw7LDw8Oyw8PDssPDw7Kzs7Oys7OzsrOzs7Kjs7 - Oyo7OzsqOzs7Kjs7Oyk7OzspOzs7KTs7Oig7OzooOzs6Jzs7Oic7OzomOzs6Jjo6OiU6OjolOjo6JDo6 - OiQ6OjojOjo6Ijo6OSI6OjkhOjo5IDo6OR85OTkfOTk5Hjk5OR05OTkdOTk5HDk5OBs5OTgaOTk4GTg4 - OBg4ODgYODg4Fzg4OBY4ODgVODg3FDg4NxM3NzcTNzc3Ejc3NxE3NzcQNzc3Dzc3Ng83NzYONjY2DTY2 - Ngw2NjYMNjY2CzY2Ngo2NjYJNjY1CTU1NQg1NTUHNTU1BzU1NQY1NTUFNTU1BTU1NAU0NDQENDQ0BDQ0 - NAM0NDQDNDQ0AzQ0NAIzMzMCMzMzAjMzMwEzMzMBMzMzATMzMwEzMzMBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATMzMwEzMzMBMzMzAjMz - MwIzMzMCMzMzAzMzMwM0NDQDNDQ0BDQ0NAQ0NDQFNDQ0BTQ0NAY1NTQHNTU1BzU1NQg1NTUJNTU1CTU1 - NQo1NTULNjY1DDY2Ng02NjYONjY2DzY2Ng82NjYQNzc2ETc3NhI3NzcTNzc3FDc3NxU3NzcWNzc3Fzg4 - Nxg4ODcZODg3Gjg4OBs4ODgcODg4HTg4OB44ODgfOTk4Hzk5OCA5OTghOTk5Ijk5OSM5OTkkOTk5JTk5 - OSY6OjkmOjo5Jzo6OSg6OjkpOjo6KTo6Oio6OjorOjo6Kzo6Oiw7OzotOzs6LTs7Oi07OzouOzs6Ljs7 - Oi87OzswOzs7MDs7OzA7OzsxOzs7MTs7OzI7OzsyOzs7Mjs7OzI8PDsyPDw7Mzw8OzM8PDszPDw7NDw8 - OzQ8PDs0PDw7NDw8OzQ8PDs0PDw7NDw8OzQ8PDs0PDw7NDw8OzM8PDszPDw7Mzw8OzM8PDsyOzs7Mjs7 - OzI7OzsyOzs7MTs7OzE7OzswOzs7MDs7OzA7OzsvOzs6Ljs7Oi47OzouOzs6LTs7Oi07OzosOjo6Kzo6 - Ois6OjoqOjo6KTo6Oik6OjkoOjo5Jzo6OSc6OjkmOTk5JTk5OSQ5OTkjOTk5Ijk5OSI5OTghOTk4IDk5 - OB84ODgeODg4HTg4OBw4ODgbODg4Gjg4Nxk4ODcYNzc3Fzc3NxY3NzcVNzc3FDc3NxM3NzcTNzc2EjY2 - NhE2NjYQNjY2DzY2Ng42NjYNNjY2DDY2NQs1NTUKNTU1CTU1NQk1NTUINTU1CDU1NQc1NTQGNDQ0BjQ0 - NAU0NDQENDQ0BDQ0NAQ0NDQDMzMzAzMzMwMzMzMCMzMzAjMzMwEzMzMBMzMzATIyMgEyMjIBMjIyATIy - MgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEzMzMBMzMzAjMz - MwMzMzMDMzMzAzMzMwMzMzMENDQ0BDQ0NAU0NDQGNDQ0BjQ0NAc0NDQINTU0CTU1NQk1NTUKNTU1CzU1 - NQw1NTUNNTU1DjY2NQ82NjYQNjY2ETY2NhI2NjYTNjY2FDc3NhU3NzYWNzc3Fzc3Nxg3NzcZNzc3Gzc3 - Nxw4ODcdODg3Hjg4Nx84ODggODg4ITg4OCI4ODgjOTk4JDk5OCU5OTgmOTk5Jzk5OSg5OTkpOTk5Kjk5 - OSs6OjkrOjo5LDo6OS06OjkuOjo6Lzo6OjA6OjowOjo6MTo6OjI7OzoyOzs6Mzs7OjQ7Ozo0Ozs6NTs7 - OjU7Ozs2Ozs7Njs7Ozc7Ozs3Ozs7Nzs7Ozg7Ozs4Ozs7OTs7Ozk8PDs5PDw7OTw8Ozo8PDs6PDw7Ojw8 - Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7OTw8 - Ozk7Ozs5Ozs7OTs7Ozg7Ozs4Ozs7Nzs7Ozc7Ozs3Ozs7Njs7OjU7Ozo1Ozs6NTs7OjQ7OzozOzs6Mzo6 - OjI6OjoyOjo6MDo6OjA6OjovOjo5Ljo6OS06OjktOjo5LDk5OSs5OTkqOTk5KTk5OSg5OTknOTk4Jjk5 - OCU5OTgkODg4Izg4OCI4ODghODg4IDg4OB84ODceODg3HTg4Nxw3NzcbNzc3Gjc3Nxk3NzcXNzc3Fjc3 - NhU2NjYUNjY2EzY2NhI2NjYRNjY2EDY2Ng82NjUONTU1DTU1NQw1NTULNTU1CjU1NQk1NTUJNTU0CDQ0 - NAc0NDQHNDQ0BjQ0NAU0NDQENDQ0BDMzMwQzMzMDMzMzAzMzMwMzMzMCMzMzAjMzMwEyMjIBMjIyATIy - MgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMzMzAjMz - MwMzMzMDMzMzBDMzMwQzMzMEMzMzBTQ0NAY0NDQHNDQ0CDQ0NAg0NDQJNDQ0CjU1NAs1NTUMNTU1DTU1 - NQ41NTUPNTU1EDU1NRE2NjUSNjY2EzY2NhQ2NjYWNjY2FzY2Nhg3NzYZNzc2Gzc3Nxw3NzcdNzc3Hjc3 - Nx83NzchODg3Ijg4NyM4ODgkODg4JTg4OCY4ODgoODg4KTk5OCo5OTgrOTk4LDk5OS05OTkuOTk5Lzk5 - OTA5OTkxOjo5Mjo6OTM6Ojk0Ojo5NTo6OjU6Ojo3Ojo6Nzo6Ojg6Ojo5Ozs6OTs7Ojo7Ozo6Ozs6Ozs7 - Ojw7Ozo8Ozs7PTs7Oz47Ozs+Ozs7Pjs7Oz87Ozs/Ozs7QDs7O0A8PDtAPDw7QDw8O0E8PDtBPDw7QTw8 - O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8 - O0E8PDtAPDw7QDs7O0A7OztAOzs7Pzs7Oz47Ozs+Ozs7Pjs7Oz07Ozs8Ozs6PDs7Ojw7Ozo7Ozs6Ojs7 - Ojo7Ozo5Ojo6ODo6Ojc6Ojo3Ojo6Njo6OjU6Ojk0Ojo5Mzo6OTI6OjkyOTk5MDk5OTA5OTkuOTk5Ljk5 - OSw5OTgrOTk4Kjg4OCk4ODgoODg4Jzg4OCY4ODgkODg3Izg4NyI4ODchNzc3IDc3Nx83NzcdNzc3HDc3 - Nxs3NzYaNzc2GTY2Nhc2NjYWNjY2FTY2NhQ2NjYTNjY1EjU1NRA1NTUPNTU1DjU1NQ01NTUMNTU1CzU1 - NAo0NDQJNDQ0CDQ0NAg0NDQHNDQ0BjQ0NAUzMzMEMzMzBDMzMwQzMzMDMzMzAzMzMwMzMzMCMjIyAjIy - MgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzMz - MwMzMzMDMzMzBDMzMwQzMzMFMzMzBjMzMwc0NDQINDQ0CDQ0NAk0NDQKNDQ0CzQ0NAw1NTQNNTU1DzU1 - NRA1NTURNTU1EjU1NRM1NTUVNjY1FjY2Nhc2NjYZNjY2GjY2Nhs2NjYdNzc2Hjc3NiA3NzchNzc3Ijc3 - NyM3NzclNzc3Jjg4Nyg4ODcpODg4Kjg4OCs4ODgtODg4Ljg4OC85OTgwOTk4Mjk5ODI5OTk0OTk5NTk5 - OTY5OTk3Ojo5ODo6OTk6Ojk6Ojo5Ozo6Ojw6Ojo8Ojo6PTo6Oj46Ojo/Ozs6QDs7OkE7OzpBOzs6Qjs7 - OkM7OzpDOzs7RDs7O0Q7OztFOzs7RTs7O0Y7OztGOzs7Rjw8O0c8PDtHPDw7SDw8O0g8PDtIPDw7SDw8 - O0g8PDtJPDw7STw8O0k8PDtJPDw7STw8O0k8PDtJPDw7STw8O0k8PDtJPDw7STw8O0k8PDtIPDw7SDw8 - O0g8PDtIPDw7SDw8O0c8PDtHOzs7Rjs7O0Y7OztGOzs7RTs7O0U7OztEOzs7RDs7O0M7OzpDOzs6Qjs7 - OkE7OzpBOzs6QDs7Oj86Ojo+Ojo6Pjo6Oj06Ojo8Ojo5Ozo6OTo6Ojk5Ojo5ODk5OTc5OTk2OTk5NTk5 - OTQ5OTkzOTk4Mjk5ODA5OTgwODg4Ljg4OC04ODgsODg4Kzg4Nyk4ODcoODg3Jzc3NyU3NzckNzc3Ijc3 - NyE3NzcgNzc2Hzc3Nh02NjYcNjY2GjY2Nhk2NjYYNjY2FjY2NRU1NTUUNTU1EzU1NRE1NTUQNTU1DzU1 - NQ41NTQNNDQ0DDQ0NAo0NDQJNDQ0CTQ0NAg0NDQHMzMzBjMzMwUzMzMFMzMzBDMzMwQzMzMDMzMzAzIy - MgMyMjICMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgMzMzMEMzMzBDMzMwUzMzMGMzMzBzMzMwgzMzMINDQ0CTQ0NAs0NDQMNDQ0DTQ0NA40NDQPNTU0EDU1 - NRI1NTUTNTU1FTU1NRY1NTUXNjY1GTY2NRs2NjYcNjY2HTY2Nh82NjYgNjY2Ijc3NiM3NzYlNzc3Jjc3 - Nyg3NzcpNzc3Kzg4Nyw4ODcuODg3Lzg4ODA4ODgyODg4Mzg4ODU5OTg2OTk4Nzk5ODg5OTg5OTk5Ojk5 - OTw5OTk9OTk5Pjo6OT86OjlAOjo5QTo6OUI6OjpDOjo6RDo6OkU6OjpGOjo6Rjs7Okc7OzpIOzs6STs7 - Okk7OzpKOzs7Sjs7O0s7OztMOzs7TDs7O007OztNOzs7TTw8O048PDtPPDw7Tzw8O088PDtPPDw7Tzw8 - O1A8PDtQPDw7UDw8O1E8PDtRPDw7UTw8O1E8PDtRPDw7UTw8O1E8PDtRPDw7UTw8O1E8PDtQPDw7UDw8 - O1A8PDtQPDw7Tzw8O088PDtPPDw7Tzw8O048PDtOOzs7TTs7O007OztMOzs7TDs7O0s7OztLOzs7Sjs7 - Oko7OzpJOzs6SDs7Okg7OzpHOjo6Rjo6OkU6OjpEOjo6Qzo6OkI6OjlBOjo5QDo6OT86Ojk+OTk5PTk5 - OTw5OTk7OTk5Ojk5ODg5OTg3OTk4Njg4ODU4ODg0ODg4Mjg4ODE4ODgwODg3Ljg4Ny03NzcrNzc3Kjc3 - Nyg3NzcnNzc3JTc3NiQ3NzYiNjY2ITY2Nh82NjYeNjY2HDY2Nhs2NjUZNTU1GDU1NRY1NTUVNTU1FDU1 - NRI1NTURNTU0EDQ0NA40NDQNNDQ0DDQ0NAs0NDQKNDQ0CTMzMwgzMzMHMzMzBjMzMwUzMzMFMzMzBDMz - MwMyMjIDMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyAzIy - MgQyMjIEMzMzBTMzMwYzMzMHMzMzCDMzMwkzMzMKMzMzCzQ0NAw0NDQONDQ0DzQ0NBA0NDQSNDQ0EzU1 - NBU1NTUWNTU1GDU1NRk1NTUbNTU1HDY2NR42NjYgNjY2IjY2NiM2NjYlNjY2JjY2Nig3NzYqNzc2LDc3 - Ny03NzcvNzc3MDc3NzI4ODc0ODg3NTg4NzY4ODg4ODg4OTg4ODs4ODg8OTk4Pjk5OD85OThAOTk5QTk5 - OUM5OTlEOTk5RTo6OUY6OjlHOjo5SDo6OUk6OjpKOjo6Szo6Okw6OjpNOjo6Tjs7Ok87OzpQOzs6UDs7 - OlE7OzpSOzs7Ujs7O1M7OztUOzs7VDs7O1U7OztVPDw7VTw8O1Y8PDtXPDw7Vzw8O1c8PDtYPDw7WDw8 - O1g8PDtYPDw7WDw8O1g8PDtZPDw7WTw8O1k8PDtZPDw7WTw8O1k8PDtZPDw7WTw8O1k8PDtZPDw7WDw8 - O1g8PDtYPDw7WDw8O1g8PDtYPDw7Vzw8O1c8PDtXPDw7Vjw8O1Y7OztVOzs7VTs7O1Q7OztUOzs7Uzs7 - O1M7OztSOzs6UTs7OlE7OzpQOzs6Tzs7Ok46OjpNOjo6TTo6Okw6OjpLOjo5Sjo6OUk6OjlHOjo5Rzk5 - OUU5OTlEOTk5Qzk5OUI5OThBOTk4Pzk5OD44ODg9ODg4Ozg4ODo4ODg4ODg4Nzg4NzY4ODc0Nzc3Mzc3 - NzE3NzcvNzc3Ljc3Nyw3NzYrNzc2KTY2Nic2NjYlNjY2JDY2NiI2NjYgNjY1HzY2NR01NTUbNTU1GjU1 - NRg1NTUXNTU1FTU1NBQ0NDQSNDQ0ETQ0NA80NDQONDQ0DTQ0NAwzMzMKMzMzCTMzMwgzMzMHMzMzBzMz - MwUzMzMFMjIyBDIyMgMyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAjIyMgMyMjIDMjIyBDIy - MgQyMjIFMjIyBjMzMwczMzMIMzMzCTMzMwozMzMLMzMzDTQ0Mw40NDQPNDQ0ETQ0NBI0NDQUNDQ0FjQ0 - NBc1NTQZNTU1GzU1NR01NTUfNTU1IDU1NSI2NjUkNjY2JjY2Nig2NjYqNjY2KzY2Ni02NjYvNzc2MTc3 - NzM3Nzc0Nzc3Njc3Nzg3Nzc5ODg3Ozg4Nz04ODg+ODg4QDg4OEE4ODhDODg4RTk5OEY5OThHOTk4SDk5 - OUo5OTlLOTk5TDk5OU06OjlPOjo5UDo6OVE6OjlSOjo6Uzo6OlQ6OjpVOjo6VTs7OlY7OzpXOzs6WDs7 - Olk7OzpZOzs7Wjs7O1s7OztbOzs7XDs7O108PDtdPDw7Xjw8O148PDtePDw7Xzw8O188PDtgPDw7YDw8 - O2A8PDtgPDw8YTw8PGE8PDxhPDw8YTw8PGE8PDxiPDw8Yjw8PGI8PDxiPDw8Yjw8PGI8PDxiPDw8YTw8 - PGE8PDxhPDw8YTw8O2A8PDtgPDw7YDw8O2A8PDtfPDw7Xzw8O148PDtePDw7Xjw8O107OztdOzs7XDs7 - O1w7OztbOzs7Wjs7O1k7OzpZOzs6WDs7Olc7OzpXOzs6Vjo6OlU6OjpUOjo6Uzo6OlI6OjlROjo5UDo6 - OU86OjlOOTk5TTk5OUw5OTlKOTk5STk5OEg5OThGOTk4RTg4OEM4ODhCODg4QDg4OD84ODc9ODg3PDg4 - Nzo3Nzc4Nzc3Njc3NzU3NzczNzc2MTc3NjA2NjYuNjY2LDY2Nio2NjYoNjY2JzY2NSU2NjUjNTU1ITU1 - NR81NTUdNTU1HDU1NRo1NTQYNDQ0FjQ0NBU0NDQTNDQ0ETQ0NBA0NDQPMzMzDTMzMwwzMzMKMzMzCTMz - MwgzMzMHMzMzBjIyMgUyMjIEMjIyBDIyMgMyMjIDMjIyAjIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIDMjIyBDIy - MgUyMjIGMjIyBzIyMggzMzMJMzMzCjMzMwszMzMNMzMzDjMzMw80NDMRNDQ0EzQ0NBU0NDQWNDQ0GDQ0 - NBo0NDQcNTU0HjU1NSA1NTUiNTU1JDU1NSY1NTUoNjY1KjY2Niw2NjYuNjY2MDY2NjI2NjY0Nzc2Njc3 - Njg3Nzc5Nzc3Ozc3Nz03Nzc/Nzc3QDg4N0I4ODdEODg4Rjg4OEc4ODhJODg4Sjk5OEw5OThNOTk4Tzk5 - OVA5OTlROTk5Ujk5OVQ6OjlVOjo5Vjo6OVc6OjlYOjo6WTo6Olo6OjpbOjo6XDs7Ol07OzpeOzs6Xjs7 - Ol87OzpgOzs7YTs7O2E7OztiOzs7Yzs7O2M8PDtkPDw7ZDw8O2U8PDtlPDw7ZTw8O2Y8PDtnPDw7Zzw8 - PGc8PDxnPDw8Zzw8PGg8PDxoPDw8aDw8PGk8PDxpPDw8aT09PGk9PTxpPT08aT09PGk8PDxpPDw8aTw8 - PGk8PDxpPDw8aDw8PGg8PDxoPDw8Zzw8PGc8PDxnPDw7Zzw8O2Y8PDtmPDw7ZTw8O2U8PDtlPDw7ZDw8 - O2M7OztjOzs7Yjs7O2I7OzthOzs7YDs7OmA7OzpfOzs6Xjs7Ol06OjpcOjo6Wzo6Ols6OjpZOjo6WTo6 - OVc6OjlWOjo5VTk5OVQ5OTlTOTk5Ujk5OVA5OThPOTk4Tjk5OEw4ODhLODg4STg4OEg4ODhGODg4RTg4 - N0M4ODdBNzc3Pzc3Nz03Nzc8Nzc3Ojc3Nzg3NzY2NjY2NTY2NjI2NjYwNjY2LjY2Niw2NjUqNjY1KTU1 - NSY1NTUkNTU1IjU1NSA1NTUfNTU0HTQ0NBo0NDQZNDQ0FzQ0NBU0NDQTNDQ0EjMzMxAzMzMOMzMzDTMz - MwwzMzMKMzMzCTMzMwgyMjIHMjIyBjIyMgUyMjIEMjIyBDIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIy - MgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBDIy - MgUyMjIGMjIyBzIyMggyMjIJMzMzCjMzMwwzMzMOMzMzDzMzMxEzMzMTNDQzFDQ0NBY0NDQYNDQ0GjQ0 - NBw0NDQeNDQ0ITU1NSM1NTUlNTU1JzU1NSk1NTUsNTU1LTY2NTA2NjYyNjY2NDY2NjY2NjY4NjY2Ojc3 - Njw3NzY/Nzc3QTc3N0I3NzdENzc3Rjc3N0g4ODdKODg3Szg4OE04ODhPODg4UDg4OFI5OThTOTk4VTk5 - OFY5OTlXOTk5WTk5OVo5OTlbOjo5XDo6OV06OjleOjo5Xzo6OmA6OjphOjo6Yjo6OmM7OzpkOzs6ZTs7 - OmY7OzpnOzs7Zzs7O2g7OztpOzs7aTs7O2o8PDtqPDw7azw8O2w8PDtsPDw7bDw8O2w8PDxtPDw8bjw8 - PG48PDxuPDw8bjw8PG48PDxvPDw8bz09PG89PTxvPT08bz09PG89PTxvPT08bz09PG89PTxvPT08bz09 - PG89PTxvPT08bz09PG88PDxvPDw8bzw8PG48PDxuPDw8bjw8PG48PDxtPDw7bTw8O2w8PDtsPDw7bDw8 - O2s8PDtqPDw7ajs7O2o7OztpOzs7aDs7O2c7OzpnOzs6Zjs7OmU7OzpkOzs6Yzo6OmM6OjpiOjo6YTo6 - OmA6OjlfOjo5Xjo6OV06OjlbOTk5Wjk5OVk5OTlYOTk5Vjk5OFU5OThUOTk4Ujg4OFE4ODhPODg4TTg4 - OEw4ODdKODg3SDc3N0c3NzdFNzc3Qzc3N0E3Nzc/Nzc2PTc3Njs2NjY5NjY2NzY2NjU2NjYzNjY2MTY2 - NS41NTUsNTU1KjU1NSg1NTUmNTU1JDU1NCI0NDQfNDQ0HTQ0NBs0NDQZNDQ0FzQ0NBUzMzMTMzMzETMz - MxAzMzMOMzMzDTMzMwszMzMJMjIyCDIyMggyMjIGMjIyBTIyMgQyMjIEMjIyAzIyMgMyMjICMjIyAjIy - MgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBDIy - MgUyMjIGMjIyCDIyMgkyMjIKMjIyCzMzMw0zMzMPMzMzETMzMxIzMzMUMzMzFjQ0Mxg0NDQaNDQ0HTQ0 - NB80NDQhNDQ0JDU1NCY1NTUoNTU1KzU1NS01NTUvNTU1MjU1NTQ2NjU2NjY2OTY2Njs2NjY9NjY2PzY2 - NkE3NzZDNzc2Rjc3N0g3NzdKNzc3Szc3N004ODdPODg3UTg4OFM4ODhUODg4Vjg4OFc4ODhZOTk4Wzk5 - OFw5OTldOTk5Xzk5OWA5OTlhOjo5Yjo6OWM6OjllOjo5ZTo6Omc6OjpnOjo6aTo6Omo7OzpqOzs6azs7 - Omw7OzptOzs7bjs7O247OztvOzs7bzs7O3A8PDtxPDw7cTw8O3E8PDtyPDw7czw8O3M8PDxzPDw8dDw8 - PHQ8PDx1PDw8dTw8PHU9PTx1PT08dT09PHY9PTx2PT08dj09PHY9PTx2PT08dj09PHY9PTx2PT08dj09 - PHY9PTx2PT08dj09PHY9PTx2PT08dT09PHU9PTx1PDw8dTw8PHU8PDx0PDw8dDw8PHM8PDxzPDw7czw8 - O3I8PDtyPDw7cTw8O3E8PDtwOzs7bzs7O287OztuOzs7bjs7Om07OzpsOzs6bDs7Omo7OzpqOjo6aTo6 - Omg6OjpnOjo6Zjo6OWU6OjlkOjo5Yzk5OWE5OTlgOTk5Xzk5OV45OThcOTk4Wzk5OFk4ODhYODg4Vjg4 - OFU4ODhTODg3UTg4N1A3NzdONzc3TDc3N0o3NzdINzc3Rjc3NkQ3NzZCNjY2QDY2Nj42NjY7NjY2OTY2 - Njc2NjU1NTU1MjU1NTA1NTUuNTU1KzU1NSk1NTQnNDQ0JDQ0NCI0NDQgNDQ0HTQ0NBs0NDQZMzMzFjMz - MxUzMzMTMzMzETMzMw8zMzMOMzMzDDIyMgoyMjIJMjIyCDIyMgcyMjIGMjIyBTIyMgQyMjIDMjIyAzIy - MgIyMjICMjIyATIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIHMjIyCDIyMgkyMjIKMjIyDDIyMg4zMzMQMzMzETMzMxQzMzMWMzMzGDMzMxo0NDMcNDQ0HzQ0 - NCI0NDQkNDQ0JjQ0NCk1NTQrNTU1LjU1NTE1NTUzNTU1NjU1NTg1NTU6NjY1PTY2NkA2NjZCNjY2RDY2 - NkY2NjZINzc2Szc3N003NzdPNzc3UTc3N1M3NzdUODg3Vjg4N1g4ODhaODg4XDg4OF04ODhfOTk4YDk5 - OGI5OThjOTk5ZDk5OWY5OTlnOTk5aDo6OWk6OjlqOjo5bDo6Omw6OjpuOjo6bjo6Om87OzpwOzs6cTs7 - OnI7OzpzOzs6czs7O3Q7Ozt1Ozs7dTw8O3Y8PDt2PDw7dzw8O3g8PDt4PDw7eDw8PHk8PDx5PDw8ejw8 - PHo8PDx6PT08ej09PHs9PTx7PT08ez09PHs9PTx7PT08fD09PHw9PTx8PT08fD09PHw9PTx8PT08fD09 - PHw9PTx8PT08fD09PHw9PTx8PT08ez09PHs9PTx7PT08ez09PHs9PTx6PDw8ejw8PHo8PDx6PDw8eTw8 - PHk8PDt4PDw7eDw8O3g8PDt3PDw7djw8O3Y7Ozt2Ozs7dTs7O3Q7Ozt0Ozs6czs7OnI7OzpxOzs6cTo6 - OnA6OjpvOjo6bjo6Om06OjlsOjo5azo6OWo6OjlpOTk5Zzk5OWY5OTllOTk5Yzk5OGI5OThhODg4Xzg4 - OF44ODhcODg4Wjg4OFk4ODdXODg3VTc3N1M3NzdRNzc3UDc3N043NzZMNzc2STY2Nkc2NjZFNjY2QjY2 - NkA2NjY+NjY1PDU1NTk1NTU2NTU1NDU1NTI1NTUvNTU1LTQ0NCo0NDQnNDQ0JTQ0NCI0NDQgNDQ0HTQ0 - MxszMzMZMzMzFjMzMxQzMzMSMzMzEDMzMw4yMjINMjIyCzIyMgkyMjIIMjIyBzIyMgYyMjIFMjIyBDIy - MgMyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIHMjIyCDIyMgoyMjIMMjIyDTIyMg8yMjIRMzMzEzMzMxUzMzMYMzMzGjMzMxwzMzMfNDQzIjQ0 - NCQ0NDQoNDQ0KjQ0NC00NDQvNTU0MjU1NTU1NTU4NTU1OzU1NT01NTVANjY1QjY2NUU2NjZINjY2SjY2 - Nkw2NjZPNjY2UTc3NlM3NzdVNzc3Vzc3N1k3NzdbNzc3XTg4N144ODdgODg4Yjg4OGQ4ODhlODg4Zjk5 - OGg5OThqOTk5azk5OWw5OTltOTk5bzk5OXA6OjlxOjo5cjo6OXM6Ojp0Ojo6dTo6OnY7Ozp3Ozs6dzs7 - Ong7Ozp5Ozs7ejs7O3o7Ozt7Ozs7fDw8O3w8PDt9PDw7fTw8O308PDt+PDw7fzw8PH88PDx/PDw8gDw8 - PIA9PTyAPT08gT09PIE9PTyBPT08gT09PII9PTyCPT08gj09PII9PTyCPT08gj09PII9PT2CPT09gj09 - PYI9PT2CPT08gj09PII9PTyCPT08gj09PII9PTyCPT08gj09PIE9PTyBPT08gT09PIE9PTyAPT08gDw8 - PIA8PDx/PDw8fzw8PH88PDt+PDw7fjw8O308PDt9PDw7fDw8O3w7Ozt7Ozs7ezs7O3o7Ozp5Ozs6eDs7 - Onc7Ozp3Ojo6djo6OnU6Ojp0Ojo6czo6OXI6OjlxOjo5cDk5OW85OTluOTk5bDk5OWs5OThqOTk4aTk5 - OGc4ODhlODg4ZDg4OGM4ODhhODg3Xzg4N103NzdbNzc3Wjc3N1g3NzdWNzc3VDc3NlE2NjZPNjY2TTY2 - Nks2NjZINjY2RjY2NUM1NTVBNTU1PjU1NTs1NTU5NTU1NjU1NTM0NDQwNDQ0LjQ0NCs0NDQoNDQ0JjQ0 - NCM0NDMgMzMzHTMzMxszMzMZMzMzFjMzMxQzMzMRMjIyEDIyMg4yMjIMMjIyCjIyMgkyMjIIMjIyBjIy - MgUyMjIEMjIyBDIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgoyMjIMMjIyDjIyMhAyMjISMjIyFDMzMxczMzMZMzMzHDMzMx8zMzMiMzMzJDQ0 - Myc0NDQqNDQ0LjQ0NDE0NDQzNDQ0NjU1NDk1NTU8NTU1PzU1NUI1NTVFNTU1RzY2NUo2NjZNNjY2UDY2 - NlI2NjZUNjY2Vjc3Nlk3NzZbNzc3XTc3N183NzdhNzc3Yzg4N2U4ODdmODg4aDg4OGo4ODhrODg4bTk5 - OG45OThwOTk4cTk5OXM5OTl0OTk5dTk5OXY6Ojl3Ojo5eDo6OXk6Ojp6Ojo6ezo6Onw6Ojp9Ozs6fTs7 - On47Ozp/Ozs6fzs7O4A7OzuBOzs7gTw8O4I8PDuCPDw7gzw8O4M8PDuEPDw8hDw8PIU8PDyFPDw8hT09 - PIU9PTyGPT08hj09PIc9PTyHPT08hz09PIc9PTyHPT08hz09PYg9PT2IPT09iD09PYg9PT2IPT09iD09 - PYg9PT2IPT09iD09PYg9PT2IPT09iD09PYg9PT2IPT09hz09PIc9PTyHPT08hz09PIc9PTyHPT08hj09 - PIY9PTyGPDw8hTw8PIU8PDyFPDw8hDw8PIQ8PDuDPDw7gzw8O4M8PDuCPDw7gjs7O4E7OzuAOzs7gDs7 - On87Ozp+Ozs6fjs7On06Ojp8Ojo6ezo6Ono6Ojp5Ojo5eDo6OXg6Ojl2OTk5dTk5OXQ5OTlzOTk5cjk5 - OHA5OThvODg4bTg4OGw4ODhqODg4aTg4N2c4ODdlNzc3Yzc3N2I3NzdgNzc3Xjc3N1w3NzZaNjY2VzY2 - NlU2NjZTNjY2UDY2Nk42NjVLNTU1SDU1NUY1NTVDNTU1QDU1NT01NTU6NTU0NzQ0NDQ0NDQxNDQ0LjQ0 - NCw0NDQpNDQzJjMzMyIzMzMgMzMzHTMzMxszMzMYMzMzFTIyMhMyMjIRMjIyDzIyMg0yMjILMjIyCTIy - MggyMjIHMjIyBjIyMgQyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgsyMjIMMjIyDjIyMhEyMjITMjIyFTIyMhgzMzMbMzMzHTMzMyEzMzMkMzMzJzMz - Myo0NDQtNDQ0MDQ0NDQ0NDQ3NDQ0OjQ0ND01NTRANTU1QzU1NUY1NTVJNTU1TDU1NU82NjVRNjY2VDY2 - Nlc2NjZZNjY2XDY2Nl43NzZgNzc2Yjc3N2Q3NzdmNzc3aDc3N2o4ODdrODg3bTg4OG84ODhxODg4cjg4 - OHM5OTh1OTk4djk5OXg5OTl5OTk5ejk5OXs6Ojl8Ojo5fTo6OX46Ojp/Ojo6gDo6OoA6OjqBOzs6gjs7 - OoM7OzqDOzs6hDs7O4U7OzuFOzs7hjw8O4Y8PDuHPDw7hzw8O4g8PDuIPDw8iDw8PIk8PDyJPDw8ij09 - PIo9PTyKPT08ij09PIs9PTyLPT08iz09PIw9PT2MPT09jD09PYw9PT2MPT09jD09PYw+Pj2MPj49jD4+ - PY0+Pj2NPj49jT4+PY0+Pj2NPj49jD09PYw9PT2MPT09jD09PYw9PT2MPT09jD09PYw9PTyLPT08iz09 - PIs9PTyLPT08ij09PIo9PTyKPDw8ijw8PIk8PDyJPDw8iDw8O4g8PDuHPDw7hzw8O4c8PDuGOzs7hTs7 - O4U7OzuEOzs6hDs7OoM7OzqCOzs6gjo6OoE6OjqAOjo6fzo6OX46Ojl9Ojo5fDk5OXs5OTl6OTk5eTk5 - OXg5OTh3OTk4dTk5OHQ4ODhzODg4cTg4OHA4ODhuODg3bDg4N2o3NzdpNzc3Zzc3N2U3NzdjNzc2YTc3 - Nl42NjZcNjY2WjY2Nlg2NjZVNjY2UzY2NU81NTVNNTU1SjU1NUc1NTVENTU1QTU1ND40NDQ7NDQ0ODQ0 - NDU0NDQxNDQ0LjQ0MyszMzMoMzMzJTMzMyIzMzMfMzMzHDMzMxkyMjIWMjIyFDIyMhIyMjIPMjIyDTIy - MgsyMjIJMjIyCDIyMgcyMjIGMjIyBDIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgsyMjINMjIyDzIyMhEyMjIUMjIyFjIyMhkyMjIcMzMzHzMzMyIzMzMmMzMzKTMz - MywzMzMvNDQ0MjQ0NDY0NDQ6NDQ0PTQ0NEA0NDRDNTU0RzU1NUo1NTVNNTU1UDU1NVM1NTVWNjY1WDY2 - Nls2NjZeNjY2YDY2NmI2NjZlNzc2Zzc3N2k3NzdrNzc3bTc3N283NzdwODg3cjg4N3Q4ODh2ODg4dzg4 - OHg4ODh6OTk4ezk5OHw5OTl9OTk5fjk5OX85OTmAOjo5gTo6OYI6OjmDOjo6hDo6OoU6OjqGOzs6hjs7 - Ooc7OzqIOzs6iDs7O4k7OzuJOzs7ijw8O4o8PDuLPDw7jDw8O4w8PDuMPDw8jTw8PI08PDyNPT08jj09 - PI49PTyOPT08jj09PI89PTyPPT08jz09PY89PT2QPT09kD09PZA9PT2QPj49kD4+PZA+Pj2QPj49kD4+ - PZA+Pj2QPj49kD4+PZA+Pj2QPj49kD4+PZA+Pj2QPj49kD4+PZA+Pj2QPT09kD09PZA9PT2QPT09jz09 - PY89PTyPPT08jz09PI89PTyOPT08jj09PI48PDyNPDw8jTw8PI08PDyMPDw7jDw8O4w8PDuLPDw7izs7 - O4o7OzuKOzs7iTs7O4g7OzqIOzs6hzs7OoY6OjqGOjo6hTo6OoQ6OjqDOjo5gzo6OYI6OjmBOTk5gDk5 - OX85OTl+OTk5fDk5OHs5OTh6ODg4eTg4OHc4ODh2ODg4dTg4N3M4ODdxNzc3bzc3N203NzdsNzc3ajc3 - N2g3NzZlNjY2YzY2NmE2NjZfNjY2XDY2Nlk2NjVWNTU1VDU1NVE1NTVONTU1SzU1NUg1NTRENDQ0QTQ0 - ND40NDQ7NDQ0ODQ0NDQ0NDMwMzMzLTMzMyozMzMmMzMzIzMzMyAzMzMcMjIyGjIyMhcyMjIUMjIyEjIy - MhAyMjINMjIyCzIyMgoyMjIIMjIyBzIyMgYyMjIEMjIyBDIyMgMyMjICMjIyAjIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgsyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhoyMjIdMjIyIDMzMyMzMzMnMzMzKjMz - My4zMzMxMzMzNTQ0NDg0NDQ8NDQ0QDQ0NEQ0NDRHNDQ0SjU1NU41NTVRNTU1VDU1NVc1NTVaNTU1XTY2 - NV82NjZiNjY2ZTY2Nmc2NjZpNzc2azc3Nm03NzdvNzc3cjc3N3M3Nzd1ODg3dzg4N3g4ODh6ODg4ezg4 - OH04ODh+OTk4fzk5OIA5OTiBOTk5gzk5OYQ5OTmFOjo5hTo6OYY6OjmHOjo6iDo6Ook6OjqKOjo6ijs7 - Oos7OzqMOzs6jDs7O407OzuNOzs7jjw8O448PDuOPDw7jzw8O488PDuQPDw8kDw8PJA8PDyRPT08kT09 - PJE9PTyRbW1srWxsbK1sbGuta2trrYyMjMiLi4vIioqKyIqKicmJiYnJj4+Oz5+fn+Senp7knZ2d5Jyc - nOScnJvkm5ub5JqamuSZmZnkmZmZ5JiYmOSXl5fkl5eX5JaWluSWlpbkkZGQ3YCAgMl/f3/Jf39/yH9/ - f8h/f3/Ia2trtGNjY61jY2OtY2NjrUhIR5g9PTyRPT08kT09PJE8PDyQPDw8kDw8PJA8PDuQPDw7jzw8 - O488PDuOOzs7jjs7O407OzuNOzs6jDs7Oow7OzqLOzs6ijo6Ooo6OjqJOjo6iDo6Oog6OjmHOjo5hjk5 - OYU5OTmEOTk5gzk5OYI5OTiBOTk4gDg4OH44ODh9ODg4fDg4OHo4ODh5ODg3dzc3N3Y3Nzd0Nzc3cjc3 - N3A3NzduNzc2bDY2Nmo2NjZoNjY2ZTY2NmM2NjZhNjY1XTU1NVs1NTVYNTU1VTU1NVI1NTVPNTU0SzQ0 - NEg0NDRFNDQ0QTQ0ND40NDQ6NDQzNjMzMzMzMzMvMzMzLDMzMygzMzMlMzMzITIyMh4yMjIbMjIyGDIy - MhUyMjISMjIyEDIyMg4yMjIMMjIyCjIyMggyMjIHMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIy - MgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAjIyMgMyMjIEMjIyBTIy - MgYyMjIHMjIyCTIyMgsyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhoyMjIdMjIyITMzMiQzMzMoMzMzKzMz - MzAzMzM0MzMzNzMzMzs0NDQ/NDQ0QzQ0NEc0NDRKNDQ0TjQ0NFE1NTVUNTU1WDU1NVs1NTVeNTU1YTY2 - NWQ2NjVmNjY2aTY2Nms2NjZuNjY2cDc3NnI3NzZ0Nzc3djc3N3g3Nzd5Nzc3ezg4N3w4ODd+ODg4fzg4 - OIE4ODiCODg4gzk5OIQ5OTiFOTk5hzk5OYg5OTmIOTk5iTo6OYo6OjmLOjo5jDo6Oow6OjqNOjo6jjs7 - Oo47OzqPOzs6jzs7O5A7OzuQOzs7kTs7O5FLS0uYcnJxrXFxca2Xl5fIlpaWyaurq92wsLDkr6+v5MPD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+cnJzrmJiY5JmZmeSDg4PJg4ODyG5u - brRmZmWtU1NSnzw8O5E7OzuROzs7kTs7O5A7OzqQOzs6jzs7Oo47OzqOOjo6jTo6Oo06OjqMOjo5izo6 - OYo6OjmKOTk5iTk5OYg5OTmHOTk5hjk5OIU5OTiEODg4gzg4OIE4ODiAODg4fzg4N304ODd7Nzc3ejc3 - N3g3Nzd3Nzc3dTc3NnI2NjZwNjY2bjY2Nmw2NjZqNjY2ZzY2NWQ1NTViNTU1XzU1NVw1NTVZNTU1VjU1 - NFI0NDRPNDQ0SzQ0NEg0NDRENDQ0QTQ0NDwzMzM4MzMzNTMzMzEzMzMtMzMzKTMzMyUyMjIiMjIyHjIy - MhsyMjIYMjIyFTIyMhIyMjIQMjIyDjIyMgwyMjIKMjIyCDIyMgYyMjIFMjIyBDIyMgMyMjIDMjIyAjIy - MgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBDIy - MgYyMjIHMjIyCTIyMgoyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhsyMjIeMjIyIjIyMiYzMzIpMzMzLTMz - MzEzMzM2MzMzOjMzMz40NDNCNDQ0RjQ0NEo0NDRONDQ0UjQ0NFU1NTRZNTU1XDU1NV81NTVjNTU1ZjU1 - NWk2NjVrNjY2bjY2NnA2NjZzNjY2dTY2Nnc3NzZ5Nzc3ezc3N3w3Nzd+Nzc3gDc3N4E4ODeDODg4hDg4 - OIU4ODiHODg4iDk5OIk5OTiKOTk4izk5OYs5OTmMOTk5jTo6OY46OjmPOjo5jzo6OpA6OjqROjo6kTs7 - OpJMTEuZdnZ2rYyMjLufn5/Jvb295Ly8vOTU1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/qKio8p+fn+SOjo7QiIiIyWhoZ65UVFOgOzs6kjo6OpE6OjqROjo6kDo6 - OpA6OjmPOjo5jjk5OY05OTmNOTk5jDk5OYs5OTiKOTk4iTg4OIg4ODiHODg4hjg4OIQ4ODeDODg3gjc3 - N4A3Nzd/Nzc3fTc3N3s3NzZ5Nzc2dzY2NnU2NjZzNjY2cTY2Nm82NjVsNTU1aTU1NWY1NTVkNTU1YTU1 - NV41NTRaNDQ0VjQ0NFM0NDRPNDQ0TDQ0NEg0NDRDMzMzPzMzMzszMzM3MzMzMzMzMy8zMzMrMjIyJzIy - MiMyMjIgMjIyHDIyMhkyMjIVMjIyEzIyMhAyMjIOMjIyCzIyMgkyMjIIMjIyBjIyMgUyMjIEMjIyAzIy - MgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgYyMjIHMjIyCDIyMgoyMjIMMjIyDzIyMhIyMjIUMjIyFzIyMhsyMjIeMjIyIzIyMicyMjIrMzMzLzMz - MzMzMzM3MzMzPDMzM0EzMzNFNDQzSTQ0NE00NDRRNDQ0VjQ0NFk0NDRdNTU0YDU1NWM1NTVnNTU1ajU1 - NW01NTVwNjY1cjY2NnU2NjZ3NjY2eTY2Nns2NjZ9Nzc2fzc3N4E3NzeCNzc3hDc3N4U4ODeHODg3iDg4 - OIk4ODiKODg4jDg4OIw5OTiNOTk4jjk5OY85OTmQOTk5kTk5OZE6OjmSOjo5kmxsbKeSkpK7r6+v0MjI - yOTb29v439/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+kpKTkmZmZ14SE - hMJqamquSEhHmTo6OZI6OjmROTk5kTk5OZA5OTmPOTk4jjk5OI05OTiNODg4jDg4OIs4ODiKODg3iDg4 - N4c3NzeGNzc3hDc3N4M3NzeBNzc3fzc3Nn42NjZ8NjY2ejY2Nng2NjZ2NjY2czY2NXA1NTVuNTU1azU1 - NWg1NTVlNTU1YTQ0NF40NDRaNDQ0VzQ0NFM0NDRPNDQ0SjMzM0YzMzNCMzMzPjMzMzkzMzM1MzMzMDIy - MiwyMjIoMjIyJDIyMiAyMjIcMjIyGTIyMhUyMjITMjIyEDIyMg4yMjILMjIyCTIyMggyMjIGMjIyBTIy - MgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgIyMjIDMjIyBDIy - MgUyMjIHMjIyCDIyMgoyMjIMMjIyDjIyMhEyMjIUMjIyFzIyMhsyMjIeMjIyIjIyMicyMjIrMjIyLzMz - MzQzMzM4MzMzPTMzM0IzMzNHMzMzSzQ0M080NDRTNDQ0VzQ0NFw0NDRgNDQ0YzU1NGc1NTVqNTU1bTU1 - NXA1NTVzNTU1djY2NXg2NjZ6NjY2fDY2Nn82NjaBNzc2gjc3NoQ3NzeFNzc3hzc3N4g3NzeKODg3izg4 - N4w4ODiNODg4jjg4OI85OTiQOTk4kTk5OJI5OTmSXl5eoJeXl7y3t7bQ0dHR5Ozs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf+0tLTypKSj3oeHh8Jra2uuOTk5kzk5OZI5OTiROTk4kDg4OJA4ODiPODg4jjg4 - OIw4ODeLODg3ijc3N4k3NzeINzc3hjc3N4U3NzaDNjY2gTY2Nn82NjZ9NjY2ezY2Nnk2NjV2NTU1dDU1 - NXE1NTVuNTU1azU1NWg1NTRkNDQ0YTQ0NF00NDRZNDQ0VTQ0NFAzMzNMMzMzSDMzM0QzMzM/MzMzOjMz - MzUzMzIxMjIyLDIyMigyMjIkMjIyIDIyMhwyMjIYMjIyFTIyMhIyMjIQMjIyDTIyMgoyMjIIMjIyBzIy - MgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgQyMjIGMjIyCDIyMgkyMjILMjIyDjIyMhAyMjIUMjIyFzIyMhoyMjIeMjIyIjIyMiYyMjIrMjIyMDIy - MjQzMzM5MzMzPjMzM0MzMzNIMzMzTTMzM1E0NDNVNDQ0WjQ0NF40NDRjNDQ0ZjQ0NGo1NTRtNTU1cDU1 - NXM1NTV2NTU1eTY2NXs2NjV+NjY2gDY2NoI2NjaENjY2hjc3Noc3NzeJNzc3ijc3N4s3NzeNNzc3jjg4 - N484ODiQODg4kTg4OJI4ODiTcXFwp6ioqMPS0tHe8PDw+PX19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw/+urq7kkpKSyW1tbK45OTiTODg4kjg4 - OJE4ODiQODg3jzg4N443NzeNNzc3jDc3N4s3NzeJNzc2hzc3NoY2NjaENjY2gzY2NoE2NjZ+NjY1fDU1 - NXo1NTV3NTU1dDU1NXE1NTVuNTU0azQ0NGc0NDRkNDQ0YDQ0NFw0NDRXNDQzUjMzM04zMzNKMzMzRTMz - M0AzMzM7MzMyNjIyMjEyMjItMjIyKDIyMiQyMjIfMjIyGzIyMhgyMjIVMjIyEjIyMg8yMjIMMjIyCjIy - MggyMjIGMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgQyMjIFMjIyBzIyMgkyMjIKMjIyDTIyMg8yMjISMjIyFjIyMhoyMjIdMjIyITIyMiUyMjIqMjIyLzIy - MjQyMjI5MzMzPjMzM0MzMzNIMzMzTjMzM1IzMzNXNDQ0XDQ0NGA0NDRkNDQ0aTQ0NGw0NDRwNTU1czU1 - NXY1NTV5NTU1fDU1NX42NjWBNjY2gzY2NoU2NjaGNjY2iDY2Noo3NzaLNzc3jTc3N443NzePNzc3kDg4 - N5E4ODeSX19foJycnLzV1dXe9/f3+P7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/7Gx - seSMjIzDYmJipzg4OJI4ODeSNzc3kTc3N5A3NzePNzc3jTc3Now3NzaKNjY2iTY2Noc2NjaFNjY2gzY2 - NYE1NTV/NTU1fTU1NXo1NTV3NTU1dDU1NHE0NDRtNDQ0ajQ0NGY0NDRiNDQ0XTQ0M1kzMzNUMzMzTzMz - M0szMzNFMzMzQDMzMjsyMjI2MjIyMTIyMiwyMjIoMjIyIjIyMh4yMjIbMjIyFzIyMhQyMjIRMjIyDjIy - MgsyMjIJMjIyCDIyMgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIy - MgMyMjIEMjIyBjIyMggyMjIJMjIyDDIyMg4yMjIRMjIyFDIyMhgyMjIcMjIyIDIyMiUyMjIpMjIyLjIy - MjQyMjI5MjIyPzMzM0QzMzNJMzMzTjMzM1QzMzNYMzMzXTQ0NGE0NDRmNDQ0ajQ0NG40NDRyNTU0dTU1 - NXg1NTV7NTU1fjU1NYE1NTWDNjY1hTY2Noc2NjaJNjY2izY2No03NzaONzc2jzc3N5A3NzeRNzc3km5u - bqe9vb3Q5OTk6/z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/BwcHyp6en13p6erU3NzeTNzc3kjc3N5E3NzeQNzc2jjY2No02NjaMNjY2ijY2 - Nog2NjWGNjY1hDU1NYI1NTV/NTU1fTU1NXk1NTR2NDQ0czQ0NG80NDRsNDQ0aDQ0NGM0NDNeMzMzWjMz - M1UzMzNQMzMzSzMzM0UzMzNAMjIyOzIyMjYyMjIxMjIyLDIyMiYyMjIiMjIyHTIyMhoyMjIWMjIyEzIy - Mg8yMjINMjIyCjIyMggyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIEMjIyBTIyMgcyMjIJMjIyCzIyMg4yMjIQMjIyEzIyMhcyMjIbMjIyHzIyMiQyMjIoMjIyLTIy - MjMyMjI5MjIyPjIyMkQzMzNJMzMzTjMzM1QzMzNaMzMzXzMzM2M0NDRoNDQ0bDQ0NHA0NDR1NDQ0eDU1 - NHs1NTV+NTU1gTU1NYQ1NTWGNTU1iDY2NYo2NjaMNjY2jjY2No82NjaQNzc2kjc3NpNtbW2nurq60Onp - 6fL5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/y8vL+Kqqqtd6enq1Nzc3kzc3NpI2NjaRNjY2kDY2 - No42NjaMNjY2izY2NYk1NTWHNTU1hTU1NYI1NTV/NTU1fDQ0NHk0NDR2NDQ0cjQ0NG40NDRpNDQ0ZTMz - M2AzMzNbMzMzVzMzM1EzMzNLMzMzRjIyMkAyMjI7MjIyNTIyMjAyMjIqMjIyJTIyMiEyMjIcMjIyGTIy - MhUyMjIRMjIyDjIyMgwyMjIJMjIyCDIyMgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIDMjIyBDIyMgYyMjIIMjIyCjIyMgwyMjIPMjIyEjIyMhUyMjIZMjIyHjIyMiIyMjInMjIyLDIy - MjIyMjI3MjIyPjIyMkQzMzJJMzMzTzMzM1QzMzNaMzMzYDMzM2U0NDNpNDQ0bjQ0NHI0NDR2NDQ0ejQ0 - NH41NTSBNTU1hDU1NYY1NTWINTU1izU1NY02NjWONjY2kDY2NpE2NjaTW1tboaKiocPl5eXy9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/8jIyPijo6PXX19fqDY2 - NpM2NjaSNjY2kDY2No82NjWNNTU1izU1NYk1NTWHNTU1hDU1NYI0NDR/NDQ0ezQ0NHg0NDR0NDQ0bzQ0 - NGszMzNmMzMzYTMzM1wzMzNXMzMzUDMzM0syMjJFMjIyQDIyMjoyMjI0MjIyLjIyMikyMjIkMjIyHzIy - MhsyMjIXMjIyEzIyMhAyMjINMjIyCjIyMgkyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgIyMjIDMjIyBDIyMgUyMjIGMjIyCDIyMgsyMjIOMjIyEDIyMhQyMjIXMjIyGzIyMiEyMjImMjIyKjIy - MjAyMjI1MjIyOzIyMkIyMjJIMzMyTjMzM1MzMzNZMzMzXzMzM2UzMzNqNDQzbjQ0NHM0NDR3NDQ0ezQ0 - NH80NDSCNTU0hTU1NYg1NTWKNTU1jDU1NY42NjWQNjY2kjY2NpOHh4e1ycnJ3vHx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf+zs7Pye3t7vEFBQZo2NjaSNjY1kTU1NY81NTWNNTU1izU1NYg1NTWGNTU0gzQ0NIA0NDR9NDQ0eTQ0 - NHQ0NDRwMzMzazMzM2czMzNhMzMzXDMzM1UzMzNQMjIySjIyMkQyMjI+MjIyODIyMjEyMjIsMjIyJzIy - MiIyMjIdMjIyGTIyMhUyMjIRMjIyDjIyMgwyMjIJMjIyBzIyMgUyMjIEMjIyAzIyMgMyMjIBMjIyATIy - MgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIy - MgEyMjIDMjIyAzIyMgQyMjIGMjIyBzIyMgkyMjIMMjIyDzIyMhIyMjIVMjIyGTIyMh4yMjIjMjIyKDIy - Mi0yMjIzMjIyOTIyMj8yMjJGMjIyTDMzMlIzMzNYMzMzXjMzM2QzMzNqMzMzbzQ0M3M0NDR4NDQ0ezQ0 - NH80NDSDNDQ0hjU1NIk1NTWLNTU1jTU1NZA1NTWSSEhImp2dncPf39/y7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+0tLT4kJCQ105OTaE1NTWSNTU1kDU1NY41NTWMNTU1ijU1NIc0NDSENDQ0gTQ0 - NH00NDR5NDQ0dTMzM3AzMzNrMzMzZjMzM2AzMzNaMzMzVDIyMk4yMjJIMjIyQjIyMjwyMjI1MjIyLzIy - MioyMjIlMjIyIDIyMhsyMjIWMjIyEzIyMhAyMjINMjIyCjIyMggyMjIGMjIyBDIyMgMyMjIDMjIyAjIy - MgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgMyMjIEMjIyBjIyMggyMjIKMjIyDTIyMhAyMjITMjIyFzIyMhsyMjIgMjIyJjIy - MisyMjIwMjIyNjIyMjwyMjJDMjIySjIyMlAzMzNWMzMzXDMzM2IzMzNoMzMzbjMzM3M0NDN4NDQ0fDQ0 - NIA0NDSDNDQ0hzQ0NIo1NTWMNTU1jzU1NZFHR0eZpqamyePj4/js7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+zs7P/jo6O10xMTKE1NTWRNTU1jzU1NY01NTSLNDQ0iDQ0 - NIU0NDSBNDQ0fTQ0NHkzMzN0MzMzcDMzM2szMzNlMzMzXjMzM1gyMjJSMjIyTDIyMkYyMjI/MjIyODIy - MjIyMjItMjIyJzIyMiIyMjIdMjIyGDIyMhQyMjIRMjIyDjIyMgsyMjIJMjIyBjIyMgUyMjIEMjIyAzIy - MgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgYyMjIIMjIyCzIyMg4yMjIRMjIyFDIyMhgyMjIdMjIyIjIy - MigyMjItMjIyMzIyMjkyMjI/MjIyRjIyMk4yMjJUMzMzWjMzM2AzMzNmMzMzbDMzM3IzMzN3NDQ0ezQ0 - NIA0NDSDNDQ0hzQ0NIs0NDSNNTU1j0dHR5ikpKTJ4ODg+Ojo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/ioqK10tLS581NTWQNTU0jjQ0 - NIs0NDSINDQ0hTQ0NIE0NDR9NDQzeDMzM3QzMzNvMzMzaTMzM2IzMzNcMzMyVjIyMlAyMjJJMjIyQzIy - MjsyMjI1MjIyLzIyMikyMjIkMjIyHzIyMhoyMjIWMjIyEjIyMg8yMjIMMjIyCTIyMgcyMjIFMjIyBDIy - MgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIHMjIyCTIyMgwyMjIPMjIyEjIyMhYyMjIaMjIyHjIy - MiQyMjIqMjIyMDIyMjYyMjI8MjIyQzIyMkoyMjJRMjIyWDMzM14zMzNkMzMzajMzM3AzMzN2MzMzezQ0 - NH80NDSDNDQ0hzQ0NIo0NDSONTU0kI2Njbvd3d345eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/gICAz0FB - QJg0NDSPNDQ0jDQ0NIk0NDSENDQ0gTQ0M3wzMzN4MzMzczMzM20zMzNmMzMzYDMzMloyMjJTMjIyTTIy - MkYyMjI+MjIyODIyMjIyMjIsMjIyJzIyMiEyMjIbMjIyFzIyMhMyMjIQMjIyDTIyMgoyMjIIMjIyBjIy - MgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIGMjIyBzIyMgoyMjIMMjIyEDIyMhMyMjIXMjIyGzIy - MiAyMjImMjIyLDIyMjIyMjI4MjIyPzIyMkYyMjJNMjIyVTIyMlszMzNiMzMzaDMzM24zMzN0MzMzejMz - M380NDSDNDQ0hzQ0NIo0NDSNZWVlpcTExOTi4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+ampr4YmJiszQ0NI80NDSMNDQ0iDQ0NIQ0NDOAMzMzezMzM3YzMzNxMzMzajMzM2QzMzJdMjIyVzIy - MlAyMjJJMjIyQTIyMjsyMjI0MjIyLjIyMigyMjIjMjIyHTIyMhgyMjIUMjIyETIyMg4yMjILMjIyCDIy - MgYyMjIFMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjIBMjIyAzIyMgMyMjIEMjIyBjIyMggyMjIKMjIyDTIyMhAyMjIUMjIyGDIy - MhwyMjIhMjIyJzIyMi4yMjI0MjIyOjIyMkEyMjJIMjIyTzIyMlcyMjJeMzMzZDMzM2szMzNwMzMzdjMz - M30zMzOBNDQ0hTQ0NIk0NDSMoKCgx9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Dg4PcPj4+lTQ0NIo0NDSGNDQzgjMzM34zMzN5MzMzczMzM2wzMzNmMzMyYDIy - MlkyMjJTMjIySzIyMkMyMjI9MjIyNjIyMjAyMjIqMjIyJDIyMh4yMjIZMjIyFTIyMhEyMjIOMjIyCzIy - MgkyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgYyMjIIMjIyCjIyMg0yMjIRMjIyFDIy - MhkyMjIdMjIyIjIyMigyMjIvMjIyNjIyMjwyMjJDMjIySjIyMlEyMjJZMjIyYDMzM2YzMzNtMzMzczMz - M3kzMzN/MzMzgzQ0NIdGRkaSwMDA493d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5CQkPhXV1epNDQ0iDQ0M4QzMzOAMzMzezMzM3UzMzNvMzMzaTMz - MmIyMjJbMjIyVTIyMk0yMjJFMjIyPjIyMjgyMjIyMjIyKzIyMiUyMjIfMjIyGjIyMhYyMjISMjIyDzIy - MgwyMjIJMjIyBzIyMgUyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIGMjIyCTIyMgsyMjIOMjIyETIy - MhUyMjIZMjIyHjIyMiMyMjIpMjIyMDIyMjcyMjI+MjIyRDIyMksyMjJTMjIyWzIyMmIzMzNoMzMzbjMz - M3QzMzN6MzMzgDMzM4VlZWWf1NTU+Nvb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/2tra700NDOGMzMzgjMzM30zMzN3MzMzcDMz - M2ozMzJkMjIyXTIyMlYyMjJPMjIyRzIyMkAyMjI5MjIyMjIyMiwyMjImMjIyIDIyMhsyMjIWMjIyEzIy - Mg8yMjIMMjIyCTIyMgcyMjIGMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBzIyMgkyMjILMjIyDjIy - MhIyMjIWMjIyGjIyMh8yMjIkMjIyKjIyMjEyMjI4MjIyPjIyMkUyMjJMMjIyVDIyMlwyMjJjMzMzajMz - M3AzMzN2MzMzezMzM4GKioqz0tLS+Nra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/dXV00jMzM4MzMzN+MzMzeDMz - M3IzMzNsMzMyZTIyMl4yMjJXMjIyUDIyMkgyMjJBMjIyOjIyMjMyMjItMjIyJzIyMiAyMjIcMjIyFzIy - MhMyMjIPMjIyDDIyMgkyMjIHMjIyBjIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgcyMjIJMjIyCzIy - Mg4yMjISMjIyFjIyMhoyMjIfMjIyJDIyMioyMjIyMjIyODIyMj8yMjJGMjIyTTIyMlQyMjJdMjIyZDMz - M2ozMzNxMzMzdjMzM3yKioqx1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif9ycnLQMzMzfzMz - M3kzMzNzMzMzbDMzMmYyMjJfMjIyWDIyMlEyMjJIMjIyQTIyMjoyMjI0MjIyLjIyMicyMjIhMjIyHDIy - MhcyMjIUMjIyEDIyMgwyMjIJMjIyBzIyMgYyMjIEMjIyAzIyMgMyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIHMjIyCTIy - MgsyMjIOMjIyEjIyMhYyMjIbMjIyHzIyMiQyMjIrMjIyMjIyMjkyMjJAMjIyRjIyMk0yMjJVMjIyXTIy - MmQzMzNqMzMzcTMzM3dmZmaV1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/2xs - bMczMzN6MzMzczMzM20zMzJmMjIyYDIyMlkyMjJRMjIySDIyMkEyMjI6MjIyNDIyMi4yMjInMjIyITIy - MhwyMjIXMjIyFDIyMhAyMjINMjIyCTIyMgcyMjIGMjIyBDIyMgMyMjIDMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBzIy - MgkyMjILMjIyDjIyMhIyMjIWMjIyGjIyMh8yMjIkMjIyKjIyMjIyMjI4MjIyPzIyMkYyMjJNMjIyVDIy - Ml0yMjJkMzMzajMzM3FHR0d/zc3N99TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/WFhYojMzM3MzMzNsMzMyZjIyMl8yMjJYMjIyUTIyMkgyMjJBMjIyOjIyMjQyMjItMjIyJzIy - MiEyMjIcMjIyFzIyMhQyMjIQMjIyDDIyMgkyMjIHMjIyBjIyMgQyMjIDMjIyAzIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIy - MgcyMjIJMjIyCzIyMg4yMjISMjIyFjIyMhoyMjIfMjIyJDIyMioyMjIxMjIyODIyMj4yMjJFMjIyTDIy - MlQyMjJcMjIyYzMzM2ozMzNwu7u73NLS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/3x8fPZKSkqDMzMzbDMzMmUyMjJeMjIyVzIyMlAyMjJIMjIyQTIyMjoyMjIzMjIyLTIy - MicyMjIgMjIyGzIyMhcyMjITMjIyDzIyMgwyMjIJMjIyBzIyMgYyMjIEMjIyAzIyMgIyMjIBMjIyATIy - MgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIyMjIDMjIyBDIy - MgUyMjIGMjIyCDIyMgoyMjIOMjIyETIyMhUyMjIZMjIyHjIyMiMyMjIpMjIyMDIyMjcyMjI9MjIyRDIy - MksyMjJTMjIyWzIyMmIzMzNoiYmJpNHR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/bGxsyTMzM2ozMzJkMjIyXTIyMlYyMjJPMjIyRjIyMkAyMjI5MjIyMjIy - MiwyMjImMjIyIDIyMhsyMjIWMjIyEzIyMg8yMjIMMjIyCTIyMgcyMjIGMjIyBDIyMgMyMjICMjIyATIy - MgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjICMjIyAzIy - MgQyMjIFMjIyBjIyMggyMjIKMjIyDTIyMhEyMjIUMjIyGTIyMh0yMjIiMjIyKDIyMi8yMjI2MjIyPDIy - MkMyMjJKMjIyUTIyMlkyMjJgMzMzZsXFxe3R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/9FRUV7MzMyYjIyMlsyMjJVMjIyTTIyMkUyMjI+MjIyODIy - MjIyMjIrMjIyJTIyMh8yMjIaMjIyFjIyMhIyMjIPMjIyDDIyMgkyMjIHMjIyBTIyMgQyMjIDMjIyAjIy - MgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgMyMjIDMjIyBDIyMgYyMjIIMjIyCjIyMg0yMjIQMjIyFDIyMhgyMjIcMjIyITIyMicyMjIuMjIyNDIy - MjoyMjJBMjIyRzIyMk8yMjJXMjIyXXp6eorPz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/Z2dnuzMzMl8yMjJZMjIyUjIyMksyMjJDMjIyPDIy - MjYyMjIwMjIyKjIyMiQyMjIeMjIyGTIyMhUyMjIRMjIyDjIyMgsyMjIIMjIyBjIyMgUyMjIEMjIyAzIy - MgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgQyMjIGMjIyBzIyMgkyMjIMMjIyEDIyMhMyMjIXMjIyGzIyMiAyMjIlMjIyLDIy - MjIyMjI4MjIyPjIyMkUyMjJMMjIyVDIyMlqqqqq5z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3Nzc+szMzJcMjIyVjIyMk8yMjJIMjIyQTIy - MjoyMjI0MjIyLjIyMigyMjIiMjIyHDIyMhgyMjIUMjIyETIyMg4yMjILMjIyCDIyMgYyMjIEMjIyBDIy - MgMyMjICMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgcyMjIJMjIyCzIyMg8yMjISMjIyFjIyMhoyMjIeMjIyJDIy - MioyMjIvMjIyNjIyMjwyMjJCMjIySTIyMlEyMjJXvb281s/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/RkZGbjIyMlMyMjJNMjIyRTIy - Mj4yMjI4MjIyMTIyMiwyMjImMjIyITIyMhsyMjIXMjIyEzIyMhAyMjINMjIyCjIyMggyMjIGMjIyBDIy - MgMyMjIDMjIyAjIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIGMjIyCDIyMgsyMjIOMjIyETIyMhQyMjIYMjIyHTIy - MiIyMjIoMjIyLTIyMjMyMjI5MjIyPzIyMkYyMjJOMjIyVM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/1RUU4AyMjJQMjIySTIy - MkIyMjI7MjIyNTIyMi8yMjIpMjIyJDIyMh8yMjIaMjIyFjIyMhIyMjIPMjIyDDIyMgkyMjIHMjIyBTIy - MgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBjIyMggyMjIKMjIyDTIyMhAyMjITMjIyFzIy - MhsyMjIgMjIyJjIyMisyMjIwMjIyNjIyMjwyMjJDMjIySjIyMlDOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9UVFR9MjIyTDIy - MkYyMjI/MjIyODIyMjIyMjItMjIyJzIyMiIyMjIdMjIyGDIyMhQyMjIRMjIyDjIyMgsyMjIJMjIyBjIy - MgUyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgMyMjIDMjIyBDIyMgYyMjIHMjIyCTIyMgwyMjIPMjIyEjIy - MhUyMjIZMjIyHTIyMiMyMjIoMjIyLTIyMjMyMjI5MjIyPzIyMkYyMjJMzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/VVVVejIy - MkgyMjJCMjIyPDIyMjUyMjIvMjIyKjIyMiQyMjIgMjIyGzIyMhYyMjITMjIyEDIyMg0yMjIKMjIyCDIy - MgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBjIyMggyMjILMjIyDTIy - MhAyMjITMjIyFzIyMhsyMjIgMjIyJTIyMioyMjIvMjIyNTIyMjsyMjJCMjIyR87Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/1ZW - VnYyMjJDMjIyPjIyMjcyMjIxMjIyLDIyMicyMjIiMjIyHTIyMhkyMjIUMjIyETIyMg4yMjIMMjIyCTIy - MgcyMjIFMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIyMgYyMjIHMjIyCTIy - MgwyMjIPMjIyETIyMhUyMjIZMjIyHTIyMiIyMjInMjIyKzIyMjEyMjI2MjIyPTIyMkLOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/9XV1dyMjIyPzIyMjkyMjIzMjIyLTIyMigyMjIjMjIyHzIyMhsyMjIWMjIyEzIyMg8yMjINMjIyCjIy - MggyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBzIy - MgkyMjILMjIyDTIyMhAyMjITMjIyFjIyMhsyMjIfMjIyIzIyMigyMjItMjIyMjIyMjgyMjI+zs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/WVlZbzIyMjoyMjI1MjIyLzIyMikyMjIlMjIyIDIyMhwyMjIYMjIyFDIyMhEyMjIOMjIyCzIy - MgkyMjIIMjIyBjIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgYyMjIIMjIyCTIyMgwyMjIOMjIyETIyMhQyMjIYMjIyHDIyMiAyMjIlMjIyKTIyMi4yMjI0MjIyOc7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/1paWmsyMjI2MjIyMTIyMisyMjImMjIyIjIyMh0yMjIaMjIyFjIyMhMyMjIPMjIyDTIy - MgoyMjIIMjIyBzIyMgUyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgQyMjIFMjIyBzIyMggyMjIKMjIyDTIyMg8yMjISMjIyFjIyMhkyMjIdMjIyITIyMiUyMjIqMjIyLzIy - MjTOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/9bW1toMjIyMTIyMiwyMjIoMjIyIjIyMh4yMjIaMjIyFzIyMhQyMjIRMjIyDjIy - MgsyMjIJMjIyCDIyMgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIDMjIyBDIyMgYyMjIIMjIyCTIyMgsyMjIOMjIyEDIyMhQyMjIXMjIyGjIyMh4yMjIiMjIyJjIy - MisyMjIwzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/XV1dZDIyMiwyMjIoMjIyJDIyMh8yMjIbMjIyGDIyMhQyMjISMjIyDzIy - MgwyMjIKMjIyCDIyMgYyMjIFMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgQyMjIFMjIyBjIyMggyMjIJMjIyCzIyMg4yMjIRMjIyFDIyMhcyMjIaMjIyHjIy - MiIyMjInMjIyKs7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/15eXmAyMjIoMjIyJDIyMh8yMjIbMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjIKMjIyCDIyMgcyMjIFMjIyBDIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIyMgUyMjIHMjIyCDIyMgoyMjIMMjIyDzIyMhEyMjIUMjIyFzIy - MhoyMjIdMjIyIjIyMibOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9gYGBcMjIyIzIyMh8yMjIcMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjILMjIyCTIyMgcyMjIGMjIyBDIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIEMjIyBjIyMgcyMjIIMjIyCjIyMg0yMjIPMjIyETIy - MhQyMjIXMjIyGjIyMh4yMjIhzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/s7Kx/7GxsP+wsK//sK+u/6+urf+ura3/ra2s/62sq/+sq6v/q6uq/6uq - qf+qqan/qqmo/6mpqP+pqKf/qKin/6inpv+op6b/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/YmJiWTIyMh8yMjIcMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjILMjIyCTIyMggyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgIyMjIDMjIyBDIyMgUyMjIGMjIyBzIyMgkyMjILMjIyDTIy - Mg8yMjIRMjIyFDIyMhcyMjIaMjIyHc7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//BwcD/wL++/7y7uv+4t7X/t7a0/7SysP+xr63/sa+t/7Gu - rP+uq6j/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/q6mm/6up - pv+rqaf/q6mn/6qop/+qqaf/q6mo/6qqqf+rqqn/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/2RkZFYyMjIbMjIyGDIyMhUyMjISMjIyEDIy - Mg4yMjILMjIyCTIyMggyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBTIyMgYyMjIIMjIyCTIy - MgsyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhrOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/83M - y//JyMf/wL69/727uf+1s7H/s7Gu/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqo/62rqf+urKr/r62s/7Cv - rf+xsK//s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9lZWVTMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjIMMjIyCjIyMggyMjIHMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIyMgQyMjIFMjIyBjIy - MggyMjIJMjIyCzIyMg0yMjIPMjIyETIyMhQyMjIWzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Li4v/W1dT/y8nI/8PBv/+5t7T/sK2q/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/r62r/7Gvrf+ysa//trW0/7i4t/+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/Z2dnUTIyMhQyMjISMjIyEDIy - Mg0yMjILMjIyCjIyMggyMjIHMjIyBjIyMgQyMjIEMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgUyMjIGMjIyCDIyMgkyMjIKMjIyDDIyMg4yMjIRMjIyE87Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/7Ozs/9rZ2f/NzMr/vbq4/7WysP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/7Kvrf+1s7H/uLe2/7y8 - u//BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/2lpaU4yMjIRMjIyDzIy - Mg0yMjILMjIyCTIyMggyMjIHMjIyBTIyMgQyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIy - MgMyMjIEMjIyBTIyMgYyMjIHMjIyCDIyMgoyMjILMjIyDjIyMg/Ozs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/7Ovr/9jX1f/KyMX/t7Sy/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/sK2q/7Oxr/+5uLb/v769/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9ra2tMMjIyDjIy - MgwyMjIKMjIyCTIyMggyMjIGMjIyBTIyMgQyMjIEMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgIyMjIDMjIyAzIyMgQyMjIFMjIyBjIyMgcyMjIIMjIyCTIyMgsyMjINzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3/9PT0/93b - 2v/Jx8T/tLGu/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/tbOx/7y6uf/DwsH/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/bGxsSjIy - MgwyMjIKMjIyCTIyMgcyMjIGMjIyBTIyMgQyMjIEMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIyMgUyMjIGMjIyBzIyMggyMjIJMjIyCs7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6/+Tj4v/Ny8n/ure0/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7KvrP+5t7X/wsHA/83N - zf/Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/25u - bkgyMjIJMjIyCDIyMgcyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBDIyMgUyMjIGMjIyCDIyMgnOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//Ly8v/e3Nv/yMXD/7azsP+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/t7Sy/8PBwP/Pzs7/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/9vb29GMjIyCDIyMgcyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIyMgQyMjIEMjIyBTIyMgYyMjIHzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/4N/e/8zKyP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7e1s//Bv77/yMjI/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/cHBwRTIyMgYyMjIFMjIyBDIyMgQyMjIDMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgIyMjIDMjIyAzIyMgQyMjIFMjIyBc7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v/+jo6P/Pzcv/trSx/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+4trT/vby7/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/3FxcUQyMjIFMjIyBDIyMgMyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgTOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/29rZ/8LAvf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+0sq//t7a1/7a2 - tv+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/9ycnJDMjIyBDIyMgMyMjIDMjIyAjIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAjIy - MgMyMjIDzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/W1dT/u7i2/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa//tLKw/7Cwr/+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/c3NzQjIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEyMjICMjIyA87Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/9TT0v+7ubb/tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//srCu/6qqqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/3Nzc0IyMjICMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgEyMjIBMjIyATIyMgLOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/09LR/7u5t/+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/rayq/6Ojov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/90dHRBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgEyMjIBzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//Z2Nj/wb+9/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+1srD/p6al/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dHR0QTIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjIBMjIyAc7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/Lysn/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+wrqz/m5qa/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3R0dEEyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgHOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9XU - 1P+/vLr/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7az - sP+hoJ//kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/90dHRBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/87M - y/+7uLX/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/6mnpf+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dHR0QDIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/8fF - w/+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/sa+s/4yLi/+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/8TD - wf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+xr6z/iYiI/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/8TC - wf+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7GvrP+FhYX/fn5+/3t7e/93d3f/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/8rJ - yP+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/raup/35+fv97e3v/d3d3/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/83M - zP+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+dnJr/e3t7/3d3 - d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//Bv7z/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP+9u7j/vbu5/727uf+8urj/vLq4/7q5t/+5uLf/uLe2/7i3 - tf+3trX/t7a0/7a1tP+2tbP/tbSz/7W0sv+0s7L/tLOx/7Sysf+zsrH/s7Kw/7OxsP+ysbD/srGv/7Kw - r/+xsK//sbCv/7Gwr/+3tbP/t7Wz/7e1s/+3tbP/uri2/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/4OC - gv93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/JyMf/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/7+9uv/CwL7/wb++/8TC - wf/DwsH/w8LB/8PCwv/CwcH/wcHA/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+traz/rq2t/7Cv - rv+0s7L/tbOy/7i3tf+6uLb/vLq4/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf+tq6n/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/wb68/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/8PAvv/HxML/y8nI/8zKyf/Qz87/0M/P/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//srKx/7W0s/+3trX/qras/523o/+dt6T/nbek/523 - pP+dt6T/t7u0/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/39/f/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzMvL/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//CwL3/ysjF/9PS0P/W1dT/2djY/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/5yqof+Oqpn/cqqH/2uqgv9WqnT/Vqp1/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/0CpZ/9arXf/Yq99/3yzjv+NtZn/prmq/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u/+bmZj/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMjFxP/Bvrv/wb67/8G+u//Ewb//wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//OzMr/2dfW/+Df - 3v/m5ub/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/4un - lf9wqIT/VKhz/z+oZv84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Wq14/3Sx - iP+Wt5//uLy2/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/xcPA/8G+u//Bvrv/rqyq/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADFw8H/wb+8/8G/vP/IxcP/zcvJ/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8XDwP/U0tH/4eDf/+3s7P/19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/5elnP91pof/U6dy/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf9SrHL/hbWU/7C8sf/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/xMK//87My//Bv7z/wb+8/8G/vP91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAxcPB/8LAvf/CwL3/ycfE/9fV1P/CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/V09H/5OPi//Tz8v/+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+XpZz/Z6Z+/0aoaf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Uqxy/4a1lf+xvbH/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8/Ny//Pzcv/wsC9/8LAvf/CwL3/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPAvv/DwL7/w8C+/8rHxP/b2tn/ysfE/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/HxMH/2NbV/+rp6P/8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/n6ai/3Wmh/9Mp27/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/2Owfv+YuaD/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/Y19b/0M7M/8PAvv/DwL7/w8C+/8PAvkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDwb7PxMG+/8TBvv/HxML/3NrZ/9bU0//Ewb7/xMG+/8TB - vv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TB - vv/Ewb7/y8jF/9rZ1//u7u3/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+Sp5r/Yad7/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/0mr - bf+PuJv/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TB - vv/Ewb7/xMG+/8TBvv/Qzsz/3NrZ/8/Ny//Ewb7/xMG+/8TBvv/Dwb4wAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMK/n8TCv//Ewr//xMK//9va1//c29n/z87L/8TC - v//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TC - v//W1dP/5eXk//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/4yolv9UqHP/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/0qrbf9+tZD/xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TC - v//Ewr//xMK//8TCv//JyMT/29rX/9zb2f/KyMT/xMK//8TCv//Ewr/vAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXDwFDFw8D/xcPA/8XDwP/U0tH/3Nva/9zb - 2v/KyMX/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/zszK/+Df - 3v/v7u7/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/jamX/1Soc/84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/0qrbf+QuZz/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/xcPA/8XD - wP/Fw8D/xcPA/8XDwP/IxML/2NfV/9zb2v/b2tj/xcPA/8XDwP/Fw8D/xcPAnwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx8PB78fEwf/HxMH/y8nF/93c - 2v/d3Nr/3NrY/8vJxf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/S0c//4+Pi/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+Oqpj/Valz/zioYf84qGH/P6hl/1Soc/9bqHf/b6eE/2+ng/9vp4P/b6eD/26m - g/9hp3r/U6dy/z+oZf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/1Otc/+jvan/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/1tTS/93c2v/d3Nr/0tDO/8fEwf/HxMH/x8TB/8fDwUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjEwYDIxML/yMTC/8jE - wv/Y1tX/3dzb/93c2//a2dj/zMnH/8jEwv/IxML/yMTC/8jEwv/IxML/yMTC/9TS0f/m5eX/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/6WsqP9jqX3/Rqhq/2OpfP9/qY7/mqig/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/kKWY/3Wmh/9NqG7/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/2Wxf/++wrv/yMTC/8jE - wv/IxML/yMTC/8jEwv/IxML/1dPS/93c2//d3Nv/3NvZ/8nHw//IxML/yMTC/8jEwb8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycXCz8nF - w//JxcP/y8nH/9zb2v/e3Nv/3tzb/9zb2v/Nysj/ycXD/8nFw//JxcP/09LQ/+Pj4v/o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/4mslv9rqoL/lque/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/5mnnv9pqID/P6hl/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Qapn/4m4 - mP/JxcP/ycXD/8nFw//Kx8T/2dfV/97c2//e3Nv/3tzb/9LQzv/JxcP/ycXD/8nFw//IxcIwAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnF - wzDKx8P/ysfD/8rHw//Rz83/3t3b/97d2//e3dv/3dva/9HPzf/Qzsz/397e/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/5qooP9jqXz/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/WKt2/7O5sv/Ny8n/2tnX/97d2//e3dv/3t3b/9jW1P/Kx8P/ysfD/8rHw//Jx8OAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAysfEYMrIxP/KyMT/ysjE/9fV0//e3dz/3t3c/97d3P/g39//4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/46q - mP9GqGr/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf8/qGX/jrGa/87NzP/e3dz/3t3c/9rZ2P/LycX/ysjE/8rIxP/Kx8SfAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADLyMVwy8jF/8vIxf/LyMX/2NXU/97d3P/f3t7/4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/pKun/06pb/84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9jonr/trW1/9fV1P/Mysf/y8jF/8vIxf/LyMXPy8jFEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJxXDMycf/zcrI/9XU1P/d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ZKp+/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/0qla/+Yn5r/wL68/8zJx//MycfPy8nFEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0c/NgNfX1v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf9kqn7/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Pqdk/4OYiv+sq6q/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbWMNjY2O/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/3usjf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/bZd8/4mJ - iWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1dXVMNbW1u/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//g62S/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf9gmHX/hoaGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09PTMNTU1O/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+ErpP/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/1Wbbv+CgoJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0dHRENLS0t/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/5Sw - nv9AqWb/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/U5lt/39/f0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0a/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/nLGk/0CpZv84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9BomXvOKhhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz0DR0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+dsqX/QKln/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zio - Yv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zio - Yv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zio - Yv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYs84qWIQAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPz8+/0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/56zpv9Aqmj/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKljzzipYxAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs4wz8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/n7Sn/0Craf84qmT/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmSvAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4qmQQOKpkQDiq - ZEA4qmQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7Oj8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+gtaj/QKtq/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - ZZ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADirZhA4qmWfOKpl/ziq - Zf84qmX/OKpl7zirZjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozr/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/6G2qf9ArGv/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtmnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADirZ1A4q2bvOKtm/zir - Zv84q2b/OKtm/zirZv84q2bfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/obeq/0Ct - bP84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADisZ484rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGf/OKxn/zisZzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+iuKv/QK1u/zisaf84rGn/SLZ3/1C6fv84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zitaWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN61pIDisac84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/6O5rP83rWr/N61q/zetav9Pu3//T7t//zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61qMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN61qUDetau83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61qQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/i7ee/zeua/83rmv/N65r/0+7gP9fxI//N65r/zeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua+83rmsgAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3rmsQN65rnzeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf+LuJ//N65s/zeubP83rmz/W8KM/1/FkP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65szzeubBAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3rmwwN65szzeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmsQAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/4S4m/83r23/N69t/zevbf9fx5H/X8eQ/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r22fAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3r21gN69t7zevbf83r23/N69t/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/a7aN/zevbv83r27/N69u/2vN - nP9fx5H/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADewbhA3r26fN69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69uzwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf9rt47/N7Bv/zew - b/87snL/a82d/1/Hkv83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7BvMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADewbzA3sG/fN7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb78AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/ucG9/1G0 - f/83sXD/N7Fw/0O3ev9z0qX/W8SQ/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcN83sXAQAAAAAAAAAAAAAAAAAAAAADexcHA3sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sHCPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv+6wr7/QLJ2/zexcf83sXH/R7p//3fVqf9Pvob/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7FxrwAAAAAAAAAAN7FxEDexca83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7FxgAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/6rBtf9As3f/N7Jy/zeycv9TwYr/d9aq/0+/h/83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snJgN7JyMDeyct83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+vr67/rq2t/62t - rP+trKv/rKur/6urqv+rqqn/qqmp/6qpqP+pqaj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/kL6m/zeyc/83snP/N7Jz/1/Jlv9z1Kf/Q7l9/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz7zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8LBwf+/vr3/vr28/7i2 - tf+3tbT/trWz/7Kwrv+xr6z/sa6s/7CurP+uq6j/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+rqaf/q6mn/6upp/+rqaf/qqin/6qop/+qqaf/qqmo/6qpqP+rqqn/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf92u5j/N7N0/zezdP87tXf/a9Ch/2/Spf87tXf/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/V1dT/zMvK/8XEw/+/vrz/uri3/7a0sf+0sa//rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rqup/66s - qf+urKr/r62s/6+urf+wsK//srGx/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/1u4if83s3X/N7N1/0O6f/9z1Kn/Z86e/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/3dzc/9XU - 0//IxcT/wL68/7q3tf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/sK2r/7CurP+zsbD/tLOy/7e2tv+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP+/yMP/SbeA/ze0dv83tHb/T8GK/3fX - rf9XxZH/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0du8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/i4uH/1dTT/8nIxf+9u7j/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/7Gv - rP+0srD/t7a0/7q6uf/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/63Fuf83tHf/N7R3/ze0 - d/9fypn/d9eu/0e9hP83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHe/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//X19f/h4N//09LQ/8C+vP+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Oxrv+3tbP/vLu6/8LBwf/FxcX/yMjI/8nJyf/Kysr/isGm/ze1 - eP83tXj/O7d7/2/TqP9z1av/O7d7/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V3rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//n5+f/n5uX/09HQ/768uv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/s7Cu/7m3tf+/vr3/x8XF/8vL - y/9cu43/N7Z5/ze2ef9Hvob/d9iv/2PNnv83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/u7ez/3NrZ/8TCv/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+0sq//s7q0/z62fP82tnn/NrZ5/1rKmP922K//SsCK/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnlwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/6+rq/9LQ - zv+7uLb/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+LsZz/Nrd6/za3ev86uX7/btSq/3LWrf86uX7/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz/+jn5v/Qzs3/uri1/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/121iv82t3v/Nrd7/0a/if922bH/Ys+g/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//s7Oz/1tXU/7+8uv+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+rsKr/Prd//za4fP82uHz/Wsua/3bZsv9GwIr/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+Li4f/Kycf/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/4yznv82uH3/Nrh9/zq6gP9y16//btWr/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/3dzb/8K/vf+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/VreK/za5fv82uX7/TsWS/3ba - s/9Wypj/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+vwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/X1tX/u7m2/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/6Wzqf82uX//Nrl//za5 - f/9m0qf/ctiw/zq7gv82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f78AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/9jY1//Bv73/tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//draX/za6 - gP82uoD/RsGN/3batP9ezqD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uX+PAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//29va/8PBv/+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/66z - rf8+uoP/NrqA/za6gP9m0qf/dtq0/z6+h/82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqAgAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/zczL/7m2tP+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/hraf/za6gf82uoH/Pr6I/3batf9i0aX/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/Z2dj/wL68/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf9Guoj/NruC/za7gv9ez6L/dtu2/0bDj/82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/R0dD/ure0/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/h7eg/za7g/82u4P/QsGM/3bbtv9m06n/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/My8r/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/9Gu4n/NryD/za8g/9m1Kn/dty2/0bEkP82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/Lysn/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/iLih/za8hP82vIT/RsSR/3bct/9m1Kr/NryE/za8 - hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryE/za8hN8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/Kycj/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7G3sf8+vIj/Nr2F/za9hf9u2LH/dty4/0bE - kv82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYW/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/JyMf/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/cLqa/za9hf82vYX/Usuc/3bc - uP9e0aX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2FnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//Ozs3/vLm3/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/6q4r/82vYb/Nr2G/z7B - jP923Ln/ctq2/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//wL68/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/uri2/7q4 - tv+6uLb/ure1/7m3tf+3trT/trWz/7a0s/+1tLL/tbOy/7Szsf+0srH/s7Kw/7OxsP+zsbD/srGv/7Kw - r/+ysK//sbCu/7Gvrv+xr67/trOx/7azsf+2s7H/tbOx/7Wzsf+3tLL/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/T72Q/za+ - h/82vof/WtCj/0LDkP82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vodwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/yMfF/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vbq3/8C+u/+/vbv/wcC+/8HAvv/Bv77/wcHA/8C/v/+/vr7/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6mo - qP+sq6v/rayr/7Cvrv+zsbD/s7Kw/7i2s/+4trT/uri1/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/iruk/z6+ - iv82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8G+vf+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/wr++/8PBv//Kycj/y8nI/87N - zf/Ozc3/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/sbCw/7Oysv+1tLP/t7a1/7m3 - tv+6uLb/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+0urT/aLya/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/z7Cjv82voj/Nr6I/za+iDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMy/+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/8LAvf/KyMX/0c/O/9bV1P/Z2Nj/3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/ubi3/7u5uP+8urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+ku6//T76R/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/0XHlf9BxJL/Nb+J/zW/if8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHxcT/vru4/767uP++u7j/v726/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/xMK//9HPzv/Z2Nf/4ODf/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb28/769vP++vbv/vry6/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP+Kvab/Pr+M/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if9RzZ//Nb+J/zW/if81v4n/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMLA/768uf++vLn/w8G+/8rJxf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/ysjF/9nX - 1v/l5eT/8vHx//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/wsHA/8HAvv/Avrz/v7y6/768uf++vLn/vry5/768uf++vLn/vry5/7W8tv9gvpj/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/WdCl/zW/iv81v4r/Nb+KvwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLAvv+/vLn/v7y5/8XDwP/T0dD/v7y5/7+8 - uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8 - uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/x8TC/9vZ2P/r6un/+vr6//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/FxcT/w8LB/8HAvf+/vLn/v7y5/6W9sP9GwJD/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/1nRpv81wIr/NcCK/zXAir8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/vbr/v726/7+9uv/Fw8H/2dnX/8LA - vv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9 - uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/9LQz//h4N//9fT0//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zMzL/4fDq/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/9l17D/NcCL/zXAi/81wIuAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwL27v8C9u//Avbv/xcLA/9rZ - 2P/U0tH/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//S0M7/4+Lh//X19f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/wcvH/2TEn/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/9FyJf/VdCk/zXAi/81wIv/NcCLgAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC+u4/Avrv/wL67/8C+ - u//Z19b/2tnY/8nHxP/Avrv/wL67/8C+u//Avrv/wL67/8C+u//Avrv/wL67/8C+u//Avrv/wL67/8C+ - u//Avrv/wL67/8C+u//Avrv/zszK/+Hg3//y8vL/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/pMi6/0jClP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/Uc6h/1XQpf81wYz/NcGM/zXB - jEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBvrwwwb68/8G+ - vP/Bvrz/0c/O/9rZ2P/Z19b/x8PB/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8TBv//W1NP/6+vr//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/fsSq/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/13Uq/9FyZj/NcGM/zXB - jP81wYxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/ - vN/Cv7z/wr+8/8nFw//b2dj/29nY/9bU0//Dwb7/wr+8/8K/vP/Cv7z/wr+8/8K/vP/Cv7z/wr+8/8K/ - vP/Cv7z/ysjF/93c2//v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP+8xcL/WcKb/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf9p2bT/RcmZ/zXB - jf81wY3/NcGMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADCv71AwsC9/8LAvf/CwL3/1dPS/9va2f/b2tn/19XU/8TBv//CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/Mysn/4N/f/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw/+gw7b/PsGR/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/dd69/zXB - jf81wY3/NcGN/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMPAva/DwL3/w8C9/8jFwv/b2tn/29rZ/9va2f/X1dT/x8PB/8PAvf/DwL3/w8C9/8zK - yP/e3dz/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv98w6n/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/Rcqa/3Xf - vv81wo7/NcKO/zXCjs8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADDwb4Qw8G+78PBvv/Dwb7/0M7M/9va2f/b2tn/29rZ/9rZ1//KyMX/yMXC/9zb - 2v/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/7jBvv9Pwpj/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/1HP - o/9p2rX/NcKO/zXCjv81wo6/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTBvjDEwb/vxMG//8TBv//T0dD/3NrZ/9za2f/c29n/3t3d/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/7fAvP9Pwpf/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv9d1az/Zdiy/zXCjv81wo7/NcKOnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMK/MMTCv+/Fwr//xcK//9bV0//c3Nr/3t7e/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv9YwZv/NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//adq2/1nTqv81wo//NcKP/zXCj4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFwsAwxcPA78XDwP/S0dD/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf+kv7X/NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/3Xfv/9V0af/NcKP/zXCj/81wo9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJx0DV1NP/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/nL+y/zXDj/81w4//NcOP/1HQ - pP9V0qf/Tc+h/0XLm/89yJX/NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/0XLm/914L//Tc+h/zXDj/81w4//NcOPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1jDY2NjP2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/62/uP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9h17D/Zdmz/13Wrf9V0qf/Tc+h/0XLm/89yJX/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP9R0KT/deC//0XLm/81w5D/NcOQ/zXDjyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXV1TDW1tbv2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/i8Gu/z7D - k/81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP9t3bn/Zdmz/13Wrf9V0qj/Tc+i/0XLnP89yJb/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/WdSq/3Xgv/89yJb/NcOQ/zXDkP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT0xDU1NTv1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP+4wb7/hMKs/1nDnf81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9p27b/deC//3Xgv/9t3bn/Zdmz/13Wrf9V0qj/Tc+i/0XL - nP89yJb/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/23duf914L//NcOQ/zXDkP81w5DvAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0RDS0tLP1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/7PFv/+ix7n/iMev/3bHqf9axZ//SMSX/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP914L//deC//3Xgv/9x3rz/Zdmz/2HXsP9V0qj/UdCl/0XLnP9ByZn/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/0XLnP914L//adu2/zXDkP81w5D/NcOQvwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0dGP0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/qMy+/5/M - u/+Dy7D/Zsmk/1zHoP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9p27b/deC//3Xgv/914L//deC//3Xgv/9x3rz/Zdmz/2HX - sP9V0qj/UdCl/0XLnP9ByZn/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/znFk/9p27b/deC//1XSqP81w5D/NcOQ/zXDkI8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPz89A0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/7bJwv+hxbj/hMKs/3HBpP9WwZv/RcKV/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP914L//deC//3Xgv/914L//deC//3Xgv/9x3rz/Zdmz/2HXsP9V0qj/UdCl/0XLnP9ByZn/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/z3Ilv9p27b/deC//3HevP85xZP/NcOQ/zXDkP81w5AwAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz8/Pv9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/kbSo/4ez - pP9vtpz/WLqX/1C7lP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9p27b/deC//3Xgv/914L//deC//3Xgv/914L//deC//3Xg - v/9x3rz/Zdmz/2HXsP9V0qj/VdKo/2HXsP914L//deC//3HevP9ByZn/NcOQ/zXDkP81w5C/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7OIM/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/46gmf9+opX/aqiS/12tkP9LtY//QLyP/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP914L//deC//3Xgv/914L//deC//3Xgv/914L//deC//2nbtv9ByZn/NcOQ/zXDkP81w5DvNcOQIAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zoDPz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/bpKF/2eT - hP9Yn4X/SquI/zXDkL81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9l2bP/VdKo/0nNn/81w5D/NcOQ/zXDkP81w5D/NcOQUAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs6/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/91dXUQAAAAADXDkCA1w5BANcOQcDXDkI81w5C/NcOQ3zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5DvNcOQMAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O78/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcOQQDXD - kFA1w5CANcOQrzXDkL81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkO81w5CANcOQEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADXDkCA1w5BANcOQcDXDkIA1w5CANcOQgDXDkEAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/wsHB/769vP+8vLv/ubi3/7a0s/+1tLL/tLOx/7CurP+wrqv/sK2r/6+tq/+vrav/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/rKmn/6upp/+rqab/q6mm/6uppv+pp6b/qaem/6mopv+qqKf/qKin/6moqP+pqaj/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9PT0//Kysn/xMLB/769u/+5t7b/tbOw/7Sy - sP+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqo/62rqf+tq6n/rqyr/6+trP+wr67/sbCw/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//V1NP/zczL/8XEwv+8urj/trSx/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/r6yq/7Cuq/+ysa//s7Kw/7W1 - tP+4uLj/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/6urq/93c - 3P/NzMr/wb+9/7m3tP+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/7Guq/+ysK7/trSz/7m4t/+9vLz/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/6urp/9jW1f/KyMX/uLaz/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7GurP+2s7H/ubi2/7++vf/ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7/8fDv/93c2//Jx8T/trOw/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7a0 - sv+8u7n/wsLB/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/9/f2/+Hg3//Pzcv/t7Sx/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/uri2/8G/vv/Kysr/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3/+/v7//b2tj/xcPA/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7a0sf+/vrz/zMvL/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//w8PD/2djX/8C+vP+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+4tbP/wL+9/8nI - yP/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw/9/e - 3f/Jx8T/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/ube0/769vP/BwcD/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/m5uX/09HQ/727 - uP+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7m3tv+5ubj/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+Tj4//Mysj/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e1s/+1tLP/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/29va/8TCwP+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7e0sv+xsK//qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/e3t7/ysnH/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7e0 - sv+qqan/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/97e3v/Ozcz/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7SysP+hoaH/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9TT0v/Avbv/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/6upqP+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/2dnZ/8nHxf+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/tbOw/5uamv+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/1NTT/8LAvv+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+6uLX/oJ+e/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/0M/O/8C9u/++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf+op6X/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/zs3M/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/6qp - p/+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/zczL/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/qqin/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/zs3N/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP+lo6L/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0NDP/8PAvv/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/5OSkf97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/8jFw//DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv+/vLr/f39//3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8zLy//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//6OioP93d3f/dXV1QAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/IxcP/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/e3t7/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc3/x8PB/8fDwf/Hw8H/ycfE/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8nHxP/Hw8H/x8PB/5mYlv91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy8rJ/8jFwv/IxcL/0M7L/9jW - 1P/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8rIxP/d3Nr/yMXC/8jFwv+ysa7/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJyP/JxcP/ycXD/9PR - z//l5OT/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//Y19X/3tzb/8nFw//JxcP/w8C+/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLycf/ysfE/8rH - xP/U0tD/8vLy/8/Nyv/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/6+rq/97d2//Kx8T/ysfE/8rH - xP91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy8nF78vI - xf/LyMX/0tDO//Ly8v/j4uH/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/19XU//Ly8v/e3dz/y8jF/8vI - xf/LyMX/tbOxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzJ - x7/Mycf/zMnH/8zJx//y8vL/8vLy/9XT0v/Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zszJ/+3t7f/y8vL/1dPS/8zJ - x//Mycf/zMnH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADNyshwzcrI/83KyP/Nysj/5ubl//Ly8v/t7e3/z83K/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/+Tj4v/y8vL/8vLy/8/N - yv/Nysj/zcrI/83KyM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzsvJIM7Lyf/Oy8n/zsvJ/9va2P/y8vL/8vLy/+vr6v/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/97c2//y8vL/8vLy/+Tk - 4//Oy8n/zsvJ/87Lyf/Oy8lwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADPzMqvz8zK/8/Myv/PzMr/7u3t//Ly8v/y8vL/5eTj/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/9za2f/y8vL/8vLy//Ly - 8v/T0c//z8zK/8/Myv/PzMrvzszJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAz83LINDNy//Qzcv/0M3L/9jX1f/y8vL/8vLy//Ly8v/p6ej/0tDN/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/97d3P/y8vL/8vLy//Ly - 8v/j4uH/0M3L/9DNy//Qzcv/z83LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQzsyA0c7M/9HOzP/Rzsz/4+Lh//Ly8v/y8vL/8vLy/+zr - 6//V09H/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/+Xl5P/y8vL/8vLy//Ly - 8v/s6+v/09HO/9HOzP/Rzsz/0M7MzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLPzb/Sz83/0s/N/9LPzf/s7Ov/8vLy//Ly - 8v/y8vL/8PDw/9za2f/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/1tTS/+zr6//y8vL/8vLy//Ly - 8v/w8PD/2NbU/9LPzf/Sz83/0s/N79LPzSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0M4Q09DOz9PQzv/T0M7/1dLQ/+zs - 6//y8vL/8vLy//Ly8v/y8vL/6Ofn/9XS0P/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/4N/e//Dw8P/y8vL/8vLy//Ly - 8v/w8PD/2dfV/9PQzv/T0M7/09DO/9LQzjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPRzxDU0c/P1NHP/9TR - z//W09H/7Ozr//Ly8v/y8vL/8vLy//Ly8v/w8PD/393c/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//Z19b/6urp//Ly8v/y8vL/8vLy//Ly - 8v/w8PD/2tfW/9TRz//U0c//1NHP/9TRz2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NLQENXS - 0M/V0tD/1dLQ/9fU0v/p6Of/8vLy//Ly8v/y8vL/8vLy//Ly8v/r6ur/3NrZ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9jW1P/n5uX/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/u7u7/2tjW/9XS0P/V0tD/1dLQ79TS0DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADV09EQ1dPRn9bT0f/W09H/1tPR/+Tj4v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/r6ur/3dvZ/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/19XT/+Tj4v/w8PD/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/r6ur/19XT/9bT0f/W09H/1dPRz9XT0TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADW1NJw19TS/9fU0v/X1NL/3tza/+/u7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/r6+r/3dza/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/a2Nb/6Ofm//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Dw - 8P/j4eD/19TS/9fU0v/X1NL/1tTSr9bU0hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANfV0jDX1dPP2NXT/9jV0//Z19X/5eTj//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/v7u7/4eDe/9nX1f/Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/97c2//q6ej/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+zr - 6v/b2df/2NXT/9jV0//X1dPv19XSUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjW03DY1tTv2dbU/9nW1P/c2tj/7Ovr//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/w8PD/6Ojn/93b2f/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/c2tj/4+Lh/+/v7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7+/u/+Hf - 3f/Z1tT/2dbU/9nW1P/Y1tSf2NbTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2dfUENnX1Z/a19X/2tfV/9rX - 1f/g3tz/7Ovr//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7+/u/+bl4//d2tj/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/29nX/+Ph4P/s6+v/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/x8PD/5OPi/9rX - 1f/a19X/2tfV/9nX1b/Z19RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2tjVINrY - 1p/b2Nb/29jW/9vY1v/h393/7Ozr//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+7t - 7f/o5+b/393b/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/93b - 2f/j4uD/6+rp//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+/v7//k4uH/3NrY/9vY - 1v/b2Nb/2tjW39rY1VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA29nXINvZ15/c2df/3NnX/9zZ1//h4N7/6uno//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/v7+//6eno/+Lh3//d29n/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//h397/6Ofm/+7t - 7f/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7ezr/+Tj4f/c2df/3NnX/9zZ - 1//b2de/29nXYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA3NrYINza2I/c2tjv3drY/93a2P/e3Nr/5uXj/+/v7//y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+7u7f/o6Of/4+Lg/97c2v/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/i4N//5uXj/+vr6v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Hx8P/q6ej/4d/d/93a2P/d2tj/3drY/9za - 2J/c2thAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3b2WDd29m/3tvZ/97b2f/e29n/4+Hf/+vq - 6f/x8fD/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7u7t/+rp - 6f/l5OL/4d/e/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/+De3P/k4uH/6Ofm/+3s7P/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7Ovq/+Xk4v/e29n/3tvZ/97b2f/d29nf3dvZgN3b - 2SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN7c2iDe3NqP3tza39/c - 2v/f3Nr/39za/+Xj4v/r6un/8fHx//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/7e3s/+no6P/n5uX/4+Lg/+De3P/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/4uDf/+bk4//o5+b/7e3s//Hx8f/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+zr6//m5eP/4N7c/9/c2v/f3Nr/3tza797c2p/e3NpAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADf3dsw393bj9/d29/g3dv/4N3b/+Dd2//k4+H/6uno/+/u7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8fHx/+3t7P/q6ej/6ejn/+Ti - 4f/j4d//4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd - 2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd - 2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd - 2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4uDe/+Ti4f/n5uX/6ejn/+3t - 7P/u7u7/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Hx8f/r6un/5eTi/+Hf3P/g3dv/4N3b/9/d2+/f3duf393bUAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA4N7cMODe3HDg3tzP4N7c/+De3P/g3tz/4+Hf/+fm5P/s6+r/8PDv//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/x8fH/7u3t/+7t7f/p6Of/6ejn/+fm5P/l4+L/5ePi/+Hf3f/g3tz/4N7c/+De - 3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De - 3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De - 3P/g3tz/4N7c/+Xj4v/l4+L/5ePi/+no5//p6Of/7Ozr/+7t7f/w8O//8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Hx - 8f/t7Ov/6Ofm/+Ti4P/g3tz/4N7c/+De3P/g3tzf4N7cj+De3FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHf3RDh391Q4d/dn+Hf3d/h393/4d/d/+Hf - 3f/j4uD/6Obl/+vq6f/v7+7/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/w8O//7u3t/+7t7f/u7e3/7u3t/+rp6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp - 6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp6P/q6ej/7ezr/+7t7f/u7e3/7u3t/+/u - 7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Dw7//t7Ov/6ejm/+Tj - 4f/h393/4d/d/+Hf3f/h393v4d/dr+Hf3XDh390gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4uDeIOLg - 3mDi4N6P4uDez+Lg3v/i4N7/4uDe/+Lg3v/m5eP/6ejn/+zr6//v7+7/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8PDw/+3s7P/q6ej/5uXj/+Ph3//i4N7/4uDe/+Lg - 3v/i4N7f4uDer+Lg3nDi4N4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA4+HfQOPh34Dj4d+v4+Hf3+Th3//k4d//5OHf/+Th3//m5OP/6Ofl/+vq - 6f/u7ez/7+7u//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Dw8P/v7u7/6+rp/+no5v/n5uT/5OHf/+Th3//k4d//5OHf/+Ph3+/j4d+/4+HfgOPh - 31Dj4d8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OLgQOTi4HDk4uCP5OLgv+Ti - 4O/l4uD/5eLg/+Xi4P/l4uD/5ePh/+jm5f/p5+b/7Orp/+zr6v/v7u7/7+7u//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8O/v/+/u7v/t7Oz/7Orp/+vp - 6P/o5uX/5uTj/+Xi4P/l4uD/5eLg/+Xi4P/l4uD/5OLgv+Ti4J/k4uCA5OLgQOTi4BAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAOXj4UDl4+FQ5ePhgOXj4Z/l4+G/5ePh3+Xj4f/l4+H/5ePh/+Xj4f/l4+H/5ePh/+bk - 4v/p5+b/6efm/+no5//s6+r/7Ovq/+zr6v/t7ez/7+/u/+/v7v/v7+7/7+/u/+/v7v/x8PD/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+/v7v/v7+7/7+/u/+/v - 7v/v7+7/7u7t/+zr6v/s6+r/7Ovq/+rp6P/p5+b/6efm/+jm5P/l4+H/5ePh/+Xj4f/l4+H/5ePh/+Xj - 4f/l4+Hv5ePhv+Xj4a/l4+GA5ePhYOXj4UDl4+EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5uTiEObk4kDm5OJA5uTicObk - 4oDm5OKA5uTiv+bk4r/m5OK/5uTi7+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk - 4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk - 4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OK/5uTiv+bk4r/m5OKP5uTigObk4oDm5OJA5uTiQObk - 4iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADn5eMQ5+XjQOfl40Dn5eNA5+XjQOfl - 40Dn5eNA5+XjQOfl42Dn5eOA5+XjgOfl44Dn5eOA5+XjgOfl44Dn5eNw5+XjQOfl40Dn5eNA5+XjQOfl - 40Dn5eNA5+XjQOfl4zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - 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 - 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 - AAAAAAAAAAAAAAAAAAD/////////8AAAAAAAAAAAAAAAAAAAAAAH//////////////////8AAAAAAAAA - AAAAAAAAAAAAAAD/////////////////+AAAAAAAAAAAAAAAAAAAAAAAAB/////////////////gAAAA - AAAAAAAAAAAAAAAAAAAAB////////////////4AAAAAAAAAAAAAAAAAAAAAAAAAA///////////////+ - AAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////// - ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAA//// - /////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAB////////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AB////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////4AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAD//////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP/////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////wAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA/////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////wAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAD////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////wAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////// - /4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ - //////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAf//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////wAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAD///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////4AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////wAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///// - 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH - /////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAA//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAP/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////+AAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAP/////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////gAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///// - 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH - //////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////gAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAA//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////AAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAP//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////4AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAH///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////// - /8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/ - ///////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAP////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////8AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAP/////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///////////gAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAf///////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAf///////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////////+A - AAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAP//// - //////////gAAAAAAAAAAAAAAAAAAAAAAAAAAB///////////////AAAAAAAAAAAAAAAAAAAAAAAAAAA - H//////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////4AAAAAAAAAAAAAAAAAAAAA - AAAAAH///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAf///////////////gAAAAAAAAAAAAAAA - AAAAAAAAAAD////////////////AAAAAAAAAAAAAAAAAAAAAAAAAA////////////////4AAAAAAAAAA - AAAAAAAAAAAAAAAB////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////4AAAAA - AAAAAAAAAAAAAAAAAAAAAH///////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////8 - AAAAAAAAAAAAAAAAAAAAAAAAAAAf//////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAA////////// - ////+AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - w/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAP///8B////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - Af///gH////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAA///8AP////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAB///AA////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4AD////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAAH/+AAP////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAA////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAAA/+AAH////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/gAAf////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAD8AAB////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAH////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAf////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - Af////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAP////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAD////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAA/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAP////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAH////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - B/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAf////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - H/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAB/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////////gAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAf////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////8AAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAP/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////gAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAD//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////+AAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////// - gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///// - /////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - f/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////+AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAH/////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAD/////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAEAAAD//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf4AAf/////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//gP//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAP//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////+AAAAAAAAAAA - AAAAAAAAAAAAAAAAD//////////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAf//////////////wAAAAA - AAAAAAAAAAAAAAAAAAAAAD///////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////+ - AAAAAAAAAAAAAAAAAAAAAAAAAAB///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////// - /////4AAAAAAAAAAAAAAAAAAAAAAAAAB////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAP///// - ///////////wAAAAAAAAAAAAAAAAAAAAAAAAB/////////////////gAAAAAAAAAAAAAAAAAAAAAAAAf - /////////////////gAAAAAAAAAAAAAAAAAAAAAAAD//////////////////AAAAAAAAAAAAAAAAAAAA - AAAA///////////////////AAAAAAAAAAAAAAAAAAAAAAAP///////////////////AAAAAAAAAAAAAA - AAAAAAAAD////////////////////AAAAAAAAAAAAAAAAAAAAAA/////////////////////gAAAAAAA - AAAAAAAAAAAAAP/////////////////////gAAAAAAAAAAAAAAAAAAAH//////////////////////wA - AAAAAAAAAAAAAAAAAD///////////////////////4AAAAAAAAAAAAAAAAAB//////////////////// - ////8AAAAAAAAAAAAAAAAA//////////////////////////AAAAAAAAAAAAAAAA//////////////// - ///////////4AAAAAAAAAAAAAA/////////////////////////////AAAAAAAAAAAAB//////////// - //////////////////8AAAAAAAAAAH////////////////////////////////4AAAAAAAB///////// - ///////////////////////////wAAAP//////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////ygAAACAAAAAAAEAAAEA - IAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTUBNTU1ATU1NQE2NjUBNjY2ATY2NgE2NjYCNjY2Ajc3 - NgM3NzcDNzc3Azc3NwQ4ODcEODg4BTg4OAY4ODgGOTk4Bzk5OAc5OTkIOTk5CDk5OQg6OjoJOjo6Cjs7 - Ogo7OzoKOzs6Cjs7Ogs7OzsLOzs7Czs7Oww7OzsMOzs7DDw8Oww8PDsMPDw7DDw8Oww8PDsMOzs7DDs7 - Oww7OzsMOzs7Czs7Ows7OzoLOzs6Cjs7Ogo6OjoKOjo6CTo6Ogk5OTkIOTk5CDk5OQc5OTgHOTk4Bjg4 - OAY4ODgFODg4BDg4NwQ3NzcDNzc3Azc3NwM3NzYCNjY2AjY2NgE2NjYBNjY1ATU1NQE1NTUBNTU1AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NAE0NDQBNDQ0ATU1 - NAE1NTUBNTU1AjU1NQI2NjUDNjY2AzY2NgQ2NjYENzc2BTc3NwY3NzcHNzc3CDg4Nwg4ODgJOTk4Cjk5 - OQs5OTkLOTk5DDo6OQ06OjkOOjo6Dzo6Og86OjoQOzs6ETs7OhE7OzoSOzs7Ejs7OxM7OzsTOzs7Ezs7 - OxQ7OzsUPDw7FDw8OxQ8PDsUPDw7FDw8OxQ7OzsUOzs7Ezs7OxM7OzsTOzs7Ejs7OhI7OzoROzs6ETo6 - OhA6OjoPOjo6Dzo6OQ46OjkNOTk5DDk5OQw5OTkLOTk4Cjg4OAk4ODgJODg3CDc3Nwc3NzcGNzc3BTc3 - NgU2NjYENjY2AzY2NgM2NjUCNTU1AjU1NQE1NTUBNTU0ATQ0NAE0NDQBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADMzMwE0NDMBNDQ0ATQ0NAE0NDQCNDQ0AjU1NQM1NTUENTU1BDY2NQU2NjYGNjY2BzY2 - Ngg3NzcJNzc3Cjg4Nws4ODgNODg4Djg4OA85OTgQOTk5ETk5ORI5OTkTOjo5FDo6ORU6OjoWOjo6Fzo6 - Ohg7OzoZOzs6GTs7Oho7OzsbOzs7Gzs7Oxs7OzscOzs7HDw8Oxw8PDsdPDw7HTw8Ox08PDsdPDw7HDs7 - Oxw7OzscOzs7Gzs7Oxs7OzsbOzs6Gjs7Ohk7OzoZOjo6GDo6Ohc6OjoWOjo5FTo6ORU5OTkTOTk5Ejk5 - ORE5OTgQOTk4Dzg4OA44ODgNODg3DDc3Nwo3NzcJNzc2CDY2Ngc2NjYGNjY2BTU1NQQ1NTUENTU1AzU1 - NQI0NDQCNDQ0ATQ0NAE0NDQBNDQzATMzMwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATMzMwEzMzMBMzMzATMzMwI0NDQCNDQ0AzQ0 - NAQ0NDQENTU0BjU1NQc1NTUINjY2CTY2Ngs3NzYMNzc3DTc3Nw83NzcRODg3Ejg4OBM4ODgVODg4Fzk5 - OBg5OTkaOTk5Gzk5ORw6OjkeOjo5Hzo6OiA6OjohOjo6Ijs7OiM7OzokOzs6JTs7OyY7OzsmOzs7Jzs7 - Oyc8PDsoPDw7KDw8Oyg8PDsoPDw7KDw8Oyg8PDsoPDw7KDs7Oyc7OzsnOzs7Jjs7OyY7OzolOzs6JDs7 - OiM7OzoiOjo6ITo6OiE6OjkfOjo5Hjo6OR05OTkbOTk5Gjk5OBk5OTgXODg4FTg4OBQ4ODcSNzc3ETc3 - Nw83NzcONzc2DDY2Ngs2NjYKNTU1CDU1NQc1NTUGNTU0BDQ0NAQ0NDQDNDQ0AjQ0NAIzMzMBMzMzATMz - MwEzMzMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMzMzATMzMwIzMzMCMzMzAzQ0MwQ0NDQFNDQ0BzQ0NAg1NTUKNTU1DDY2NQ42NjYQNjY2ETc3 - NhM3NzcVNzc3Fzc3Nxo4ODccODg4Hjg4OCA4ODghOTk4Izk5OSU5OTknOTk5KDo6OSo6OjksOjo6LTo6 - Oi47OzowOzs6MTs7OjI7OzszOzs7Mzs7OzQ7Ozs1Ozs7NTw8OzY8PDs2PDw7Nzw8Ozc8PDs3PDw7Nzw8 - OzY8PDs2PDw7Njs7OzU7Ozs1Ozs7NDs7OzM7OzoyOzs6MTs7OjA6OjovOjo6LTo6Oiw6OjkqOjo5KTk5 - OSc5OTklOTk4JDk5OCI4ODggODg4Hjg4Nxw3NzcaNzc3GDc3NxU3NzYUNjY2EjY2NhA2NjYONTU1DDU1 - NQo1NTUINDQ0BzQ0NAY0NDQENDQzAzMzMwMzMzMCMzMzATMzMwEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIzMzICMzMzAzMzMwQzMzMGNDQzCDQ0 - NAk0NDQLNTU1DjU1NRA1NTUSNjY1FDY2Nhc2NjYZNzc2HDc3Nx83NzchNzc3JDg4NyY4ODgoODg4Kzk5 - OC05OTgvOTk5Mjk5OTQ6Ojk2Ojo5ODo6Ojk6Ojo7Ojo6PDs7Oj07Ozo/Ozs6QDs7O0E7OztCOzs7Qzs7 - O0M8PDtEPDw7RDw8O0U8PDtFPDw7RTw8O0U8PDtFPDw7RTw8O0Q8PDtEPDw7Qzs7O0M7OztCOzs7QTs7 - O0A7Ozo/Ozs6Pjs7Oj06Ojo7Ojo6Ojo6OTg6Ojk2OTk5NDk5OTI5OTkwOTk4LTg4OCs4ODgpODg3Jjg4 - NyQ3NzciNzc3Hzc3Nh02NjYaNjY2FzY2NhU1NTUSNTU1EDU1NQ41NTQMNDQ0CTQ0NAgzMzMGMzMzBDMz - MwQzMzMDMjIyAjIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgQzMzMGMzMzCDMzMwo0NDQNNDQ0DzQ0NBE1NTUUNTU1FzU1NRo2NjUeNjY2ITY2 - NiQ3NzYnNzc3Kjc3Ny04ODcwODg3Mzg4ODY4ODg5OTk4Ozk5OD05OTlAOTk5Qjo6OUQ6OjlGOjo6SDo6 - Oko7OzpLOzs6TTs7Ok47OztPOzs7UDs7O1E8PDtSPDw7Uzw8O1M8PDtUPDw7VDw8O1U8PDtVPDw7VTw8 - O1U8PDtUPDw7VDw8O1M8PDtTPDw7Ujs7O1E7OztQOzs7Tzs7O047OzpNOzs6TDo6Oko6OjpIOjo6Rzo6 - OUU6OjlCOTk5QDk5OT45OTg7ODg4OTg4ODY4ODg0ODg3MTc3Ny43NzcrNzc2KDY2NiQ2NjYhNjY2HjU1 - NRs1NTUYNTU1FTU1NBI0NDQPNDQ0DTQ0NAszMzMIMzMzBjMzMwUyMjIDMjIyAjIyMgIyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIGMjIyCDMzMwozMzMNNDQzEDQ0 - NBM0NDQXNDQ0GjU1NR41NTUiNTU1JjY2Nio2NjYtNjY2MTc3NjU3Nzc4Nzc3PDg4Nz84ODhCODg4RTg4 - OEk5OThLOTk5Tjk5OVA6OjlTOjo5VTo6Olc6OjpYOzs6Wjs7Olw7OzpdOzs7Xjs7O2A8PDthPDw7YTw8 - O2I8PDtjPDw7Yzw8PGQ8PDxkPDw8ZTw8PGU8PDxlPDw8ZTw8PGU8PDxkPDw7Yzw8O2M8PDtiPDw7YTw8 - O2E7OztgOzs7Xzs7O107OzpcOzs6Wjo6Olk6OjpXOjo5VTo6OVM5OTlROTk5Tjk5OEw5OThJODg4Rjg4 - OEM4ODdANzc3PDc3Nzk3NzY1NjY2MjY2Ni42NjYqNjY1JjU1NSI1NTUeNTU0GzQ0NBc0NDQUNDQ0ETMz - Mw0zMzMLMzMzCDIyMgYyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIFMjIyBzIyMgkzMzMMMzMzEDMzMxM0NDMXNDQ0GzQ0NB80NDQkNTU1KTU1NS01NTUxNjY2NjY2 - Njo2NjY+Nzc2Qzc3N0Y3NzdKODg3Tjg4OFE4ODhUOTk4Vzk5OFo5OTldOTk5Xzo6OWE6OjljOjo6ZTo6 - Omc7OzppOzs6ajs7O2s7OzttPDw7bTw8O288PDtvPDw8cDw8PHE8PDxxPDw8cj09PHI9PTxyPT08cj09 - PHI9PTxyPT08cjw8PHI8PDxxPDw8cTw8PHA8PDtvPDw7bzw8O247OzttOzs7azs7Omo7OzppOzs6Zzo6 - OmY6OjpkOjo5Yjo6OV85OTldOTk5Wjk5OFg4ODhVODg4UTg4N043NzdLNzc3Rzc3N0M3NzY/NjY2OzY2 - Njc2NjUyNTU1LjU1NSk1NTQlNDQ0IDQ0NBw0NDQYMzMzEzMzMxAzMzMNMjIyCTIyMgcyMjIFMjIyBDIy - MgIyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIyMjIEMjIyBjIyMggyMjILMjIyDjMzMxIzMzMXMzMzGzQ0 - MyA0NDQmNDQ0KjU1NDA1NTU1NTU1OjU1NT82NjZFNjY2STY2Nk03NzdSNzc3Vjc3N1k4ODddODg4YDg4 - OGM5OThmOTk5aDk5OWs6OjltOjo5bzo6OnE6OjpzOzs6dTs7OnY7Ozt4Ozs7eTw8O3k8PDt7PDw7ezw8 - PHw8PDx9PT08fT09PH49PTx+PT08fz09PH89PTx/PT08fz09PH89PTx/PT08fj09PH49PTx9PDw8fTw8 - PHw8PDt7PDw7ezw8O3o7Ozt5Ozs7eDs7Onc7Ozp1Ojo6czo6OnI6OjlwOjo5bjk5OWs5OTlpOTk4Zjg4 - OGQ4ODhgODg4XTg4N1o3NzdWNzc3Uzc3Nk42NjZKNjY2RTY2NUA1NTU7NTU1NjU1NTE0NDQrNDQ0JjQ0 - NCEzMzMcMzMzFzMzMxMyMjIPMjIyCzIyMggyMjIGMjIyBDIyMgMyMjICMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjICMjIyBDIy - MgYyMjIJMjIyDDIyMhAyMjIUMzMzGjMzMyAzMzMlNDQzKzQ0NDI0NDQ4NTU0PjU1NUQ1NTVJNjY1TzY2 - NlQ2NjZZNzc2XTc3N2E3NzdlODg3aDg4OGw4ODhvOTk4cjk5OHU5OTl3OTk5eTo6OXs6Ojp9Ojo6fzs7 - OoA7OzqBOzs7gzs7O4Q8PDuFPDw7hTw8PIY8PDyHPT08hz09PIg9PTyJPT08iT09PIk9PT2KPT09ij09 - PYo9PT2KPT09ij09PYo9PT2JPT08iT09PIk9PTyIPT08iDw8PIc8PDyHPDw7hjw8O4U8PDuEOzs7gzs7 - OoI7OzqAOjo6fzo6On06Ojl7Ojo5eTk5OXc5OTl1OTk4cjg4OHA4ODhtODg3aTc3N2Y3NzdiNzc2XjY2 - Nlk2NjZVNjY1UDU1NUo1NTVFNTU1PzQ0NDk0NDQzNDQ0LTMzMyYzMzMhMzMzGzIyMhUyMjIRMjIyDTIy - MgkyMjIHMjIyBDIyMgMyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAjIyMgQyMjIGMjIyCTIyMg0yMjIRMjIyFjIyMhwzMzMiMzMzKTMz - MzA0NDQ3NDQ0PjQ0NEU1NTRMNTU1UjU1NVg2NjVdNjY2YjY2NmY3NzZrNzc3bzc3N3I4ODd2ODg4eTg4 - OHs5OTh+OTk5gDk5OYI6OjmEOjo5hjo6Ooc7OzqJOzs6ijs7O4s7OzuMPDw7jTw8O448PDyOPDw8j0lJ - SJZUVFOdXFxbpGNjY6tjY2OsampptG1tbbptbWy6bGxrumtra7pqamq6amppumhoaLheXl6sXl5eq1lZ - WKZQUE+eSUlImDw8PI88PDyOPDw7jjw8O407OzuMOzs7izs7Ooo7OzqJOjo6hzo6OoY6OjmFOTk5gzk5 - OYE5OTh+ODg4fDg4OHk4ODd2Nzc3czc3N283NzdsNjY2ZzY2NmM2NjZeNTU1WDU1NVM1NTVNNDQ0RjQ0 - ND80NDQ5MzMzMTMzMyozMzMkMjIyHTIyMhcyMjISMjIyDTIyMgoyMjIHMjIyBDIyMgIyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgIyMjIDMjIyBjIy - MggyMjINMjIyETIyMhcyMjIdMjIyJTMzMywzMzM1MzMzPDQ0NEQ0NDRMNDQ0UzU1NVk1NTVgNTU1ZjY2 - NWs2NjZwNjY2dDc3Nng3Nzd7Nzc3fjg4N4E4ODiEODg4hjk5OIg5OTmKOTk5jDo6OY06OjqOPz8+kV5e - XaF0dHSzgYGBwZeXl9CoqKjctbW16bq6uvHCwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6GhofOcnJzqkpKS3oWF - hdJzc3PEaGhotVlZWKVBQUCTOjo6jzo6OY06OjmMOTk5ijk5OYk5OTiHODg4hDg4OII4ODd/Nzc3fDc3 - N3k2NjZ0NjY2cDY2Nmw1NTVmNTU1YTU1NVs0NDRUNDQ0TTQ0NEYzMzM9MzMzNjMzMy4yMjImMjIyHzIy - MhgyMjISMjIyDjIyMgkyMjIGMjIyBDIyMgIyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAzIyMgUyMjIIMjIyDDIyMhEyMjIXMjIyHjIyMicyMjIvMzMzNzMz - M0EzMzNKNDQ0UjQ0NFo0NDRhNTU1aDU1NW41NTV0NjY2eDY2Nn02NjaANzc3gzc3N4Y4ODeJODg4izg4 - OI05OTiPQkJClHBwb6uMjIvBtLS02M/Pz+ze3t793Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+srKzumZmZ23x8 - fMdnZ2ewRUVFmDk5OI84ODiOODg4jDg4N4k3NzeHNzc3hDc3NoE2NjZ9NjY2eTY2NXQ1NTVvNTU1aTQ0 - NGI0NDRbNDQ0VDMzM0szMzNDMzMzOTIyMjAyMjIoMjIyIDIyMhgyMjISMjIyDTIyMggyMjIGMjIyAzIy - MgIyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgIyMjIEMjIyBzIy - MgoyMjIPMjIyFjIyMh0yMjIlMjIyLzIyMjkzMzNDMzMzTTMzM1Y0NDRfNDQ0ZzQ0NG41NTV0NTU1ejY2 - NX82NjaDNjY2hzc3Noo3NzeMNzc3j0FBQZR4eHivp6enzNzc2+f09PT98fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/srKy6o2Njc9ra2uyQkJCljc3 - N483NzeNNzc2ijY2Noc2NjaENjY1fzU1NXs1NTV1NTU0bzQ0NGg0NDRhNDQzVzMzM04zMzNFMzMyOzIy - MjEyMjIoMjIyHjIyMhcyMjIRMjIyCzIyMgcyMjIEMjIyAjIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAzIyMgUyMjIJMjIyDjIyMhMyMjIbMjIyJDIyMi0yMjI5MjIyRDMz - M04zMzNZMzMzYjQ0NGs0NDRzNTU0eTU1NX81NTWENjY1iDY2Now2NjaPREREloSEhLnHx8fd9fX1+v39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Kysr7sLCw4nh4eL1HR0eaNjY2jzY2No02NjWJNTU1hTU1 - NYA1NTR6NDQ0dDQ0NG00NDNjMzMzWjMzM1AzMzNFMjIyOzIyMjAyMjIlMjIyHTIyMhUyMjIOMjIyCTIy - MgYyMjIDMjIyAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgIyMjIEMjIyBzIy - MgsyMjIRMjIyGDIyMiEyMjIrMjIyNjIyMkMzMzJOMzMzWTMzM2U0NDNuNDQ0djQ0NH41NTSENTU1iTU1 - NY02NjWQb29vrbi4uNjw8PD79/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83N - zf/Pz8//0tLS/83Nzf2kpKTfZmZmtDg4OJI1NTWONTU1ijU1NYU0NDR/NDQ0eDQ0NG8zMzNmMzMzXDMz - M1AyMjJEMjIyOTIyMi0yMjIjMjIyGjIyMhIyMjIMMjIyCDIyMgQyMjICMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAzIyMgUyMjIIMjIyDjIyMhQyMjIcMjIyJzIyMjEyMjI9MjIySzMz - MlczMzNjMzMzbjQ0M3c0NDR/NDQ0hjU1NIs5OTmRgYGBu9XV1ezv7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ra2t83Fx - cMI6OjqUNTU1jDQ0NIc0NDSBNDQ0eTMzM28zMzNlMzMzWTIyMk0yMjJAMjIyMzIyMigyMjIeMjIyFTIy - Mg8yMjIJMjIyBTIyMgMyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIDMjIyBTIy - MgoyMjIQMjIyFzIyMiAyMjIrMjIyNzIyMkQyMjJSMzMzXzMzM2szMzN2NDQ0fzQ0NIY0NDSNeXl5ttTU - 1O/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rK - yv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6KiovVpaWm/Nzc3kDQ0NIg0NDSAMzMzeDMz - M24zMzNhMjIyVDIyMkcyMjI5MjIyLTIyMiIyMjIYMjIyETIyMgsyMjIGMjIyAzIyMgIyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgMyMjIGMjIyCzIyMhEyMjIZMjIyIzIyMjAyMjI8MjIySjIy - MlkzMzNmMzMzcjMzM300NDSGT09Pmrq6uuHj4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6en - p/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5 - uf+ysrL/qqqq/6Ojo/+NjY3qSkpKozQ0NIczMzN+MzMzdDMzM2gyMjJbMjIyTTIyMj8yMjIyMjIyJjIy - MhsyMjISMjIyDDIyMgcyMjIEMjIyAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjICMjIyBDIy - MgcyMjIMMjIyEjIyMhsyMjIlMjIyMzIyMkAyMjJOMjIyXTMzM2ozMzN2MzMzgWxsbKzV1dX439/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6en - p/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jI - yP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+UlJT9YWFhuzMz - M4MzMzN5MzMzbDIyMl8yMjJRMjIyQjIyMjUyMjIoMjIyHTIyMhQyMjINMjIyCDIyMgQyMjICMjIyARkZ - GQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABMjIyATIyMgIyMjIEMjIyCDIyMgwyMjIUMjIyHDIyMicyMjI0MjIyQjIy - MlAyMjJgMzMzbTMzM3iHh4e519fX/dzc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR - 0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mp - qf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1 - tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DA - wP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/aGhoyTMzM3szMzNvMjIyYjIyMlQyMjJEMjIyNjIy - MioyMjIeMjIyFTIyMg0yMjIIMjIyBTIyMgIyMjIBGRkZAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEyMjIBMjIyAjIy - MgQyMjIIMjIyDDIyMhQyMjIcMjIyJzIyMjUyMjJCMjIyUDIyMmAzMzNta2troNXV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5 - uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wl - pf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TE - xP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46O - jv+Hh4f/Xl5euDMzM28yMjJiMjIyVDIyMkQyMjI3MjIyKjIyMh4yMjIVMjIyDjIyMggyMjIFMjIyAzIy - MgEZGRkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjICMjIyBDIyMgcyMjIMMjIyEzIyMhwyMjImMjIyNDIy - MkEyMjJPMjIyX0hISHnMzMz21dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU - 1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qq - qv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Ky - sv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fH - x//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/9/f3/8R0dHiDIyMmEyMjJTMjIyQzIy - MjYyMjIpMjIyHTIyMhQyMjINMjIyCDIyMgUyMjICMjIyARkZGQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgIyMjIEMjIyBzIyMgsyMjISMjIyGjIyMiQyMjIxMjIyPjIyMkwyMjJbkJCQt9HR0f/V1dX/2dnZ/9zc - 3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b2 - 9v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8 - vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6Sk - pP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LC - wv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WV - lf+Ojo7/h4eH/4CAgP9oaGjNMjIyXTIyMk8yMjJAMjIyNDIyMicyMjIcMjIyEzIyMg0yMjIHMjIyBDIy - MgIyMjIBGRkZAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgMyMjIGMjIyCjIyMhEyMjIYMjIyITIy - Mi0yMjI6MjIyRzIyMlXBwcHj0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly - 8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY - 2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ys - rP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7Cw - sP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/P - z//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3h4ePo3NzdcMjIySjIy - MjwyMjIvMjIyJDIyMhkyMjISMjIyDDIyMgcyMjIDMjIyAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMjIyAzIyMgUyMjIJMjIyDzIyMhUyMjIeMjIyKTIyMjQyMjJBMjIyT87Ozv/R0dH/1dXV/9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7 - +//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/ - v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6Sk - pP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DA - wP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5yc - nP+VlZX/jo6O/4eHh/+AgID/eXl5/0NDQmYyMjJEMjIyNjIyMisyMjIgMjIyFzIyMhAyMjIKMjIyBTIy - MgMyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjICMjIyBDIyMgcyMjIMMjIyEjIy - MhoyMjIkMjIyLjIyMjoyMjJGzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v - 7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc - 3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66u - rv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS - 0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/Q0NDXjIy - MjwyMjIwMjIyJTIyMhwyMjITMjIyDTIyMggyMjIEMjIyAjIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgIyMjIDMjIyBjIyMgoyMjIPMjIyFTIyMh4yMjInMjIyMTIyMj3Ozs7/0dHR/9XV - 1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+ - /v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729 - vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Oj - o/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef9FRUVWMjIyNDIyMigyMjIfMjIyFzIyMhAyMjIKMjIyBzIy - MgQyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgMyMjIEMjIyCDIy - MgwyMjIRMjIyGDIyMiAyMjIpMjIyNM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs - 7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/P - z//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/0ZG - Rk4yMjIsMjIyIjIyMhoyMjITMjIyDTIyMggyMjIFMjIyAzIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAjIyMgMyMjIGMjIyCTIyMg0yMjIUMjIyGjIyMiIyMjIrzs7O/9HR - 0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qq - qv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/R0dHRjIyMiMyMjIbMjIyFDIyMg8yMjIKMjIyBjIy - MgQyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyAjIy - MgQyMjIHMjIyCjIyMg8yMjIUMjIyGjIyMiHOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np - 6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLSz/7Gx - sf+wr6//rq2t/6ysq/+qqqr/qamo/6iop/+np6b/pqWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83N - zf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5 - ef9JSUk9MjIyGzIyMhUyMjIPMjIyCzIyMgcyMjIEMjIyAzIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyAzIyMgUyMjIHMjIyCzIyMg8yMjIUMjIyGs7O - zv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/1dXV/8zLy//FxMP/vr28/7m4 - tv+1s7H/srCt/6+tqv+vrKn/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+sqab/rKmn/6upp/+rqaf/rKqo/6yrqv+uraz/sK+u/7Kysf+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Ky - sv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/0tLSzcyMjIVMjIyDzIyMgsyMjIIMjIyBTIy - MgMyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjICMjIyAzIyMgUyMjIHMjIyCjIyMg4yMjITzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm - 5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/w8PD/4N/f/9HP - zv/Fw8H/uri1/7Guq/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/66rqP+vrav/srCu/7W0s/+6ubj/v7+//8LCwv/ExMT/yMjI/8rK - yv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CA - gP95eXn/TU1NMTIyMg8yMjILNTU1CDU1NQUyMjIDMjIyAjIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjICMjIyAz4+PgVVVVUHMjIyCTIy - Mg3Ozs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v/+/v7/+jn5v/S0c//wL27/7Guq/+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/srCt/7i2tf/Av77/yMjI/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5 - uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef9OTk4sMjIyCkNDQwdHR0cFNjY2AzIy - MgIyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjICQUFBA25ubgRwcHAGMjIyCc7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/v7+//3NrZ/8TCwP+zsK3/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+xrqv/t7Wy/8G/vv/NzMz/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eH - h/+AgID/eXl5/1BQUCdVVVUHWVlZBUxMTAM4ODgCMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgFHR0cCfX19A5WV - lQSjo6MFzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+3t7f/a2dj/xMLA/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+3tbL/vry7/76+ - vv+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/b29vJWhoaARgYGADVFRUAjs7 - OwEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyAVBQUAGRkZEBpqamArKysgPOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+Tj4//Ny8r/t7Sx/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Gu/7Wzsv+ysbD/qqqq/6Ojo/+cnJz/lZWV/46O - jv+Hh4f/gICA/3l5ef9zc3MjcHBwAmhoaAFdXV0BPz8/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fAaqq - qgG6uroBwcHBAs7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/97e3v/Kycf/t7Sx/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+ysK3/paWk/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/3d3dyF3d3cBcXFxAWlp - aQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHxwHKysoBzs7O/9HR0f/V1dX/2dnZ/9zc - 3P/Ozcz/uba0/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/qqin/5aW - lv+Ojo7/h4eH/4CAgP95eXn/e3t7IX5+fgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/W1dX/wr+9/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/sq+t/5SUk/+Hh4f/gICA/3l5ef9+fn4gAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/0NDP/727 - uP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/t7Wy/5KRkf+AgID/eXl5/4GBgSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz/+9u7j/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/ubaz/4uLiv95eXn/hYSEIAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/wsC9/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/7y6t/+8ubf/uri2/7q4tv+5t7X/ube1/7i2tP+4trT/uLaz/7e1s/+3tbP/t7Wz/7i2 - tP+6t7X/uri1/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/tbOw/3t6ev+JiIcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnIx/++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf/Bv7z/xMLA/8fFw//HxsX/x8bF/8bGxf/ExMP/wsHB/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6ioqP+sq6v/r66u/7Ky - sf+1tLP/uLe1/7e5tP+tua7/rbmu/7S6sv++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/mJeW/42M - jCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxcLB/8C9 - u//Bvrz/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Jx8X/0c/O/9fW1f/c29v/3t3d/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/kqea/3moi/9mqX//U6ly/0epav84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf9CqWj/U6xz/2ivgf+Es5P/orin/769uf/Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8G+vP+ysK7/kpGQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDwb7/xcLA/8nHxf/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/zs3K/97c2//q6un/8/Pz//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Glov99pYv/X6Z5/z6nZf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Pqll/2mw - gf+Wt5//vb65/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Fw8D/yMbD/8G/ - vP+WlZQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPA - vvPGw8D/1dPS/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8XCv//T0dD/5OPi//f3 - 9v/9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/5Cm - mP9hp3r/Padk/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9Cqmj/d7OL/7a+tf/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/9HPzv/Jx8T/w8C+/8C9uxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMK/u8TCv//Z2Nb/zszK/8TCv//Ewr//xMK//8TC - v//Ewr//xMK//83Lyf/f3tz/8PDw//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/4yol/9UqHL/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/PKhk/3Gyh/+3wLb/xMK//8TCv//Ewr//xMK//8TCv//Lycb/29rY/8bE - wP/Ewr/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADIxcNbx8TB/9LPzf/c29r/zsvJ/8fEwf/HxMH/x8TB/9LPzv/j4+L/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/5irn/9jqXz/Yqh8/3in - if+Fp5L/iqaU/4mllP9/pY3/aqaA/0ynbf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/z6p - Zf+BtpL/xcO//8fEwf/HxMH/ysfF/9va2P/V09H/x8TB/8bDwH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJxcK/ysfE/9rY1//d3Nr/0c7M/9DN - zP/g4N//6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+lrqj/lque/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/5Sn - m/9dqHj/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9OrHD/p7ur/87Myf/c29n/3NrZ/8vI - xf/JxsPfvMK7DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/NyxjKyMTbzcvI/9zb2v/f3t7/4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR - 0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mp - qf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+IqZT/Pahk/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf85qGL/fbKQ/9LR0P/Pzcr/ysjE87fCtysAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHQzhzQzszf2tra/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5 - uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wl - pf+np6f/qamp/6qqqv+aq6D/Q6ho/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/VqRy/66y - re+lv6w3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA1dXVU9nZ2fvc3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU - 1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qq - qv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+hrab/Sqlt/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/RaNn/3mWhG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS0kfV1dX72dnZ/9zc - 3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b2 - 9v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8 - vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6Sk - pP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+lr6n/Uapx/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/P6Rk/26Se2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADS0tEQ0dHR69XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly - 8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY - 2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ys - rP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7Cw - sP+ssq7/Vat0/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OqZi+z6pZjsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDPz3vR0dH/1dXV/9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7 - +//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/ - v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6Sk - pP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+vtLH/Vax2/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj8zupZi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADerZhQ3q2YUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O09HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v - 7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc - 3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66u - rv+wsLD/srKy/7W1tf+xtrP/Vq14/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl5zmq - aCcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADesaBQ4qmWnOKpl/ziq - Zfs3q2dDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV - 1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+ - /v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+zuLX/Vq97/zis - aP9CsnD/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo/zis - aP84rGj/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo3zisaRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA3rGo7OKxo4zisaP84rGj/OKxo/zisaJsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs - 7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+1urf/TK93/z2xb/9NuX7/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61qxzeuawgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3rmwEN61rezetavs3rWr/N61q/zet - av83rWr/N61qnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR - 0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+wvLX/SrB4/0CzdP9VwIf/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65snwAAAAAAAAAAAAAAAAAA - AAAAAAAAN69uGDeubLs3rmz/N65s/zeubP83rmz/N65s/zeubP83rmyDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np - 6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf+rvbP/RLF2/0W3ev9Ywov/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69vZwAAAAAAAAAAAAAAADewb0c3r27nN69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbmMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP+hvq//ObFx/029g/9Wwov/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD3N7FxLzex - cQQ3sXGHN7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7BwQwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm - 5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66trf+srKv/qqqq/6mpqP+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv+PvaX/N7Jy/1jE - j/9Pv4f/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snLTN7Jywzeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv82sXIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9fX1//Ozs3/xsbF/8HA - vv+8urn/t7Wz/7SysP+ysK3/r62q/6+sqv+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+sqqf/rKqn/6ypp/+sqqf/rKqo/6yqqf+trKr/rq2s/7Cvr/+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP90u5f/OLN1/2TMm/9Eun//N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zaycwgAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+Tk - 4//W1dP/yMbE/768uv+2s7D/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKr/sa+t/7OysP+3trT/u7q6/8DAwP/CwsL/xMTE/8bI - x/9ZuYn/Pbd7/2nPof87tnn/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHbrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//z8/P/t7ez/19bV/8XDwP+0sa7/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK6r/7SysP+6uLf/wsHA/7nGwP9Atn3/Sr+I/2LMnP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eMsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9PT0/+De3f/Lycf/trOw/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sq+s/4u0nv82tnn/Xsub/0vBi/82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5qwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/u7u7/3t3c/8fF - w/+0sa7/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/1+0i/86uX//atOn/zq5 - f/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3uPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc - 3P/f39//4+Pj/+bm5v/l5eX/0c/O/7m3tP+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/qbGq/z64gP9Mw4//XMyc/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4fW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//g4N//zMvJ/7azsP+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//gbWb/za5 - f/9l0ab/Qb+I/za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrh+UwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ - 2f/c3Nz/0M/O/7m2tP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+0s6//TLmI/0TBjP9j0KX/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uYA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/1tbW/8LAvv+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+PtqL/NruC/2PRpv9Gw4//NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za6 - gRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9LS - 0f+9u7j/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/9Ouoz/RsSQ/2bUqf82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz87/vbu5/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/4a5of82vYX/a9av/0TDkP82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hdcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8G/ - vf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+6uLX/uri1/7q3tf+4trT/uLaz/7e1s/+3tbL/t7Sy/7a0sv+2tLH/trOx/7i1 - s/+4tbP/uLWz/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/tri0/zy9iP9Rypv/SMaU/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2GuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJyMf/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vbq4/8G/vP/EwsD/xcPC/8bEw//FxMP/w8LC/8HBwf+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6ampv+qqan/rays/7Cv - rv+ysbD/tbSy/7i2tP+6t7X/u7m2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7q5tf95u5//OL6I/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/zi/ - if82voebAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPB - v/+9urj/vbu4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/w8G//8zLyf/U09H/2NfW/9vb2//c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7q5 - uP+8urn/vbu6/727uf+9urj/vbq4/726uP+9urj/vbq4/726uP+wu7P/Wb2V/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if9AxJH/OMCL/za/iX8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwL68/8G/vP/GxMH/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/8fFw//Y19X/5uXk//Dw8P/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwf/CwcD/wsG//8C+ - vP++vLn/l72r/z+/jf81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/0fI - l/81v4r/N8CKXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC/vbrvwr+9/9LRz/+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/zMvI/+Df - 3v/z8vL//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6en - p/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/yMrJ/3vEqP81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/Tcud/zXAi/83wIxAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC+u6/Avrv/19bV/8rHxf/Avrv/wL67/8C+ - u//Avrv/wL67/8C+u//GxML/29rY/+/u7v/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6en - p/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/7XH - wP9Vw5n/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP9SzqL/NcGM/zjCjiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAxMG/R8K/vP/OzMr/2djX/8jFw//Cv7z/wr+8/8K/vP/Mycj/4N/e/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR - 0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mp - qf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1 - tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv+Xw7P/PsGQ/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/1bQpf81wY3/O8OQBAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw8C9q8TBvv/Y19X/2tjX/8vJ - xv/KyMX/3dzc/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5 - uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wl - pf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf++wL//cMKk/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv9Ax5b/Us+j/zXCjuMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADLyccMxMG/w8jFw//a2df/3t3d/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU - 1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qq - qv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Ky - sv+1tbX/t7e3/7m5uf+7u7v/vb29/2TBn/81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/0zMn/9Ky57/NcKOxwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzMsMysjGy9nZ - 2f/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b2 - 9v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8 - vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6Sk - pP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+uvrj/NcKP/zzF - lP9DyZn/O8WT/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//WdOq/0PJmf81wo+nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANXU1FPZ2dnz3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly - 8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY - 2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ys - rP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7Cw - sP+ysrL/tbW1/7e3t/+5ubn/u7u7/7m9vP9Mwpj/NcOQ/znFk/9DyZr/S82g/03Oof9Pz6P/UNCj/1LQ - pf9LzaD/Q8ma/zvGlP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP9l2bP/O8aU/zjEkocAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0tI71dXV+9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7 - +//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/ - v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6Sk - pP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/77A - v/+YwrP/eMOo/2XFov9OxJr/OcOR/zXDkP81w5D/NcOQ/z/Il/9Iy57/UtCl/1nUqv9c1az/Xtau/1vU - rP9U0ab/TM2g/0TKm/88xpX/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/OcWT/3Deu/81w5D/O8WUawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA0dHRENHR0ePV1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v - 7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc - 3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66u - rv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/uc3G/6PO - vv+LyrP/cMWm/1fCnP9BwpT/NcOQ/zXDkP81w5D/OcWT/0PJmv9NzqH/V9Kp/2HXsP9p2rb/a9u3/2TY - sv9c1az/VNGm/0zNoP9Eypv/PMaV/zXDkP81w5D/NcOQ/zfEkf9g1q//XdWt/zXDkP87xZQvAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPz8930dHR/9XV - 1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+ - /v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729 - vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+qs7D/kq+l/3uv - nP9lsZX/VLSR/0S6j/83wY//NcOQ/zXDkP81w5D/P8iX/0jLnv9S0KX/W9Ss/2bZtP9w3bv/dN++/2zc - uP9l2bP/cN27/2TYsv84xJL/NcOQswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozs/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs - 7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/P - z//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/91iYL/ZY9//02q - iXM1w5CXNcOQvzXDkOc1w5D/NcOQ/zXDkP85xZP/Q8ma/0zNoP9CyZn/NcOQ/zXDkMc/x5cUAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O+9HR - 0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qq - qv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/aY+CIAAAAAAAAAAAAAAAAELFlxA9xpU0PcaVWznE - koc1w5CrNcOQvzXDkK88xpVbQMiYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np - 6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83N - zf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5 - ef9uioAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Ky - sv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/3CDfCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm - 5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rK - yv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CA - gP95eXn/d317IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6en - p/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5 - uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef96enogAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6en - p/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jI - yP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eH - h/+AgID/eXl5/3p6eiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/0dHR/8nI - x//CwcD/vby6/7i3tf+1s7H/srCu/7CurP+urKn/rqup/62qqP+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/6ypp/+sqab/rKmm/6uopv+rqab/qqmn/6upqP+rqqn/rKuq/66trf+wsK//srKy/7W1 - tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DA - wP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/enp6IAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/o6Oj/2NfW/8zKyf/Avrz/t7Wz/7Ctqv+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6n/sK2r/7Gvrf+0s7H/t7a2/7y7u//AwMD/wsLC/8TE - xP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46O - jv+Hh4f/gICA/3l5ef96enogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3/8vLx/93c2v/Jx8X/ubaz/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7KvrP+2tLL/vLq5/8PDwv/Kysr/zc3N/8/Pz//S0tL/z8/P/8fH - x//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/3p6eiAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc - 3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//X19f/k5OL/z83L/7u4tf+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7Sxr/+8urj/xcTD/9DQ0P/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WV - lf+Ojo7/h4eH/4CAgP95eXn/enp6IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v/+Pi - 4f/My8n/t7Wy/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Sy - r/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Sy - r/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Sy - r/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tbOw/7y7 - uf/BwL//v7+//7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef96enogAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/5+fn/9XU0v+/vbv/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+3tLL/t7a1/7Kysf+qqqr/o6Oj/5yc - nP+VlZX/jo6O/4eHh/+AgID/eXl5/3p6eiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4eHh/9DPzv+7uLb/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7Kwr/+kpKT/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/e3t7IAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV - 1f/Z2dn/3Nzc/9TT0v+/vbv/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7m2 - tP+op6b/lZWV/46Ojv+Hh4f/gICA/3l5ef98fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9fX1//IxsX/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+xr63/kpKS/4eHh/+AgID/eXl5/39+ - fiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR - 0f/T0tL/w8G//768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf+5trT/j4+O/4CAgP95eXn/goGBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0NDQ/8PBv//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u/+7uLb/iIiI/3l5 - ef+GhYUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/HxcP/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf+1s7H/enp6/4qJiSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMvK/8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v/+WlZT/j46OIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADJx8b/ycbD/8zJxv/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/IxML/zcrI/7a0sf+VlJMgAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrHxf/Oy8n/29rY/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/9XT - 0f/T0c//yMTC/5mYlyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAy8jG683KyP/u7u3/zcvI/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/Mycb/6unp/9LQzv/LyMb/wr++EAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysijzcrI/+np6P/m5eT/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/+De - 3f/u7u7/zsvJ/83KyM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANHPzTPPzMr/2dfV//Ly8v/j4uH/0M3L/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/e3dz/8vLy/97c2//PzMr/z83LXwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLQzo/Rzsz/5OPi//Ly - 8v/o6Of/1NHP/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Sz83/5eTj//Ly - 8v/p6Oj/0s/N/9HOzLcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA19XTBNPQzqvU0c//6Ofm//Ly8v/v7+//3dva/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/2tjW/+3s7P/y8vL/6+rq/9XS0P/T0M7X19XUDAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2dfWBNXS - 0J/W09H/5eTj//Ly8v/y8vL/6urp/9za2P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/2dfV/+jn5v/y8vL/8vLy/+jn - 5//W1NL/1dLQu9nX1gwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjW1GfX1NLz393c/+7u7v/y8vL/8vLy/+vq - 6v/f3dz/19XT/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/3dvZ/+no6P/y8vL/8vLy//Dw8P/h397/19TS+9jW1H/b2dgEAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAN3b2hzY1tSn2tfV/+bk4//w8PD/8vLy//Ly8v/v7+7/5eTj/93a2P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/c2df/5OPi/+3t7P/y8vL/8vLy//Hx8f/n5uX/29jW/9nW - 1L/c2tgrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADe3Nov29jWr93a - 2P/m5eT/8O/v//Ly8v/y8vL/8vLy/+7u7f/m5eT/4N7c/9vZ1//b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9/d3P/m5OP/7Ozr//Ly - 8v/y8vL/8vLy//Dw8P/o5+b/3tvZ/9vY1sfe3NpLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4N7dK97c2pPd29nv5OLh/+zr6//x8fH/8vLy//Ly - 8v/y8vL/8fHw/+vr6v/m5eT/4uDe/97b2f/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/97b - 2f/h393/5uTj/+vq6f/w8PD/8vLy//Ly8v/y8vL/8vLy/+3s7P/l5OL/3tvZ993a2Kfg3t03AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAOTi4Qji4N9b39zar+De3Pfn5eT/7Ozr//Hx8f/y8vL/8vLy//Ly8v/y8vL/8vLy/+7u - 7v/r6+r/6Ofm/+Xj4v/i4N//4N3b/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/4N3b/+Lg3v/l4+H/5+bl/+vq6f/u7u3/8fHx//Ly8v/y8vL/8vLy//Ly8v/x8fH/7ezr/+fm - 5f/h393739zau+Lg32Pk4uEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5eTjDOTi - 4U/g3tyX4d/d3+Xj4v/p6Of/7e3s//Hx8f/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8PDw/+7u - 7v/t7Ov/6+rq/+no5//o5+b/5+Xk/+fl5P/l4+L/5ePi/+Xj4v/l4+L/5ePi/+Xj4v/l4+L/5ePi/+Xj - 4v/l4+L/5uXk/+fl5P/o5+b/6ejn/+vq6v/s6+v/7u7t//Dw8P/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8fHx/+7u7f/q6ej/5eTi/+Hf3efg3tyj5OLhW+Xk4xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5eTiIOXk4lfk4uCP4uDey+Xj - 4vfo5+X/6+rp/+3t7P/w7+//8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8PDw/+7t7P/r6un/6efm/+Xk4vvi4N7P4uDem+Xk4mPl5OIoAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOfl5Czn5eRT5+Xke+Xi4KPl4uDH5uTj5+jm - 5f/q6Of/6+rp/+zr6//t7Oz/7+7u/+/v7v/w8PD/8PDw//Hw8P/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/x8fH/8PDw//Dw8P/v7+7/7+7u/+3t7P/t7Ov/6+rp/+ro5//o5+X/5+Xj6+Xj4cvl4uCn5uPig+fl - 5Ffn5eQw6OfmBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ujnBOjn5SDo5+U86OflT+jm5V/o5uV76Oblf+bk - 4pPm5OKf5uTin+bk4p/m5OK35uTiv+bk4r/m5OK75uTin+bk4p/m5OKf5uTim+jm5X/o5uV/6OblX+jn - 5VPo5+VA6OflIOno5wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////AAAAAAAAAAAP/////// - /+AAAAAAAAAAAAf///////+AAAAAAAAAAAAA///////8AAAAAAAAAAAAAD//////+AAAAAAAAAAAAAAP - /////+AAAAAAAAAAAAAAB//////AAAAAAAAAAAAAAAH/////AAAAAAAAAAAAAAAA/////gAAAAAAAAAA - AAAAAH////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////AAAAAA - AAAAAAAAAAAP///wAAAAAAAAAAAAAAAAB///4AAAAAAAAAAAAAAAAAf//+AAAAAAAAAAAAAAAAAH///A - AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA - A///wAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAA - AAAAAAH//8AAAAAAAAAAAAAAAAAB///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA - AAAAAAAAAAAD///gAAAAAAAAAAAAAAAAA///4AAAAAAAAAAAAAAAAAf//+AAAAAAAAAAAAAAAAAH///w - AAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA - P////gAAAAAAAAAAAAAAAH////8AAAAAAAAAAAAAAAD/////gAAAAAAAAAAAAAAB/////8AAAAAAAAAA - AAAAA//////wAAAAAAAAAAAAAA///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAA - AAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB////// - /AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAD///////AAAAAAAAAAAAAA/ - //////4AAAAAAAAAAAAAP//////+AAAAAAAAAAAAAH///////wAAAAAAAAAAAAD///////8AAAAAAAAA - AAAA///////+AAAAAAAAAAAAAH///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAH/+f///8AAAA - AAAAAAAAAA/+D////AAAAAAAAAAAAAAH/A////wAAAAAAAAAAAAAA/AP///8AAAAAAAAAAAAAAPgD/// - /AAAAAAAAAAAAAABwA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAA - AA////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAA - AAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAA - AAAAAAAAAAAAH////AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAA////8AAAAAAAAAAAAAAAAP/// - /AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAA////8AAAAAAAAAAAAAAAAP////AAAAAAAAAAAAAAA - AD////wAAAAAAAAAAAAAAAA////8AAAAAAAAAAAAAAAAP////gAAAAAAAAAAAAAAAH////4AAAAAAAAA - AAAAAAB/////AAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAH////4AAAAAAAAAAAAAAAB////8AAAA - AAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAABwB//// - /AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf - //////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAA - AAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAA - AAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB////// - /AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf - //////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAA///////wAAAAAAAAA - AAAAP//////+AAAAAAAAAAAAAH///////gAAAAAAAAAAAAB///////8AAAAAAAAAAAAA////////wAAA - AAAAAAAAAf///////+AAAAAAAAAAAAf////////4AAAAAAAAAAAf/////////gAAAAAAAAAAf/////// - //+AAAAAAAAAAf//////////8AAAAAAAAA////////////8AAAAAAAD/////////////+AAAAAAP//// - ///////////gAAAH//////////////////////////////////////////////////8oAAAAYAAAAMAA - AAABACAAAAAAAICUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAANTU1ATU1NQE1NTUCNjY2AjY2NgM2NjYDNzc3BDc3NwU4ODcFODg4Bjg4OAc5OTgIOTk4CTk5 - OQk6OjoKOjo5Czs7Ogs7OzoLOjo6DDs7Oww7OzsNOjo6DTs7Ow08PDsNOzs6DTw8Ow07OzsNOjo6DTs7 - Ow07OzsMOjo5DDs7Ogs6OjkLOjo6Cjk5OQk5OTgJOTk5CDk5OAc4ODgGODg4BTg4NwU3NzYENzc3Azc3 - NgM2NjUCNjY2AjY2NQE1NTUBNTU1AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAANDQ0ATQ0NAE0NDQCNTU1AzU1NQM1NTUENjY2BTY2Ngc3NzYINzc3CTc3 - Nwo4ODgMODg4DTk5OQ45OTkPOTk4ETo6ORI6OjoTOjo5FDs7OhU7OzoWOjo6Fjs7Oxc7OzsXOzs6GDw8 - Oxg8PDsYOzs6GDw8Oxg7OzsYOjo6Fzs7Oxc7OzsWOjo6Fjs7OhU6OjkUOjo6Ezo6ORI5OTgROTk5Dzk5 - OQ44ODgNODg4DDg4Nwo3NzcJNzc3CDc3Ngc2NjYGNjY2BDU1NQM1NTQDNTU1AjQ0NAE0NDQBNDQ0AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwEzMzMCMzMzAzQ0MwQ0NDQFNTU0BjU1 - NQg1NTUJNjY2CzY2Ng03NzYPNzc3ETc3NxM4ODcVODg4Fzg4OBk5OTgaOTk4HDk5OR45OTkfOjo5IDo6 - OSI6OjojOjo6Izo6OiQ6OjolOzs6JTs7OiY7OzomOzs6Jjs7OiY7OzomOzs6JTo6OiQ6OjokOjo6Izo6 - OSI6OjkgOTk5Hzk5OR45OTkcOTk4Gjg4OBk4ODgXODg3FTc3NxM3NzcRNzc2DzY2Ng02NjYLNTU1CTU1 - NQg1NTUGNDQ0BTQ0NAQzMzMDMzMzAjMzMwEzMzIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMzMzAjMz - MwMzMzMFNDQ0BjQ0NAg0NDQKNTU1DTY2NRA1NTUSNzc2FTc3Nxg3NzYbODg3Hjg4OCE4ODgjODg4Jjk5 - OSg5OTkqOTk5LTo6OS86OjoxOjo5Mjs7OjQ7Ozo1Ojo6Njs7Ozc7Ozs4Ozs6OTw8Ozk8PDs5Ozs6OTw8 - Ozk8PDs5Ozs6ODs7Ozg7Ozs2Ojo6NTs7OjQ6OjkzOjo6MTo6Oi85OTktOTk5Kzk5OSg4ODgmODg4Izg4 - OCE3NzceNzc3Gzc3Nxg2NjYVNjY2EzY2NhA1NTUNNTU1CjQ0NAk0NDMHNDQ0BTMzMwMyMjICMzMzATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgIyMjIDMzMzBTMzMwczMzMJNDQ0DDQ0NA80NDQTNTU1FjY2NRo1NTUeNzc2Ijc3 - NyU3NzYpODg3LTg4ODA4ODg0ODg4Nzk5OTo5OTk8OTk5Pzo6OkE6OjpDOjo6RTs7Okc7OztIOzs6STs7 - O0s8PDtLOzs6TDw8O0w8PDtNOzs6TDw8O0w8PDtMOzs6Szs7O0s7OztKOjo6SDs7Okc6OjpFOjo6RDo6 - OkE5OTk/Ojo5PDk5OTo4ODg3ODg4NDg4ODE3NzctNzc3Kjc3NyY2NjYiNjY2HjY2Nho1NTUXNTU1EzU1 - NBA0NDMMNDQ0CjMzMwcyMjIFMzMyAzIyMgIxMTEBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQExMTEBMTExAzExMQUyMjIHMjIyCjMzMw0zMzMRMzMzFjQ0 - NBo0NDQfNTU1JDU1NSk2NjUuNjY2MzY2Njc3NzY8Nzc3QDg4N0Q4ODhIODg4Szk5OE45OTlROTk5VDo6 - OVY6OjlYOjo6Wjs7Olw7OzpdOzs6Xjs7O2A7OztgOzs7YTs7O2E8PDtiPDw7Yjs7O2I7OzthOzs7YDs7 - O2A7OzpfOzs6XTs7Olw6OjpaOjo6WDo6OVY5OTlUOTk5UTk5OE44ODhMODg4SDg4N0Q3NzdANzc3PDc3 - Njc2NjYzNjY1LjU1NSk1NTUlNDQ0HzQ0NBs0NDMWMzMzEjMzMw4yMjIKMjIyBzIyMgUxMTEDMTExATEx - MQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExATIyMgIxMTEDMjIyBjIy - MgkyMjIMMzMzETMzMxYzMzMcNDQ0IjQ0NCg0NDQuNTU1NTY2Njs2NjVANzc2Rjc3N0s3NzdQODg4VDg4 - OFg5OThcOTk4Xzk5OWI6OjllOjo5aDo6Omo7OzpsOzs6bjs7O288PDtxOzs7cjw8PHM8PDxzPDw7dD09 - PHQ9PTx0PDw7dD09PHQ8PDx0PDw7dDw8PHM8PDtyOzs7cTs7O3A7OzpuOzs6bDs7Omo6OjloOjo5Zjo6 - OWM5OThgOTk4XDg4OFk3NzdVODg3UDc3N0w2NjZHNjY2QTY2Njs1NTU2NTU1LzU1NCk0NDQjNDQ0HTMz - MxcyMjISMzMzDTIyMgkxMTEGMjIyBDIyMgIxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMTExAjIyMgQxMTEHMjIyCjIyMg8yMjIVMzMzHDMzMyMzMzMqNDQ0MjU1NDo0NDRBNTU1SDY2 - Nk82NjVUNzc3Wjc3N183NzdkODg4aDg4OGw5OThvOTk4czo6OXU6Ojp4Ojo5ejs7Onw7Ozp+Ozs6fzw8 - O4A8PDuBPDw7gjw8PIM9PTyEPDw8hD09PIQ9PTyEPT08hD09PIQ9PTyEPDw8hDw8PIM8PDyCPDw7gTw8 - O4A7Ozt/Ozs7fjs7Onw6Ojp6Ojo6eDo6OXU5OThzOTk5cDg4OG04ODdpODg3ZDc3N2A2NjZbNjY2VTY2 - Nk81NTVJNTU1QjU1NTo0NDQzNDQ0KzMzMyQyMjIdMzMzFjIyMhAxMTELMjIyBzIyMgQxMTECMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQExMTECMTExBDExMQcxMTELMTExETExMRgyMjIfMjIyKTMz - MzEzMzM6NDQ0QzQ0NEw0NDRUNTU1WzY2NWI2NjZnNjY2bTc3N3E3Nzd2ODg3eTg4OH05OTh/OTk5gjk5 - OYU6OjmGOjo6iDs7Ooo7OzqLOzs7jDw8O41DQ0KRTk5NmFhYWKJZWVmkX19fq2FhYK5gYGCuX19frl9f - Xq5eXl2tVVVVpFRUVKJLS0uZQ0NCkjw8O407OzuMOzs6izs7Ooo6OjqIOjo5hjo6OYU5OTmDOTk4gDg4 - OH04ODd6Nzc3djc3N3I2NjZtNjY2aDY2NWI1NTVcNTU0VDQ0NE00NDREMzMzPDMzMzIyMjIqMjIyITIy - MhkxMTESMTExDDExMQcxMTEEMTExAjExMQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIDMTExBjIy - MgsxMTERMjIyGTIyMiMyMjIsMzMzODMzM0MzMzNNNDQ0VzU1NWA1NTRnNjY1bjY2NnQ2NjZ5Nzc3fjc3 - N4I3NzeFODg4iDk5OIs5OTmNTk5NmGBgYKd4eHi2jo6Ox52dndawsLDku7u78MDAwPrAwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qWlpfqgoKDxl5eX5YiI - iNh8fHzJbW1suVhYV6hLS0uaOzs6jjk5OYs4ODiIODg4hjg4N4I3NzZ+Nzc2ejY2NnU1NTVvNTU1aDU1 - NWE0NDRYNDQ0TjMzM0QyMjI5MzMzLjIyMiQxMTEbMjIyEjIyMgwxMTEHMjIyBDIyMgIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgIyMjIFMTExCjIyMhAxMTEZMjIyIzIyMi8yMjI7MzMzSTMzM1QzMzNfNDQ0aTU1 - NXE1NTV4NjY2fjY2NoM2NjaHNzc3i0FBQJJXV1efh4eGuq6urtLNzc3p3Nzc9t/f3/zc3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7e3t/2zs7P3qqqq7JSUlNZ0dHS8UVFQoT8/ - P5M3NzeLNzc3iDY2NoQ1NTV/NTU1eTU1NXI0NDRqNDQ0YDMzM1UzMzJKMzMzPTIyMjExMTElMjIyGjIy - MhIxMTELMjIyBjIyMgMxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgQyMjIIMTExDjIyMhYxMTEhMjIyLjIy - MjwyMjJKMzMzWDMzM2QzMzNvNDQ0eDU1NYA1NTWGNjY2izk5OI9nZ2eoq6uqztzc3Or7+/v8+vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+x8fH/ba2tuyWlpbSYmJirDo6OZA1NTWLNTU1hjU1NYE0NDR5NDQ0cDQ0 - M2YzMzNaMzMzTDIyMj4xMTEwMjIyIjIyMhgxMTEPMjIyCDIyMgQxMTECMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExAjEx - MQUxMTELMTExEzExMR0xMTEqMTExOjIyMkoyMjJZMzMyaDMzM3QzMzN+NDQ0hjU1NYxQUFCemZmZyN7e - 3vD29vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/sDA - wPSFhYXNTU1NojU1NY00NDSHNDQzfzMzM3UzMzNpMjIyWzIyMkwxMTE8MTExLDExMR8xMTEUMTExCzEx - MQYxMTEDMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAxMTEBMjIyAzIyMgcyMjINMTExFzIyMiMxMTEyMjIyQzIyMlUyMjJkMzMzdDQ0 - M380NDOIU1NTn6WlpdLh4eH37+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HB - wf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+srKy+YaGhtdMTEyjNDQ0ijQ0NIAzMzN1MzMzZzIy - MlcxMTFGMjIyNDIyMiUxMTEYMjIyDjIyMgcxMTEDMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEBMTExBDExMQgxMTEQMTExGjEx - MSkxMTE5MTExTDIyMl4yMjJuMzMzfjk5OYqJiYnC2tra9+fn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8 - /P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4 - uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+v - r/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6u - rv6hoaH6bm5uyjk5OY4zMzN/MjIycTIyMmAxMTFPMTExOzExMSsxMTEcMTExETExMQkxMTEEMTExAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAxMTECMjIyBDIyMgkyMjIRMTExHTIyMiwxMTE+MjIyUTIyMmQyMjJ0SUlJkLOzs+De3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zM - zP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/4ODg+lERESYMzMzdzIyMmYxMTFUMjIyQDIy - Mi8xMTEfMjIyEzIyMgoxMTEFMjIyAisrKwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZGQExMTECMjIyBTIyMgoyMjISMTExHjIyMi4xMTFAMjIyUzIy - MmZCQkKAwMDA6tra2v7e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KS - kv+BgYDwQEBAizIyMmkxMTFXMjIyQTIyMjAxMTEgMjIyFDIyMgoxMTEFMjIyAisrKwEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTECMTExBTEx - MQkxMTESMTExHTExMS0xMTE+MTExUjY2NmihoaHO1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz - 8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/svL - y/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+cHBw2zY2NmwxMTFVMTExQTExMS8xMTEfMTExEzEx - MQoxMTEFMTExAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAxMTEBMjIyBDIyMggyMjIQMTExGzIyMioxMTE7MjIyTlpaWoDPz8/91dXV/9ra - 2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HB - wf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/0tL - S5AxMTFRMjIyPTIyMi0xMTEdMjIyEjIyMgoxMTEEMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEBMjIyAzIyMgcyMjIOMTExGDIy - MiUxMTE1MjIyRnx8e6DQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66u - rv+kpKT+m5ub/5KSkv+IiIj+fn5+/15eXbQxMTFJMjIyNzIyMicxMTEaMjIyDzIyMggxMTEEMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAxMTEBMTExAzExMQYxMTEMMTExFDExMR8xMTEtMTExPYCAgKTQ0ND+1dXV/tra2v7e3t7+4+Pj/ufn - 5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS - 0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSk - pP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svL - y/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+fn5+/mJiYrUxMTFAMTExLzEx - MSExMTEVMTExDTExMQYxMTEDMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjIyMgQyMjIJMTExDzIyMhgxMTEkMjIyMoCA - gJ7Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KS - kv+IiIj+fn5+/2NjY7AxMTE0MjIyJTIyMhoxMTEQMjIyCTIyMgUxMTECMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgMyMjIGMTExCzIyMhMxMTEcMjIyJ4CAgJfQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qio - qP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vL - y//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/2RkZKsxMTEpMjIyHTIyMhQxMTEMMjIyBzIy - MgMxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQIxMTEEMTExBzExMQ0xMTEUMTExHYCAgJHQ0ND+1dXV/tra - 2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh - 4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+sbGw/q+urv6srKz+qqqp/qio - qP6npqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHB - wf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+fn5+/mZm - ZqYxMTEeMTExFDExMQ0xMTEIMTExBDExMQIxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjICMTExBDIy - MggxMTENMjIyFICAgIzQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/t3d3f/T09L/ysnI/sHAv/+7ubf/tbOx/rKvrf+vrKr/rquo/q2q - p/+tqqf/rKmm/q2qp/+tqqf/rKmm/q2qp/+tqqf/rKmm/q2qp/+sqab/rKmm/qypp/+sqqj+rKup/66t - q/+wr67+s7Oy/7e3tv+6urr+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66u - rv+kpKT+m5ub/5KSkv+IiIj+fn5+/2hoaKExMTEVMjIyDjIyMgkxMTEFMjIyAjIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMTExAjMzMwU/Pz8IMjIyDICAgIfQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/5+fn+7Ovq/9jW1f/GxcP/uLaz/rKwrf+vrKn/rquo/q6r - qP+uq6j/rquo/q6rqP+uq6j/rquo/q6rqP+uq6j/rquo/q6rqP+uq6j/rquo/q6rqP+uq6j/rquo/q6r - qP+uq6j/rquo/q6rqP+uq6j+rquo/66rqP+uq6j+rquo/6+sqf+wrav+tLKw/7m4tv+/v77+x8bG/8vL - y//Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/2lpaZ4xMTENODg4CDs7 - OwUxMTEDMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExATU1NQJlZWUEVVVVB4CA - gITQ0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/7y8vH+4N/d/svJx/67uLX+sK2q/rCt - qv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCt - qv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCt - qv6wrar+sK2q/rCtqv6wrar+s7Ct/rm3tf7DwcD+z87O/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGR - kf6IiIj+fn5+/mtra5tGRkYIVVVVBEJCQgMxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADc3NwF4eHgCm5ubBLq6uoLQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//q6un+3dzc/8jG - xP+1sq/+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKv - rP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKv - rP+yr6z+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z+s7Ct/7m3 - tP+7urn+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3R0dJlra2sEX19fAkpKSgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVlZUBsrKyAcTExIHQ0ND+1dXV/9ra - 2v/e3t7+4eHh/9XU0v++vLr+tbKv/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7/tLGu/rSx - rv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSx - rv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sx - rv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLKv/7Cvrf+lpaX+m5ub/5KSkv+IiIj+fn5+/3Z2 - dph0dHQCa2trAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMvLy4DQ0ND+1dXV/tra2v7V1NT+v7y7/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf6zsK/+o6Kh/pKSkv6IiIj+fn5+/nd3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3NzX/Q0ND+1NTU/8jGxf+5trP+uLWy/7i1 - sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1 - sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1 - sv+4tbL/uLWy/ri1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1 - sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/6mnpf+Lior+fn5+/3h4eJcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzM - y3/Q0ND+w8LA/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4 - tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4 - tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4 - tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q3 - tf+sqqf+gYGB/3p5eZcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvKyn/HxsT+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726 - t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf/vbq3/r26t/+9urf/vbq3/r26t/+9urf/vbq3/r26 - t/+9urf/vLq3/ry5t/+7ubb/uri1/rq3tf+5t7X/uba0/ri2tP+4trP/uLWz/rq3tf+6uLX/vbq3/r26 - t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726 - t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+oZ+e/3t7e5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnHxn+/vbv+vry5/r68 - uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+wb68/sTC - wP7HxcP+ycjG/srJyP7JyMf+xsbG/sPDw/7AwL/+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qio - qP6mpqb+paWl/qSkpP6kpKT+paWl/qqpqf6prar+oLCl/puyov6XtJ/+kLWa/pG1m/6ctqL+o7en/q+5 - r/69u7j+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vbq4/omI - h5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMbDwX/Cv7z+xMG//8G+u//Avrv+wb67/8G+u//Avrv+wb67/8G+u//Avrv+wb67/8K/ - vf/HxcL+09HP/9zb2v/j4uH/5OPj/uDg4P/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/p+kof+OpZb/cKaE/laodP9EqGn+Pqhk/zmo - Yv83p2D+OKhh/zioYf83p2D+O6hj/0GpZ/9Mq27+aq+C/5C2m/+yu7L+wL67/8G+u//Avrv+wb67/8G+ - u//Avrv+wb67/8G+u//Cv7z+xMG//56dm5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXCwHjFwr/+z83L/8PAvf/DwL3+w8C9/8PA - vf/DwL3+w8C9/8PAvv/Mysj+3t3b//Dv7v/7+/v++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+Zpp7/bKaB/kqn - bP84qGH/N6dg/jioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf9BqWf+Z7CA/6G6p//DwL3+w8C9/8PAvf/DwL3+w8C9/8PAvf/Mysj+x8XC/7q4tpUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbE - wUHFwr/92NbU/srIxf7Fwr/+xcK//sXCv/7IxsT+2NfV/urq6v729vb++fn5/vz8/P7+/v7++fn5/vPz - 8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+v - r/6srKz+lamc/mOofP5Ep2n+Radp/kOnaP46p2L+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jen - YP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jioYf5Zrnf+o7yo/sPCv/7Fwr/+xcK//sjG - w/7Y19X+xcPA/sTBv10AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrIxQnIxcLC0M7M/9rZ1//Nycf+y8jG/9nX1v/o6Oj+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q2vrv+Rq5v/hamS/peonf+dpqH/nqWh/pykn/+VpJr/eaaJ/lCn - cP85qGH+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf83p2D+PKhk/26yhf+3wLb+y8jG/9nX1v/T0c7+x8TB18HCvhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNy8kpysjE6tfV - 0//d3Nv+4eHg/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qSopv99qY3+O6hj/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf9HqWv+or+r/9bU0v/LyMX4t8K3PAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA0tDPR9bV1fje3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8 - /P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4 - uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+kKua/kSo - aP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jen - YP43p2D+Oadh/nKohfuetaRiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT09IR1dXVx9ra2v7e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/5etn/9HqWv+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zinYf9VnW/Vb6eDHAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLR - 0QPR0dGg1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+hsKb+SKls/zio - Yf83p2H+OKhh/zioYf83p2H+OKhh/zioYf83p2H+OKhh/zioYf83p2H+OKhh/zioYf83p2H+OKhh/zio - Yf83p2H+RKJnwEurbwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0THQ0ND41dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz - 8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+pLOq/kyrcf43qWP+N6lj/jepY/43qWP+N6lj/jepY/43qWP+N6lj/jep - Y/43qWP+N6lj/jepY/43qWP+N6lj/jepY/43qWP+N6lj/jipZLA7qWgJAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAN6tnITeqZVI3q2cUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0HHQ0ND+1dXV/9ra - 2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/6W2rP9NrXP+OKtn/zms - Z/83q2b+OKtm/zirZv83q2b+OKtm/zirZv83q2b+OKtm/zirZv83q2b+OKtm/zirZv83q2b+OKtm/zir - Zv04q2egN6xpBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADetagQ3rGhhOKtm7TirZv43q2eaAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+puLD+RK9y/0a1d/86r23+N61q/zetav83rWr+N61q/zetav83rWr+N61q/zet - av83rWr+N61q/zetav83rWr+N61q/zetav83rWr+N61qfDeubAEAAAAAAAAAAAAAAAAAAAAAN65sETet - ap03rWr7N61q/zetav83rWq3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn - 5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS - 0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSk - pP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+pLqu/kWxdf5QvYP+OrBw/jau - bP42rmz+Nq5s/jaubP42rmz+Nq5s/jaubP42rmz+Nq5s/jaubP42rmz+Nq5s/jaubP42rmz+Nq5s+jav - bVgAAAAAAAAAAAAAAAA2r241Nq5s2DaubP42rmz+Nq5s/jaubP42rmydAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/5u8qv9Asnb+VsGK/zqycv82sG/+N7Bv/zewb/82sG/+N7Bv/zewb/82sG/+N7Bv/zew - b/82sG/+N7Bv/zewb/82sG/+N7Bv/zewb+k2sHArN7FxBjewcG82sG/wN7Bv/zewb/82sG/+N7Bv/zew - b/82r29+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vrv+srKz/qqqp/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qio - qP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf+MvKP+P7Z5/1fEjv84snP+N7Fy/zex - cv82sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXLGN7Fyqjex - cvw2sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXFiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra - 2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/t/f - 3/7V1NT+y8vK/sPCwf69u7r+t7W0/rSxr/6xr6z+r6yp/q6rqP6tqqf+raqn/q2qp/6tqqf+raqn/q2q - p/6tqqf+raqn/q2qp/6tqqf+rKqn/qyqqP6sqqj+rayq/q+trP6xsK/+tLOz/re3t/67u7v+vr6+/sHB - wf7ExMT+dLuX/ke8gv5Two3+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jaz - dP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42snRDAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/7+vr+7u7t/9va2f/JyMb/vLq3/rSxr/+xrqv/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+s - qf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn+r6yp/6+s - qf+vrKn+r6yp/7Ctqv+xr63+tbSy/7q5uP/AwL/+wMbD/1q5i/9UxJD+R72F/ze0d/82tHf+N7R3/ze0 - d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0 - d/82tHf+N7R3/ze0d/Y2s3UtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//09PT+4+Lh/8/Ny/++u7n+sq+s/7Guq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGu - q/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGu - q/+xrqv/sa6r/rGuq/+xrqv+sa6r/7Guq/+xrqv+sa6r/7Guq/+xrqv+sa6r/7Guq/+xrqv+tLKv/6K2 - qf9Atn7+Xsub/zq4ff82tnn+NrZ5/za2ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2 - ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2ees2tXgYAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7q6ur+39/e/svJx/62s7H+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP5/spj+Qb2F/lfIl/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3 - e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3 - e+I1tnoFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4eHh/9XU0//Avrv+tbKv/7Sx - rv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSx - rv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSx - rv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+ysa3+U7eJ/1TI - l/9Dv4n+Nrl+/za5fv81uH7+Nrl+/za5fv81uH7+Nrl+/za5fv81uH7+Nrl+/za5fv81uH7+Nrl+/za5 - fv81uH7+Nrl+/za5fv81uH7+Nrl+/za4fscAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/9ra - 2v/W1dT+v727/7azsP+1srD+tbKw/7WysP+1srD+tbKw/7WysP+1srD+tbKw/7WysP+1srD/tbKw/rWy - sP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD/tbKw/rWy - sP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD+tbKw/7WysP+1srD+tbKw/7WysP+1srD+tbKw/7Wy - sP+1srD+tbKw/7WysP+1srD+l7Sk/0C8hv9czZ/+NrqA/za6gP81uYD+NrqA/za6gP81uYD+NrqA/za6 - gP81uYD+NrqA/za6gP81uYD+NrqA/za6gP81uYD+NrqA/za6gP81uYD+NrqA/za5gKoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM3NzX/Q0ND+1NTU/snHxv64tbL+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0 - sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0 - sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0 - sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/mG4kv5Typr+RsOP/jW7 - gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7 - gv41u4L+NbuC/jW7gooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzLy3/Q0ND+xcPB/7m2s/+4trP+ubaz/7m2 - s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2 - s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2 - s/+5trP/uLaz/rm2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2 - s/+4trP+ubaz/5y3qf89voj+YdGm/ze9hf81vIT+NryE/za8hP81vIT+NryE/za8hP81vIT+NryE/za8 - hP81vIT+NryE/za8hP81vIT+NryE/za8hP81vIT+NryE/za8g20AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrK - yX/GxcT+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7T+uLa0/ri2 - s/63tbP+t7Wy/re0sv62tLL+uLWz/ri1s/66t7T+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/re3tP5Uu5D+V82g/jq/if41vYb+Nb2G/jW9 - hv41vYb+Nb2G/jW9hv41vYb+Nb2G/jW9hv41vYb+Nb2G/jW9hv41vYb+Nb2G/jW9hv41vYb+Nb2G/ja9 - hlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjGxn+9u7j+vLm2/7y5tv+8ubb+vLm2/7y5tv+8ubb+vLm2/7y5 - tv+8ubb+vLm2/7y5tv+8ubb+vLm2/7y5tv+8ubb/vbu4/sG/vf/EwsD/x8XD/sjGxf/Ix8X/xcXE/sLC - wv+/v7//u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/pqam/qqq - qv+uraz+sbCv/7Wzsv+3trT+uri2/7u5tv+8ubb+vLm2/7y5tv+8ubb+vLm2/7y5tv+8ubb+urm2/4q7 - pf8+vYr+Nb6H/zW+h/81vof+Nb6H/zW+h/81vof+Nb6H/zW+h/81vof+Nb6H/zW+h/81vof+Nb6H/zW+ - h/81vof+Nb6H/zW+h/83voj+OL+J/za+iC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTCwH++vLn+wL67/767 - uP+9u7j+vru4/767uP+9u7j+vru4/767uP+9u7j+vru4/768uf/Dwb7+zszK/9nX1v/g397/4+Li/uDf - 3//c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7urr+vb28/7++ - vf+/vbv+v7y6/767uP+1u7X+a72c/zi/iv80v4n+Nb+J/zW/if80v4n+Nb+J/zW/if80v4n+Nb+J/zW/ - if80v4n+Nb+J/zW/if80v4n+Nb+J/zW/if80v4n+Nb+J/zW/if9AxJL+Nb+J9zjAihsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMG/vXbBvrz+y8nI/r+8uv6/vLr+v7y6/r+8uv6/vLr+v7y6/r+8uv7GxML+2tjX/uzr - 6v75+fn++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4 - uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+v - r/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMfH/q7Fu/5Rv5T+NL+K/jS/iv40v4r+NL+K/jS/ - iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/ - iv5FyJf+NL+K4znBjREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLAvjnAvrv81dPS/8bDwf/Avrv+wL67/8C+ - u//Ewb/+09LQ/+jo5//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/DxMP+i8Wv/zzB - j/80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP80wIz+NcGM/zXB - jP80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP9Ly53+NcGMzDvDkAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbE - wgbDwL60zcvI/9fV1P/HxML+xcPA/9XT0v/n5ub+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/7bBvf9qwqL+NsGO/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zXB - jf80wY3+NcGN/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zbCjv9OzaD+NsKOtgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJx8UexMK/3dPS0P7b2tn+4N/f/ufn5/7r6+v+7+/v/vPz - 8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+s766/lPBmf40wY7+NMGO/jTBjv40wY7+NMGO/jTB - jv40wY7+NMGO/jTBjv40wY7+NMGO/jTBjv40wY7+NMGO/jTBjv40wY7+NMGO/jTBjv40wY7+NMGO/jTB - jv40wY7+NMGO/jrEkv5QzqL+N8OQmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz83MNNTT - 0vPe3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+kb+u/zbD - kP9AyJj+QMiX/0DHl/88xpT+N8OQ/zXCj/80wo/+NcKP/zXCj/80wo/+NcKP/zXCj/80wo/+NcKP/zXC - j/80wo/+NcKP/zXCj/80wo/+NcKP/zXCj/80wo/+NcKP/0HImP9OzqL+OMOReQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADS0tEM1dXVxtra2v7e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+7u7v+tL66/3HCpf9Kw5j+RMWX/z7Glf9AyJj+R8ud/0vNoP9NzqL+Ts+j/0vN - oP9Gy53+QMiY/zvGlP85xJP+NsOR/zXDkP80wo/+NcOQ/zXDkP80wo/+NcOQ/zXDkP80wo/+NcOQ/07O - ov9Gy5z+PMWVWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0APR0dGa1dXV/tra2v7e3t7+4+Pj/ufn - 5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS - 0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSk - pP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7CxMP+ucjC/q3K - v/6cy7n+hcqx/mrGpf5Swpr+PMKS/jrFlP5ByJj+Scyf/lDPpP5V0af+WdOr/l3Vrf5Z06r+UM+k/knM - nv5ByJn+OMSS/jTCj/40wo/+O8aU/mTYsv47xZT+PcaVLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR - 0S3Q0ND41dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/6Gwq/+JrJ/+cKuW/12t - kf9Nso3+QbeN/zi/jvk6xZT+RMqb/07Oov9Y06n+Ytex/2bZtP9k2LP+Zdmz/0bLnP82w5CsAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0G7Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qio - qP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vL - y//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+e4F//22EfJpKtpAtQ7yRVT7Bk3o2w5GiN8ORyjfE - keU6xZPuN8SS5jfEkZJAyJgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra - 2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh - 4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qio - qP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHB - wf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+fn5+/nR8 - eZcAAAAAAAAAAAAAAAAAAAAAAAAAAETJmgxCyZkeQsmZEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66u - rv+kpKT+m5ub/5KSkv+IiIj+fn5+/3V5eJcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zM - zP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d4d5cAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz - 8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+v - r/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4 - uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGR - kf6IiIj+fn5+/nd3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uDg4P/W1tX/zczM/sXEw/++vLv/uLe1/rSy - sP+xr63/r62q/q6rqP+tqqj/raqn/q2qp/+tqqf/raqn/q2qp/+tqqf/rKmn/qyppv+rqab/q6mn/qup - p/+sqqj+rauq/6+trP+xsK/+tLSz/7i4t/+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vL - y//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra - 2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/8/Pv+8fDw/97d3P/Ny8r/vry5/rWz - sP+yr6z/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+s - qf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn+r6yp/6+sqf+vrKn+r62q/7Cuq/+ysK7+trSz/7u6 - uf/BwcD+yMfH/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d3 - d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/719fX+5+bl/tPR - z/7Bvrz+tLGu/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+trOx/r27uf7GxcT+0dDQ/svLy/7BwcH+t7e3/q6u - rv6kpKT+m5ub/pGRkf6IiIj+fn5+/nd3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+4+Lh/8/OzP+6t7X+tLKv/7Syr/+0sq/+tLKv/7Syr/+0sq//tLKv/rSyr/+0sq//tLKv/rSy - r/+0sq//tLKv/rSyr/+0sq//tLKv/rSyr/+0sq//tLKv/rSyr/+0sq//tLKv/rSyr/+0sq//tLKv/rSy - r/+0sq//tLKv/rSyr/+0sq/+tLKv/7Syr/+0sq/+tLKv/7Syr/+0sq/+tLKv/7Syr/+0sq/+tLKv/7Sy - r/+0sq/+trSx/727uv+9vbz+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d3d5cAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0H/Q0ND+1dXV/9ra2v/e3t7+4uLi/9jX1//FwsH+uba0/7e0sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0 - sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0 - sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0 - sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0sv+3tLL+t7Wz/7Gwr/+lpaX+m5ub/5KS - kv+IiIj+fn5+/3d3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra2v7Y19f+xcPB/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf61s7H+oaGg/pGRkf6IiIj+fn5+/nh4eJcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozn/Q0ND+1dXV/83M - yv++u7n+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf/vLq3/ry6 - t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6 - t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6 - t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLm3/6impf+Kion+fn5+/3l5 - eZcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM3NzH/Q0ND+ycfG/7+9uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8 - uv+/vLr+v7y6/7+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8 - uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr+v7y6/7+8 - uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8 - uv+/vLr+v7y6/7+8uv+rqaj+gICA/3p6epcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzH/Kycj+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+oJ+d/nt7e5cAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3L - y3/Gw8H+xcLA/8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XB - v//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXB - v//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XB - v//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XB - v//Fwb/+wr+9/4iIh5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzKyX/LyMX+0M7M/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jF - wv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjF - wv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjF - wv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jF - wv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/Mycf+z8zK/6GfnpcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3LyHTMysf+4+Lh/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7f3tz+0M7M/r68 - uo4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDNyzHNysj56ejn/9va2P/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83K - yP/Nysj+zcrI/83KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3K - yP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj+zcrI/83K - yP/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83K - yP/Nysj+zcrI/9jW1f/r6+v+zsvJ/s3KyE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTS0ATRzsym2dfV/+/u7v/e3Nv+0c7M/9DN - y//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDN - y//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDN - y//Qzcv/0M3L/tDNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DN - y//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+29nY/+7u7v/c2tj+0M7MwNLQzgoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADX1NMU0tDOz+De3f7x8fH+5uXk/tbT0f7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQ - zv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQ - zv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQ - zv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tTS0P7j4uH+8fHx/uLh - 4P7T0M7o1tTSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2dfWF9bT0rbe3Nv+7+/v//Dv7//j4uH+2NXT/9XS - 0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS - 0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS - 0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS - 0P/X1dP+4eDe/+/u7v/w8PD+4d/e/9XT0cfZ19YhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3b - 2gva19Z129nX7eno5//x8fD+7+/v/+bl5P/d29n+2dbU/9jV0//Y1dP+2NXT/9jV0//Y1dP/2NXT/tjV - 0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV - 0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP+2NXT/9jV0//Y1dP+2NXT/9jV0//Y1dP+2NXT/9jV - 0//Y1dP+2NXT/9jV0//Y1tT+3NrY/+Xk4//u7u7+8fHx/+rq6f/d2tny2dfVhd3b2hAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3tzbI9zZ15Pg3dz16urp/vHx8f7x8fH+7ezr/ubl - 5P7f3dv+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY - 1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY - 1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+39zb/uXj4v7s6+v+8fHx/vHx8f7r6+r+4d/d+NzZ - 2Kne3dsvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADi4N4Y4N7cfODd3NPn5uX87u3t//Hx8f/x8fH+8PDw/+vq6v/m5eT/4uDf/uDd3P/e29n/3drY/t3a - 2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a - 2P/d2tj/3drY/t3a2P/d2tj+3drY/93a2P/d2tj+3tvZ/9/d2//i4N7+5uTj/+vq6f/v7+/+8vLy//Hx - 8f/u7u7+6Ofm/uHf3drf3NuK4uDfHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOXk4wvj4uA54uDejOPi4NPo5+bz7ezs//Dw - 7//x8fH/8fHx/vDw8P/v7+//7Ozr/urp6P/o5uX/5uTj/uTi4P/i4N7/4d/d/uHf3f/h3t3/4d7c/uHe - 3P/h3tz/4d7c/uHe3P/h3tz/4d7c/uHf3f/h393/4uDe/uTi4P/l5OL+6Obl/+ro6P/s6+v+7+7u//Dw - 8P/x8fH+8fHx//Dw8P/t7ez+6Ofm9uTi4Nji4N6V4+LgQObk4w4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAOfm5QTn5eQo5OLhX+Xj4pbl5OLP6Ofm+uzq6v7u7e3+8PDw/vHx8f7x8fH+8fHx/vHx - 8f7x8fH+8fHx/vDw8P7w7+/+7+/v/u/v7/7v7+/+7+/v/u/v7/7v7+/+8O/v/vDw8P7x8fH+8fHx/vHx - 8f7x8fH+8fHx/vHx8f7x8fH+7u7t/uzr6v7p5+b85eTi0+Tj4Z/k4uFm5uXkLejn5QYAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ujnBujm - 5S/o5uVX5uTif+fl46Ho5uW96efm0urp6ODr6unv7Ovq/e3s7P/t7ez/7u3t/u/u7v/v7u7/7u7t/u/u - 7v/u7u3/7e3s/u3t7P/s6+v/6+rp7urp6OLp5+bT6OblwOfl46Tm5OKC5+XkW+jm5TTp5+YIAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6+rpCevq6RDr6ukX6unoH+ro - 5yXp6OY36efmN+nn5j/p5+ZP6efmT+nn5kHp5+Y36ejmN+ro5ynq6egf6unoF+vq6RHr6ukJ6+rqAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA - AAAAf//////4AAAAAAAAD//////gAAAAAAAAA/////8AAAAAAAAAAP////4AAAAAAAAAAD////gAAAAA - AAAAAB////AAAAAAAAAAAA///+AAAAAAAAAAAAf//8AAAAAAAAAAAAP//4AAAAAAAAAAAAP//4AAAAAA - AAAAAAH//4AAAAAAAAAAAAD//4AAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAA - AAAAAAB//gAAAAAAAAAAAAB//wAAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAA - AAAAAAD//4AAAAAAAAAAAAD//4AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAP//+AAAAAA - AAAAAAP///AAAAAAAAAAAA////gAAAAAAAAAAB////wAAAAAAAAAAD////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////+AAAAAAAAAAf/////AAAAAAAAAA/////+AAAAA - AAAAAf////8AAAAAAAAAAP////8AAAAAAAAAAH/H//8AAAAAAAAAAD8H//8AAAAAAAAAAB4H//8AAAAA - AAAAABwH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAA - AAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAA - AAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAA - AAAAAAAP//8AAAAAAAAAAAAf//+AAAAAAAAAAAAf///AAAAAAAAAAAAf//+AAAAAAAAAAAAf//8AAAAA - AAAAAAAf//8AAAAAAAAAAAA///8AAAAAAAAAAAA///8AAAAAAAAAAPj///8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////+AAAAAAAAAAf/////AAAAAAAAAA//////gAAAAAAAAB//////4AAAAAAAAH//////+AAAA - AAAAf///////gAAAAAAB////////8AAAAAAP/////////4AAAAH///////////4AAD////////////// - ////////KAAAAEgAAACQAAAAAQAgAAAAAABgVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU0ATU1 - NQE1NTUCNjY2AzY2NgM3NzcENzc3BTg4NwY4ODgIOTk4CTk5OQo5OTkLOjo6DDs7Og07OzoNOzs7Djs7 - Ow87OzsPPDw7Dzw8Ow87OzsPOzs7Dzs7Ow47OzoOOzs6DTo6Ogw6OjkLOTk5Cjk5OAk5OTgIODg4Bzg4 - NwY3NzcENzc2BDY2NgM2NjUCNTU1ATU1NQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATQ0MwE0NDQCNDQ0AzU1NQQ1NTUGNjY2CDY2 - Ngo3NzcMODg3Djg4OBA5OTgSOTk5FDo6ORY6OjkYOjo6GTs7Ohs7OzocOzs7HTs7Ox47OzsePDw7Hzw8 - Ox88PDseOzs7Hjs7Ox07OzocOzs6Gzo6Oho6OjoYOjo5Fjk5ORQ5OTgSODg4EDg4OA43NzcMNzc2CjY2 - Ngg2NjUGNTU1BTU1NQM0NDQCNDQ0ATMzMwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMzMzAjMzMwQ0NDQGNDQ0CTU1NQw2NjYPNjY2Ezc3NxY3NzcaODg3Hjg4 - NyE5OTgkOTk5Jzk5OSo6OjotOjo5Lzs7OjE6OjoyOzs7NDs7OjU8PDs1PDw7Njs7OjY8PDs1Ozs6NTs7 - OzQ6OjozOzs6MTo6OS86OjotOTk5Kjk5OSg5OTgkODg4ITg4OB43NzcaNzc3FzY2NhM2NjYQNTU1DDU1 - NAk0NDQHMzMzBDMzMwMyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgIyMjIEMzMzBzMzMws0NDQPNTU1FDU1NRk2NjYeNjY2JDc3Nyk3NzcuODg4Mzg4ODc5OTg8OTk5Pzo6 - OUM6OjpGOzs6SDs7Oks7OztMOzs7Tjw8O088PDtQPDw7UDw8O1A8PDtQPDw7Tzs7O047OztMOzs6Szs7 - Okk6OjpGOjo5Qzk5OT85OTk8ODg4ODg4ODM4ODcvNzc3KTc3NiQ2NjYfNTU1GjU1NRQ0NDQQNDQ0CzMz - MwgzMzMFMjIyAzIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQEyMjICMTExBDIyMgcyMjILMzMzETMz - Mxc0NDQeNTU1JjU1NS02NjY0NjY2Ozc3N0I3NzdIODg4Tjg4OFM5OTlXOjo5Wzo6OV46OjphOjo6ZDs7 - O2Y7OztoPDw7aTw8O2o8PDxrPDw8azw8O2s8PDxrPDw7ajw8O2o7OztoOzs7Zjs7OmQ7OzpiOjo5Xzo6 - OVs5OTlXODg4Uzg4OE43NzdINzc3QjY2Njw2NjY1NTU1LjU1NSY0NDQfMzMzGDMzMxEyMjIMMjIyBzEx - MQQyMjICMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgIyMjIFMjIyCTIyMg8zMzMXMzMzHzQ0NCk0NDQzNTU1PDU1 - NUY2NjZONzc2Vjc3N1w4ODdjODg4aDk5OG05OTlxOjo5dDo6Onc7Ozp6Ozs7fDw8O348PDt/PDw8gDw8 - PIE9PTyCPT08gj09PII9PTyCPDw8gTw8PIA8PDt/PDw7fjs7O3w7Ozp6Ojo6dzo6OXU5OTlxOTk4bTg4 - OGg4ODdjNzc3XTc3Nlc2NjZPNjY1RzU1NT00NDQ0NDQ0KjMzMyAzMzMXMjIyDzIyMgkyMjIFMjIyAjIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyAjExMQUyMjIKMTExETIyMhsyMjImMzMzMjMzMz80NDRLNTU1VjU1NV82NjZoNjY2bzc3 - N3U4ODd6ODg4fzk5OII6OjmFOjo6iDo6OopERESRVVVUnlxcW6dnZ2awbm5ut3BwcLt1dXXCdHRzwnJy - ccJxcXDCa2tqvGdnZ7hgYF+xVlZVqFBQT55EREOSOzs6ijo6Oog6OjmGOTk4gzk5OH84ODd7Nzc3djc3 - NnA2NjZoNTU1YDU1NVY0NDRMMzMzQDMzMzQyMjInMjIyHDExMRIyMjIKMTExBTIyMgIyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIy - MgkyMjIRMjIyHTIyMiszMzM6MzMzSjQ0NFg0NDRkNTU1bzY2NXg2NjZ/Nzc3hDc3N4lCQkKRXV1dooCA - gLmhoaHQt7e24snJyfPMzMz8yMjI/cPDw/6+vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/p6en/qmpqf2rq6v8qKio9Jubm+SIiIjRcXFxvFZWVqRAQECSODg3iTc3N4U2NjZ/NjY2eDU1 - NXA0NDRmNDQ0WTMzM0szMzM8MjIyLDIyMh4yMjISMjIyCjIyMgQyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjICMjIyBzIyMg4yMjIaMjIyKjIy - MjwzMzNPMzMzXzQ0NG41NTR6NTU1gzY2NolHR0aVhISEucHBwdrq6urz9PT0/uzs7P/l5eX/3d3d/9bW - 1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qq - qv+urq7/sbGx/7a2tv+5ubn/vb29/8HBwf66urr0oKCg3Hd3d7xGRkaYNjY2ijU1NYM1NTR7NDQ0bzMz - M2EzMzNQMjIyPjIyMiwyMjIcMjIyEDIyMgcyMjIDMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQEyMjIEMjIyCjExMRUyMjIlMTExOTIyMk4yMjJjMzMzdDQ0 - NIE4ODeMZ2dnrLi4uNvx8fH7+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2 - tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/Pz/7Nzc39nJyc3lxcXLA3NzeNNDQ0gjMzM3UyMjJkMjIyUDEx - MTsyMjImMTExFjIyMgsyMjIEMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIFMjIyDTIyMhsyMjIuMjIyRTIyMlwzMzNxNDQ0glpaWqO9vb3j6enp/fDw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LC - wv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7W1tf6SkpLmUVFRqTQ0NIQzMzN0MjIyXjIyMkcyMjIwMjIyHTIy - Mg4yMjIGMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEx - MQIyMjIGMjIyEDExMR8yMjI0MTExTTIyMmY2NjZ9h4eHwNzc3Pzl5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mp - qf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/P - z/7Pz8//wsLC/ra2tv+pqan/m5ub/Wpqask1NTWAMjIyaDExMVAyMjI3MTExITIyMhEyMjIHMTExAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgIyMjIHMjIyEDIy - MiAyMjI3MjIyUDMzM2qOjo7B2dnZ/t/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2 - tv+pqan/nJyc/5CQkP5oaGjMNDQzbTIyMlMyMjI5MjIyIzIyMhIyMjIHMjIyAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQIyMjIGMjIyEDExMR8yMjI0MTExTVxc - XIjS0tL92dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW - 1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qq - qv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQ - kP+Dg4P+TExLlDExMVAyMjI3MTExITIyMhEyMjIHMTExAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIFMjIyDTIyMhsyMjIuMjIyRI6OjrTT09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PD - w/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2 - tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/Y2NjwzIy - MkcyMjIwMjIyHTIyMg4yMjIGMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADExMQEyMjIEMjIyCjExMRUyMjIlMTExOZOTk7rT09P+2dnZ/9/f3/7l5eX/6+vr//Dw - 8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0 - tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/vb29/sHB - wf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQkP+Dg4P+aGhoxzExMTsyMjInMTExFjIy - MgsyMjIEMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjICMjIyBzIyMg4yMjIaMjIyKpSUlLTT09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39 - /f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mp - qf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/P - z//Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/ampqwjIyMiwyMjIcMjIyEDIyMgcyMjIDMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIy - MgkyMjIRMjIyHZSUlK3T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0s/+wsLD/ra2s/6qpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2 - tv+pqan/nJyc/5CQkP+Dg4P/a2trvTIyMh4yMjISMjIyCjIyMgQyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjExMQUyMjIKMTExEZOT - k6jT09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+jo6P7a2tn/zMvK/8HA - vv66uLb/tLKv/rCuq/+uq6j+raqn/62qp/6tqqf/raqn/62qp/6tqqf/raqn/q2qp/+sqab+rKmn/6yq - qP6tq6n/r62s/rKxsP+3trb/vLy7/sHBwf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQ - kP+Dg4P+bW1tuDExMRIzMzMKMjIyBTIyMgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgJEREQFQkJCCZSUlKTT09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/9vb2/+jn5v/T0c//v7y6/7Owrv+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/sK2q/7Owrv+5uLb/w8LB/87Nzf/Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/b29vtTw8 - PAlFRUUFMzMzAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQFTU1MCjo6OBLW1taHT09P+2dnZ/9/f3/7l5eX/6urq/9/e - 3v7KyMb/trSx/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z+sq+s/7Kv - rP6yr6z/sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z/sq+s/rKv - rP+yr6z+sq+s/7Owrf67ubf/vby7/rW1tf+pqan/nJyc/pCQkP+Dg4P+dHR0s2VlZQRVVVUCNDQ0AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAs7OzAcjIyKDT09P/2dnZ/9/e3v/V1NP/v726/7Wyr/+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Syr/+trKv/nZ2d/5CQkP+Dg4P/d3d3snR0dAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM3NzZ/T09P+1dTU/8LAvv63tLL/t7Sy/7e0sf63tLL/t7Sx/re0sv+3tLH+t7Sy/7e0 - sf63tLL/t7Sy/7e0sf63tLL/t7Sx/re0sv+3tLH+t7Sy/7e0sf63tLL/t7Sy/7e0sf63tLL/t7Sx/re0 - sv+3tLH+t7Sy/7e0sf63tLL/t7Sx/re0sv+3tLL/t7Sx/re0sv+3tLH+t7Sy/7e0sf63tLL/t7Sx/re0 - sv+3tLL/sa+s/paWlf+Dg4P+eXl5sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3N - zJ/Nzcz/vbq4/7q3tP+6t7X/ure1/7q3tP+6t7X/ure0/7q3tf+6t7T/ure1/7q3tP+6t7X/ure1/7q3 - tP+6t7X/ure0/7q3tf+6t7T/ure1/7q3tP+6t7X/ure1/7q3tP+6t7X/ure0/7q3tf+6t7T/ure1/7q3 - tP+6t7X/ure0/7q3tf+6t7X/ure0/7q3tf+6t7T/ure1/7q3tP+6t7X/ure0/7q3tf+6t7X/ure0/7e1 - sv+QkI//enp6sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvKyZ/Avbv+vbq3/726 - t/69urf/vbq3/726t/69urf/vbq3/r26t/+9urf+vbq3/726t/69urf/vbq3/726t/69urj/vru5/r67 - uf+9u7j+u7m3/7m3tf63trT/trSz/7Wzsf60srD/s7Gw/rSysP+2tLL+uLa0/7q4tf68urf/vbq3/r26 - t/+9urf/vbq3/r26t/+9urf+vbq3/726t/69urf/vbq3/r26t/+9urf/vbq3/r26t/+3tbL+goKBsQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXDwp/Avrv/wL26/8C9uv/Avbr/wL26/8C9 - uv/Avbr/wL26/8C9uv/Bvrz/x8XD/8/Ny//T0tH/1NPT/9PS0v/Pz8//ycnJ/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+dpaD/iaiU/3WpiP9mqn//Xqx6/1isdv9drXn/Z6+A/3qy - jP+Vtp7/srqx/7+9uv/Avbr/wL26/8C9uv/Avbr/wL26/8C9uv/Avrv/np2csQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTCv5vLycf/w8C9/8LAvf/CwL3/wsC9/8LAvf/Fw8D/1dPR/+fm - 5f/09PT/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mp - qf+lp6b/gKaO/1imdf8/p2X/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Pqll/12u - ef+Tt53/wL+7/8LAvf/CwL3/wsC9/8LAvf/Lycf/uLazsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMfEwWPNy8n+0M/M/8XDwP7Fw8D/zczJ/+Df3v7y8vL/+fn5/vz8/P/8/Pz+9PT0/+zs - 7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/qa2r/4Opkf5cp3j/WKd1/lSn - cv9Dp2j+OKhh/zenYP44qGH/N6dg/jioYf84qGH/N6dg/jioYf83p2D+OKhh/zenYP44qGH/S6tu/pS5 - n//Dwr7/xcPA/s7Myv/Pzcv+xMK/eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzK - xwrKx8TN2NfV/9XT0f/d3Nv/6urq//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW - 1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/oKyl/6KppP+np6f/paWl/6SkpP+gpaH/haeS/0qo - bf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9fr3v/usW7/9nX - 1v/Ix8PbusG5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0M4e09LR6t/f - 3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6Sqpv5bqXf/N6dg/jio - Yf84qGH/N6dg/jioYf83p2D+OKhh/zenYP44qGH/N6dg/jioYf84qGH/Qadn/pKynPKdu6UvAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NN/2dnZ/d/f3//l5eX/6+vr//Dw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+prav/ZKt+/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zqnYv5gnnaQZ6+BAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0TXT09P72dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mp - qf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sLGw/mmtgv84qGL/N6hi/jioYv83qGL+OKhi/zeo - Yv44qGL/N6hi/jioYv84qGL/N6hi/jioYv84qGL+PalmcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAN6tmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0I3T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7O1tP9ssIf/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm+TirZ2IAAAAAAAAAAAAAAAAAAAAAAAAAADesago3q2eMOKtm7zer - Z2EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW - 1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qq - qv6urq7/sbGx/ra2tv+3ubj/Z7KH/kS1dv85rmz+N61q/zetav43rWr/N61q/jetav83rWr/N61q/jet - av83rWr+N61q/zetavc3rWtBAAAAAAAAAAAAAAAANq5sJzetasY3rWr+N61q/zetaoYAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PD - w/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2 - tv+5ubn/ub26/2C1h/9NvIH/ObBw/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27lN7BvITewcAI3sG9aN69u7jevbv83r27/N69u/zeubWoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2s/6qpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/7fA - u/9StoL/UcCJ/zexcv83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fxvzex - cpk3sXH8N7Fx/zexcf83sXH/N7Fx/zawcUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+np6f7c29v/z83N/8PCwP67urj/trSy/rKvrf+wrar+rqup/66rqP6uq6j/rquo/66r - qP6uq6j/rquo/q2qqP+tqqj+raqo/62rqf6urKr/sK6t/rOysf+3t7b/vLy8/sHBwf+vwrn+S7qD/0/A - iv43s3X/NrN1/jezdf83s3X/NrN1/jezdf82s3X+N7N1/zazdf43s3X/NrN1/jezdf83s3X/NrN1/jez - df82s3X+N7N1/TaydC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/9/f3/+rq6f/W1NP/wr+9/7Wy - sP+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sa6r/7SysP+7ubj/kLul/03Ai/9DvIP/NrV4/za1 - eP82tXj/NrV4/za1eP82tXj/NrV4/za1eP82tXj/NrV4/za1eP82tXj/NrV4/za1eP82tXj/NrV49Da0 - dxoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z5/T09P+2dnZ/9/f3/7l5eX/6urq/+Hg4P7Ny8n/uLaz/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/7Kv - rP6yr6z/sq+s/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z+sq+s/7Kv - rP6yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z+sa+s/2O0jf5Vx5X/OLh9/ja3e/82t3v/Nbd7/ja3 - e/81t3v+Nrd7/zW3e/42t3v/Nbd7/ja3e/82t3v/Nbd7/ja3e/81t3v+Nrd76jW2egYAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f - 3//W1dT/wL67/7Wyr/+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/6iyqv9IvYn/TsWS/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozp/T09P+1dXU/8LAvv62s7H/trOx/7az - sP62s7H/trOw/razsf+2s7D+trOx/7azsP62s7H/trOx/7azsP62s7H/trOw/razsf+2s7D+trOx/7az - sP62s7H/trOx/7azsP62s7H/trOw/razsf+2s7D+trOx/7azsP62s7H/trOw/razsf+2s7H/trOw/raz - sf+2s7D+trOx/7azsP59tpv/U8mZ/jq8hP82uoH/NbqB/ja6gf81uoH+NrqB/zW6gf42uoH/NbqB/ja6 - gf82uoH/NbqB/ja6gf81uoH+NrqBswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzJ/Ozs3/vLq3/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2 - s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2 - s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2 - s/+wtrD/Sr6O/1TLnP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryDlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMrKyZ++u7n+u7i1/7u4tf67uLX/u7i1/7u4tf67uLX/u7i1/ru4tf+7uLX+u7i1/7u4 - tf67uLX/u7i1/7u4tf67uLX/vLm2/ry5t/+7ubf+uri2/7i2tP62tLP/tbOx/7SysP6zsa//s7Gv/rOx - r/+1s7H+t7Wy/7m2tP66t7X/u7i1/ru4tf+7uLX/u7i1/ru4tf+7uLX+u7i1/7u4tf67uLX/abuY/kvH - l/82vYb/Nb2G/ja9hv81vYb+Nr2G/zW9hv42vYb/Nb2G/ja9hv82vYb/Nb2G/ja9hv81vYb+Nr2GdwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTC - wJ+9u7j/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/++u7n/xMG//8vKyP/Qz87/0tHR/9HR - 0P/Pz8//ycnJ/8PDw/++vb3/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6ur - q/+urq7/s7Ky/7e3tv+7ubj/vLu5/727uf+9urj/vbq3/7m6tv97vKH/OL6K/zW+iP81voj/Nb6I/zW+ - iP81voj/Nb6I/zW+iP81voj/Nb6I/zW+iP81voj/Nb6I/zW+iP87wY3/Nr+JWQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMG/vJrIxsT+v7y6/7+8 - uf6/vLn/v7y5/7+8uf7Avrv/0M7N/uTi4f/y8vH+8/Pz/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2 - tv+5ubn/vb29/sHBwf/FxMT+t8S9/1y/mP41v4r/NL+K/jW/iv81v4r/NL+K/jW/iv80v4r+Nb+K/zS/ - iv41v4r/NL+K/jW/iv81v4r/NL+K/jW/iv9AxZP+OMCMOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPAvVvKx8X/zMrI/8G+u//Bvrz/ycfF/93c - 2//y8vH/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8HB - wf+cxLX/Q8GS/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zfCjv9Dx5f/OsOQGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjGxAfEwr/C1dTS/9DOzP/a2tn/6urq//Dw8P/19fX/+fn5//39 - /f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mp - qf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vL29/3vBp/84wY//NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/z/G - lf9Bx5bxPsWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzcsV0M/N4d/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs - 7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSk - pP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/n76y/jjDkf8+xpX+PcaV/zrEkv41wo//NMKP/jXC - j/81wo//NMKP/jXCj/80wo/+NcKP/zTCj/41wo//NMKP/jXCj/81wo//NMKP/krMn/87xZPZQceXBQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADT09N72dnZ/N/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW - 1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qq - qv+urq7/sbGx/7a2tv+5ubn/t727/3/Cqv9gxKD/Tcab/0XImf9Gypz/R8ud/0jMnv9KzaD/Ss2g/0XK - nP8/x5f/OMSS/zbDkf81w5D/NcOQ/zXDkP81w5D/NcOQ/1bSqP84xJK/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0DTT09P52dnZ/9/f - 3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2 - tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8XOy/6zzcP/lcOy/ni8pP9fuZn/TbuU/kbClv9Hyp3+Ts6j/1LQ - pf5W0qj/VtKo/lXRqP9PzqP/VNGm/lLQpf45xZN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0IvT09P/2dnZ/9/f3//l5eX/6+vr//Dw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LC - wv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2tv+pqan/nJ2c/42SkP97iYT/ZI+Aw0S6kGc+wJGNOMSStDrF - lNxByZnvQMiY7jjEkpdByJkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mp - qf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/P - z/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQkP+Dg4P+dnt5sQAAAAAAAAAAAAAAAAAAAABFypsRQ8maEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2 - tv+pqan/nJyc/5CQkP+Dg4P/eHl5sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW - 1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qq - qv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQ - kP+Dg4P+eHh4sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+rq6v/d3dz/0M/O/8TDwv+8u7n/trSy/7Kw - rv+wrav/rquo/62qqP+tqqf/raqn/62qp/+tqqf/raqn/62qp/+sqaf/rKqn/6yqqP+urKr/sK6t/7Oz - sv+4t7f/vby8/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/eHh4sQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw - 8P/19fX/9/f3/+3s7P/Z2Nb/xcLA/7e0sv+xr6z/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+xrqv/sq+s/7Wz - sf+8u7n/xcXE/87Ozv/Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/eHh4sQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P+2dnZ/9/f3/7l5eX/6urq/+Tj4v7Qz83/vLm3/rSx - rv+0sa7+tLGu/7Sxrv60sa7/tLGu/7Sxrv60sa7/tLGu/rSxrv+0sa7+tLGu/7Sxrv60sa7/tLGu/7Sx - rv60sa7/tLGu/rSxrv+0sa7+tLGu/7Sxrv60sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7+tLGu/7a0 - sv6/vbz/v769/ra2tv+pqan/nJyc/pCQkP+Dg4P+eHh4sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//Y2Nf/xMLA/7i1s/+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/uLWz/7e1 - s/+trKz/nZ2d/5CQkP+Dg4P/eHh4sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/O - zp/T09P+1tbV/8fFw/67uLb/u7i2/7u4tv67uLb/u7i2/ru4tv+7uLb+u7i2/7u4tv67uLb/u7i2/7u4 - tv67uLb/u7i2/ru4tv+7uLb+u7i2/7u4tv67uLb/u7i2/7u4tv67uLb/u7i2/ru4tv+7uLb+u7i2/7u4 - tv67uLb/u7i2/ru4tv+7uLb/u7i2/ru4tv+7uLb+u7i2/7u4tv67uLb/u7i2/ru4tv+7uLb/srCv/pWV - lf+Dg4P+eXl5sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7NzZ/Pz87/wr++/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7q4tf+Pjo7/enp6sQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzJ/FwsD+wr+9/8K/vf7Cv73/wr+9/8K/ - vf7Cv73/wr+9/sK/vf/Cv73+wr+9/8K/vf7Cv73/wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73+wr+9/8K/ - vf7Cv73/wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73+wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73/wr+9/sK/ - vf/Cv73+wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73/wr+9/sK/vf+7uLb+gYGBsQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJyJ/Kx8X/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bD - wf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bD - wf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bD - wf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Kx8T/oaCesQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMzKx5nb2df+zMnH/8rHxP7Kx8T/ysfE/8rHxP7Kx8T/ysfE/srHxP/Kx8T+ysfE/8rH - xP7Kx8T/ysfE/8rHxP7Kx8T/ysfE/srHxP/Kx8T+ysfE/8rHxP7Kx8T/ysfE/8rHxP7Kx8T/ysfE/srH - xP/Kx8T+ysfE/8rHxP7Kx8T/ysfE/srHxP/Kx8T/ysfE/srHxP/Kx8T+ysfE/8rHxP7Kx8T/ysfE/srH - xP/Kx8T/ysfE/svIxv/b2dj+vbq4rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDN - y1LY1dT/5OPi/8/Myv/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/+Hg - 3//a2df/zsvJawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXT0gXS0M615eTj/ufm - 5v/U0dD/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/T0M//5eTj/+fn5v/S0M7H1dPRCgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZ19YN1tTSseXk4/7v7u7/4d/e/9bT - 0v7V0tD/1dLQ/tXS0P/V0tD+1dLQ/9XS0P7V0tD/1dLQ/9XS0P7V0tD/1dLQ/tXS0P/V0tD+1dLQ/9XS - 0P7V0tD/1dLQ/9XS0P7V0tD/1dLQ/tXS0P/V0tD+1dLQ/9XS0P7V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS - 0P/V0tD+1dLQ/9XS0P7V0tD/1tPR/t/e3f/u7e3/5+bl/tbU0sDa2NYXAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3tzbBtvY12vg3t3q7ezs/+/u7v/l5OP/3drY/9nW - 1P/Y1dP/2dbU/9jV0//Z1tT/2dbU/9jV0//Z1tT/2NXT/9nW1P/Y1dP/2dbU/9jV0//Z1tT/2dbU/9jV - 0//Z1tT/2NXT/9nW1P/Y1dP/2dbU/9jV0//Z1tT/2NXT/9nW1P/Z1tT/2NXT/9nW1P/Y1dP/2dbU/9zZ - 2P/l4+L/7u7t/+7t7f/h397v2tjWed7c2wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADh390T3tzae+Pi4ODs6+r/8fHx/u7t7f/n5uX+4uDf/97b - 2v7c2df/3NnX/9zZ1/7c2df/3NnX/tzZ1//c2df+3NnX/9zZ1/7c2df/3NnX/9zZ1/7c2df/3NnX/tzZ - 1//c2df+3NnX/9zZ1/7c2df/3NnX/tzZ1//c2df/3tvZ/uLg3v/n5uX+7ezs//Hx8f7s7Ov/5OLh59/d - 24Xh394cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOXj4gjj4eBJ4+Hgnufm5ePs7Ov88PDw//Hx8P/v7+7/7Ovq/+nn - 5v/m5OP/5OLh/+Lg3v/h3t3/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/h3tz/4uDe/+Ti - 4P/m5OP/6Ofm/+vq6v/v7u7/8fDw//Dw8P/t7Ov86Obl5uPi4KXj4eBP5ePiDAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjn5gbm5eQy5uTjaefl5KLp5+bP6+rp9e7t7P7v7+//8fDw/vLy - 8v/x8fH+8fHx//Dw8P7w8PD/8PDw//Dw8P7w8PD/8PDw/vHx8f/x8fH+8vLy//Hx8f7v7+//7u3t/uvq - 6fbp5+bS5+XkpeXk4nDm5eQ26OfmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADr6ukC6+rpBuno5yTp6OZE6OblYOjn5Xnp6OeN6ujnmuno - 56nq6eiq6unouurp6Lrq6eir6ejnqerp55zp6OeO6Ofmeujm5WLp6OZG6ejmJurp6Ajr6ukCAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//gAAAAAH//wAAAP/8AAAAAAA//wAAAP/wAAAAAAAP/wAAAP/g - AAAAAAAH/wAAAP+AAAAAAAAB/wAAAP8AAAAAAAAA/wAAAP8AAAAAAAAAfwAAAP4AAAAAAAAAfwAAAP4A - AAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwA - AAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAP4AAAAAAAAAPwAAAP4AAAAAAAAAfwAAAP8A - AAAAAAAA/wAAAP8AAAAAAAAA/wAAAP+AAAAAAAAB/wAAAP/gAAAAAAAH/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/4AAAAAAAf/wAAAP/4AAAAAAAP/wAAAP/wAAAAAAAP9wAAAP/wAAAAAAAHwwAAAP/w - AAAAAAADgwAAAP/wAAAAAAAAAwAAAP/wAAAAAAAAAwAAAP/wAAAAAAAAAwAAAP/wAAAAAAAAAwAAAP/w - AAAAAAAAAwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/w - AAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/4AAAAAAAABwAAAP/4 - AAAAAAAADwAAAP/wAAAAAAAADwAAAP/wAAAAAAAADwAAAP/wAAAAAAAPPwAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/4AAAAAAAf/wAAAP/8AAAAAAA//wAAAP//AAAAAAD//wAAAP// - wAAAAAP//wAAAP//+AAAAB///wAAAP///4AAAf///wAAAP///////////wAAACgAAABAAAAAgAAAAAEA - IAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTQBNTU1ATY2NQI2NjYDNzc2BDc3NwU4ODcHODg4CDk5 - OAk5OTkLOTk5DDo6Og07OzoOOzs6Dzs7Ow87OzsQPDw7EDw8OxA7OzsQOzs7Dzs7Ow87OzoOOjo6DTo6 - Ogw5OTkLOTk4CTg4OAg4ODgHNzc3BTc3NwQ2NjYDNjY2AjU1NQE1NTUBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATMzMwE0NDQCNDQ0BDU1NQY2NjUINjY2Cjc3 - Nw04ODcPODg4Ejk5OBU5OTkXOjo5GTo6Ohw6OjodOzs6Hzs7OyA7OzshOzs7Ijw8OyM8PDsjOzs7Ijs7 - OyE7OzsgOzs6Hzo6Oh46OjocOjo5Gjk5ORc5OTgVODg4Ejg4Nw83NzcNNjY2CjY2Ngg1NTUGNTU0BDQ0 - NAI0NDQBMzMzAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATMzMwMzMzMFNDQ0CDQ0 - NAw1NTUQNjY2FDc3Nhk3NzcdODg3Ijg4OCY5OTgqOTk5Ljo6OTI6Ojo1Ozs6Nzs7Ojk7Ozs7Ozs7PDw8 - Oz08PDs+PDw7Pjw8Oz07Ozs8Ozs7Ozs7Ojk7Ozo3Ojo6NTo6OTI5OTkuOTk4Kzg4OCY4ODciNzc3Hjc3 - Nhk2NjYUNTU1EDU1NQw0NDQIMzMzBTMzMwMyMjICMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyAzIy - MgUzMzMJMzMzDjQ0NBQ1NTUbNTU1IjY2Nik3NzYvNzc3Njg4Nzw4ODhCOTk4Rzk5OUs6OjlPOjo6Uzs7 - OlU7OztYOzs7Wjw8O1s8PDtcPDw7XTw8O108PDtcPDw7Wzs7O1o7OztYOzs6Vjo6OlM6OjpQOjo5TDk5 - OUc4ODhCODg4PTc3Nzc3NzYwNjY2KTU1NSI1NTUbNDQ0FTQ0NA8zMzMJMjIyBjIyMgMyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyBDIyMgcyMjINMzMzFTQ0Mx40NDQnNTU1MTU1NTs2NjZENzc2TDc3N1M4ODhaOTk4YDk5 - OWU6OjlpOjo6bTs7OnA7OztyPDw7dTw8O3Y8PDx3PDw8eD09PHg9PTx4PDw8eDw8PHc8PDt2PDw7dTs7 - O3M7OzpwOjo6bTo6OWo5OTllOTk4YDg4OFo3NzdUNzc3TTY2NkQ2NjU7NTU1MjQ0NCg0NDQfMzMzFjIy - Mg4yMjIIMjIyBDIyMgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIyMgkyMjIRMjIyGzMzMyc0NDM0NDQ0QTU1NU02NjVYNjY2Yjc3 - N2o4ODdxODg4djk5OHs5OTl/Ojo6gzs7OoU7OzuIPDw7iT8/P41KSkmUUFBPmlRUVKBVVVSiVFRTolNT - UqFNTU2aSEhIlT8/P408PDuKOzs7iDs7OoY6OjqDOjo5gDk5OXw4ODh3ODg3cTc3N2o2NjZiNjY1WTU1 - NU40NDRCNDQ0NjMzMykyMjIcMjIyEjIyMgkyMjIEMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyAzIyMggyMjIRMjIyHjIyMi4zMzM/NDQ0TzQ0 - NF01NTVqNjY1dDY2Nnw3NzeCODg3hzs7OoxbW1ugfX19uJWVlcuoqKjct7e36sDAwPbBwcH/u7u7/7W1 - tf+xsbH/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/pKSk95ycnOuPj4/egYGBzW5ubrlVVVWjPDw7jTg4 - OIg3NzeDNjY2fDY2NnQ1NTVrNDQ0XzQ0NFAzMzNAMjIyLzIyMh8yMjISMjIyCTIyMgQyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjIyMgYyMjIPMjIyHTIy - Mi8yMjJDMzMzVzQ0NGk0NDR3NTU1gTY2NolNTU2ZjY2NvsbGxt7w8PD47+/v/+bm5v/e3t7/1tbW/8/P - z//IyMj/wcHB/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2 - tv+6urr/v7+//76+vvmjo6LgfX18wEtLS5s2NjaJNTU1gjU1NHg0NDRqMzMzWTMzMkUyMjIxMjIyHjIy - MhAyMjIHMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgMyMjIKMjIyFjIyMikyMjJAMzMyWDMzM240NDR+NjY1inBwcLHCwsLh9fX1/vr6+v/+/v7/+Pj4/+/v - 7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6am - pv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/v//Dw8P/ycnJ/87Ozv/Q0ND+pKSk5GNjY7U2NjaLNDQ0gDMz - M28zMzNaMjIyQjIyMisyMjIYMjIyCzIyMgMyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIEMjIyDTIyMh0yMjIzMjIyTjMzM2gzMzN+XFxcpMXFxenq6ur/8PDw//b2 - 9v/6+vr//v7+//j4+P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mp - qf+np6f/paWl/6SkpP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PD - w/+1tbX/lpaW7FBQUKkzMzN/MzMzajIyMlEyMjI2MjIyHzIyMg4yMjIFMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBjIyMg8yMjIhMjIyOjIyMlczMzNxf39/udzc - 3P3k5OT/6urq//Dw8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7 - u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//8PD - w//Jycn/zs7O/9DQ0P/Dw8P/tbW1/6enp/+YmJj+Y2NiwTMzM3QyMjJZMjIyPDIyMiMyMjIRMjIyBjIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgYyMjIQMjIyITIy - MjsyMjJXbGxsn9fX1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW - 1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gx - sf+2trb/urq6/7+/v//Dw8P/ycnJ/87Ozv/Q0ND/w8PD/7W1tf+np6f/mZmZ/4qKiv9VVVWrMjIyWjIy - Mj0yMjIjMjIyETIyMgYyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIFMjIyDjIyMh4yMjI2MjIyUb29vebX19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4 - +P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6Sk - pP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZ - mf+Kior/eHh48TMzM1UyMjI4MjIyIDIyMg8yMjIFMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIyMgsyMjIYMjIyLDIyMkTQ0ND/19fX/93d3f/k5OT/6urq//Dw - 8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62t - rf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//8PDw//Jycn/zs7O/9DQ - 0P/Dw8P/tbW1/6enp/+ZmZn/ioqK/3x8fP86OjpRMjIyLTIyMhkyMjIMMjIyBDIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgIyMjIHMjIyEDIyMh8yMjIz0NDQ/9fX - 1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HB - wf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/ - v//Dw8P/ycnJ/87Ozv/Q0ND/w8PD/7W1tf+np6f/mZmZ/4qKiv98fHz/Ozs7QTIyMiEyMjISMjIyCDIy - MgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIy - MgoyMjIUMjIyItDQ0P/X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/v7+//5ubm/97e - 3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbD/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/qqqq/62t - rf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZmf+Kior/fHx8/z09 - PTAyMjIVMjIyCjIyMgQyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgIyMjIFMjIyCzIyMhTQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/29vb/+vr6//7+ - /v/4+Pj/6+vr/9jX1//JyMf/v727/7e1s/+ysK3/r6yp/62qqP+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/rKmn/6yqp/+tq6n/r62r/7KxsP+3trX/vb29/8PDw//Jycn/zs7O/9DQ0P/Dw8P/tbW1/6en - p/+ZmZn/ioqK/3x8fP8/Pz8jMjIyCzIyMgUyMjICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAlFRUQVBQUEJ0NDQ/9fX1//d3d3/5OTk/+rq - 6v/w8PD/9PPz/+Xk4//R0M7/vLq3/7Ctqv+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+zsK3/uri3/8XE - w//Pz8//w8PD/7W1tf+np6f/mZmZ/4qKiv98fHz/SUlJGUxMTAU0NDQCMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpaWkBpKSkA9DQ - 0P/X19f/3d3d/+Tk5P/h4eD/zMrJ/7e0sf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/tLGu/7m3tf+0tLP/p6en/5mZmf+Kior/fHx8/25ubhNeXl4BNzc3AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMPDwwHQ0ND/19fX/9nZ2f/GxML/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7Gvrf+cnJv/ioqK/3x8 - fP96enoRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/87NzP+7ubb/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/t7Wy/5mYl/98fHz/g4OCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLyv+9urf/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7u4 - tv+6uLX/ure1/7m3tP+5trT/ube0/7q4tf+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+7uLb/jYyL/42MjBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADDwb//v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/xsPB/8zKyP/Ozcv/zs3M/8vK - yv/Gxsb/wMDA/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/oaaj/46rmP+ArpD/eLCL/3Kw - h/94sYv/hLOT/5q2ov+3u7X/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7Kwrv+bmZgQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAxMG//MnGxP/CwL3/wsC9/8LAvf/CwL3/xsTC/9fW1P/q6ej/8/Pz/+/v - 7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6Gno/95pon/U6dx/zmn - Yv84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Oahi/1uueP+Otpr/v7+7/8LAvf/CwL3/wsC9/8fE - wv/Fw8D/sK+tDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbDwMXV1NL/x8XC/8bDwP/Pzsv/4+Lh//X1 - 9f/6+vr//v7+//j4+P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/qK2q/3+p - jv9ip3v/Yad6/1amc/89p2T/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/0eq - a/+PuJv/xcPA/8bEwf/V1NL/xsPA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysg1z8zK9trZ - 1//e3d3/6urq//Dw8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7 - u/+1tbX/sbGx/6WtqP+pqan/p6en/6Wlpf+kpKT/oaaj/3Gohf85qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/1mud/++ysD/0M7L/LnCuUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANTT0pLd3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW - 1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/iquW/zyo - ZP84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/P6dl/4SrkaUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS0VDX19f+3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4 - +P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6Sk - pP+mpqb/qqqq/62trf+Ur57/P6hm/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf85p2L/UaRwZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NDT19fX/93d3f/k5OT/6urq//Dw - 8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62t - rf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/5qzpP8/qmn/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZPw6qWdPAAAAAAAAAAAAAAAAAAAAAAAAAAA3rGgFN6tmbjer - ZlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX - 1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HB - wf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/nreo/0Cv - b/89r27/N6xp/zesaf83rGn/N6xp/zesaf83rGn/N6xp/zesaf83rGn/N6xp9zetajkAAAAAAAAAAAAA - AAA3rmsfN6xpxjesaf83rGnOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0P/X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/v7+//5ubm/97e - 3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/qqqq/62t - rf+xsbH/tra2/7q6uv+Yuqf/R7d7/z+zdP83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zev - bf83r23nN7BvGQAAAAA3r29RN69t7jevbf83r23/N65tuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/29vb/+vr6//7+ - /v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wl - pf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//4u7ov9MvYT/PbR2/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcb43sXGTN7Fx/zexcf83sXH/N7Fx/zaxcZoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//d3d3/5OTk/+rq - 6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+3t7P/a2tn/zMrJ/8G/vf+5t7X/tLGv/7GurP+vrKn/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rauo/62qqP+tq6j/rqyq/7CurP+zsrD/t7e2/76+vv/Dw8P/cryX/1PD - jf84tHb/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df82s3R8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0P/X19f/3d3d/+Tk5P/q6ur/8PDw//X19f/o5+b/1NLR/7+9u/+xrqv/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrqv/tLKv/7e5tv9SuIf/UMOP/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrV4XQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/4+Li/87My/+4trP/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/m7Gk/0vCjf9AvYX/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za3ez8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//Z2dn/xsXD/7WysP+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/9ttpT/U8iX/za5 - gP82uYD/NrmA/za5gP82uYD/NrmA/za5gP82uYD/NrmA/za5gP82uYD/NrmA/za5gP82uX4hAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0P/Ozs3/uri1/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/rbWu/0vCkf9Gw4//NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P9NrqBBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADLysr/u7i2/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+5t7T/uba0/7i2s/+4tbP/t7Wy/7i2s/+5trT/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP9rupj/Usqc/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAwb+9/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/8K/ - vf/Jx8X/zMrJ/8zLyv/Kycn/xsXF/8DAwP+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6en - p/+srKv/sLCv/7W0s/+5t7b/u7m3/7y6uP+8urf/vLq3/7y6t/+guq3/Rr2O/zW+iP81voj/Nb6I/zW+ - iP81voj/Nb6I/zW+iP81voj/Nb6I/zW+iP81voj/OL+K/ze/icYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC+vPvFw8H/v7y5/7+8uf+/vLn/v7y5/8LA - vf/U0tD/5ubl//Lx8f/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mp - qf+np6f/paWl/6SkpP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv+/v7//wsLC/8TEw/+Bv6X/N7+L/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/z/Ekv82wIunAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBv7y90tDP/8LA - vf/Bvrz/y8nH/+Df3//09PT/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7 - u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//7jD - v/9fw53/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP9EyJj/N8GOiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAyMbELcrHxfDX1tT/3Nva/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW - 1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gx - sf+2trb/urq6/6e/tv9DwpP/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/Ssue/zrEkWoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0M+H3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4 - +P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6Sk - pP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv96wKb/O8WU/z/Hl/9ByJj/Q8mZ/z7Hlv82w5D/NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/0/Oov88xZRLAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0dFL19fX/t3d3f/k5OT/6urq//Dw - 8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62t - rf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/vr++/6XDuP+Rx7P/fcit/2bH - pP9Txp7/SMqc/0nMnv9KzaD/Tc6h/07Oov9OzqL/Rsuc/z7Hl/82w5H/NcOQ/0HImf9NzqL/P8eWJgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ0dfX - 1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HB - wf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/ - v//Dw8P/ycnJ/87Ozv/Q0ND/w8PD/7O1tf+Xq6P/e6WW/2Skjf9Rp4j/Pb6QwkHImOlKzaD/VNGn/1jT - qf9S0KX/OMSSowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0P7X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/v7+//5ubm/97e - 3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/qqqq/62t - rf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZmf+Kior/fHx8/2Sa - iBAAAAAARMeZEUHImTg+x5ZaP8eXQkPJmgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/29vb/+vr6//7+ - /v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wl - pf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//8PDw//Jycn/zs7O/9DQ0P/Dw8P/tbW1/6en - p/+ZmZn/ioqK/3x8fP9wh38QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//d3d3/5OTk/+rq - 6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gx - sf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/v//Dw8P/ycnJ/87O - zv/Q0ND/w8PD/7W1tf+np6f/mZmZ/4qKiv98fHz/e3t7EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0P/X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/u7u7/3Nvb/8zLyv/CwL//uri2/7Sy - sP+xrqz/r6yp/66rqP+tqqf/raqn/62qp/+tqqf/raqn/62qp/+sqqf/raqo/66sqv+wrqz/s7Kx/7i3 - t/++vr7/w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZmf+Kior/fHx8/3t7exAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/19fX/6uno/9fV1P/CwL7/s7Ct/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6s/7Wzsf+9u7r/x8bG/9DQ0P/Dw8P/tbW1/6enp/+ZmZn/ioqK/3x8 - fP97e3sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//d3d3/5OTk/+Tk4//S0M//vLm3/7Wy - sP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7Wy - sP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+3tbP/u7q4/7W0 - tP+np6f/mZmZ/4qKiv98fHz/e3t7EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0P/X19f/2tra/8vJ - yP+6t7X/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/srCv/5ybm/+Kior/fHx8/319fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0ND/0NDP/8C+u/+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+6uLb/mJeX/3x8fP+Dg4MQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzczM/8K/vf/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8C9 - u/+Mi4v/j46NEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjGxf/HxMH/xsLA/8bCwP/GwsD/xsLA/8bC - wP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bC - wP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bC - wP/GwsD/xsLA/8bCwP/GwsD/t7Wz/56dnBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMycf62NbU/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/1dPR/87Lyf+1s7IMAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAz8zKtebm5f/T0c//zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/0s/N/+fm5v/Oy8nLAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANbU0iTX1NPq7ezs/9za2f/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/2tjX/+3s - 7P/Z1tX11dPRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2tjWKNrY1tbs7Ov/6urp/93b - 2f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/c2tj/6ejo/+3t7P/b2dje2tfWMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADf3dwH3NrYdePh4Ovu7u7/7u3t/+Xk4//e3Nr/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/3tva/+Xj4v/t7ez/7+7u/+Tj4fHd29mC393cCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4eAK4d/eYuTi4cLq6en98PDw//Dw7//r6un/5+Xk/+Ph - 4P/g3tz/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/g3tz/4+Hf/+bl5P/q6en/7+/v//Dw8P/r6un+5ePix+Hf3Wvj4uANAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5uXkFuXj - 4l3m5eOd6ejn1uzr6v3v7u7/8fHx//Hx8f/v7+//7u3t/+zs6//s6+r/6+rq/+vq6v/r6ur/6+rq/+vr - 6v/s7Ov/7u3t/+/v7//x8fH/8fHx/+/v7v/s6+v+6ejm2ubl5KLl4+Ji5+XkGwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADq6egL6ejnM+jm5Vrp5+Z66ejnlurp6Kvr6um+6+rpzOzq - 6c/s6+rd7Ovq3uzr6s/r6unO6+rpv+rp6Kzp6OeX6efmfOjm5Vzp5+Y26ejnDQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//4AAAAAf///8AAAAAAP///AAAAAAAP//4AAAAAA - Af//AAAAAAAA//4AAAAAAAB//AAAAAAAAD/8AAAAAAAAP/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gA - AAAAAAAf+AAAAAAAAB/4AAAAAAAAH/wAAAAAAAA//AAAAAAAAD/+AAAAAAAAf/8AAAAAAAB//4AAAAAA - AP//wAAAAAAD///gAAAAAAP//+AAAAAAA///4AAAAAAD///gAAAAAAP//+AAAAAAB///4AAAAAAH///w - AAAAAA///+AAAAAAB///4AAAAAAD4//gAAAAAAHD/+AAAAAAAIP/4AAAAAAAA//gAAAAAAAD/+AAAAAA - AAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAB//gAAAAAAAH/+AAAAAAAAf/4AAAAAAAB//g - AAAAAAAH//AAAAAAAAf/4AAAAAAAB//gAAAAAAAP/+AAAAAAAg//4AAAAAAD///gAAAAAAP//+AAAAAA - A///4AAAAAAD///gAAAAAAP//+AAAAAAA///4AAAAAAD///gAAAAAAP//+AAAAAAA///4AAAAAAD///g - AAAAAAf//+AAAAAAB///8AAAAAAP///4AAAAAB////4AAAAAf////8AAAAP//////AAAP/////////// - //8oAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBNTU1AjY2NQM3NzYFNzc3Bzg4OAk5OTgLOTk5DTo6 - Og87OzoQOzs6ETs7OxI7OzsTPDw7Ezs7OxI7OzsROzs6EDo6Og85OTkNOTk4Czg4OAk3NzcHNzc2BTY2 - NgM1NTUCNTU0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzAjMzMwQ0NDQHNTU1CzY2Ng83NzYUODg3GDg4 - OB05OTghOjo5JTo6OSk6OjorOzs7LTs7Oi87OzovPDw7Lzs7Oi87OzotOzs6Kzo6OSk5OTklOTk5Ijg4 - OB04ODcZNzc2FDY2Ng81NTULNDQ0BzQ0MwQzMzMCMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQEyMjIEMzMzCTMzMw80NDQXNTU1HzY2 - Nig3NzYwODg3ODg4OD85OTlFOjo5Sjo6Ok87OzpSOzs7VDs7O1Y8PDtXPDw7Vzs7O1Y7OztVOzs6Ujo6 - Ok86OjlLOTk5RTg4OEA4ODc5Nzc3MTY2Nig1NTUgNDQ0FzQ0Mw8zMzMJMjIyBDExMQEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjIyMgYyMjIOMzMzGjQ0 - NCc1NTQ0NTU1QTY2Nk03NzdXODg4YDk5OGc6OjltOjo6cjs7OnY7Ozt4PDw7ejw8PHw9PTx8PT08fDw8 - PHw8PDt7PDw7eTs7OnY6OjpyOjo5bjk5OGg4ODhhNzc3WDY2Nk42NjVCNTU0NTQ0NCczMzMaMjIyDzIy - MgcyMjICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTECMjIyBzEx - MRIyMjIiMzMzNTQ0NEg1NTRaNjY1aDY2NnM3Nzd8ODg4gj4+PopTU1OaaGhorHl5eLp/f3/GhoaGzoiI - h9OHh4fWhISE1n9/f9N6enrOcnJyxmxsa7teXl6tTk5Omz4+PYs4ODiDNzc3fDc3NnM2NjZpNTU1WjQ0 - NEozMzM2MjIyIzExMRMyMjIIMTExAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw - MAExMTEFMjIyEDExMSMyMjI8MzMzVjQ0NGw1NTV8NjY2h2BgYKKbm5vGyMjI4t/f3/fe3t7+1dXV/8vL - y/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+tra2/rW1tfijo6Pkg4ODx1lZ - WaQ3NzaINTU1fDQ0NG0zMzNYMjIyPjExMSQyMjIRMTExBTExMQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgIyMjIJMjIyGjIyMjYyMjJXMzMzdDw8PIuDg4O91tbW7fj4+P/9/f3/9/f3/+rq - 6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8 - vP/CwsL/ysrK/9DQ0P+0tLTvbm5uwDo6Oo0zMzN1MjIyWTIyMjkyMjIcMjIyCjIyMgIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMxMTENMjIyIzExMUUyMjJpWlpansnJye7p6en/8fHx/vj4 - +P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6ur - q/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/srKy/pSUlPBNTU2jMjIyazExMUcyMjIlMTExDjEx - MQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMxMTEOMjIyJjExMUlTU1OH0tLS+eHh - 4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wl - pf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/srKy/p+fn/6Li4v7RkZGjzEx - MUwyMjIoMTExDzExMQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgIyMjIMMjIyITIy - MkGdnZ3H2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vLy//CwsL/urq6/7Oz - s/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8vP/CwsL/ysrK/9DQ0P/Gxsb/srKy/6Cg - oP+NjY3/aWlp0DIyMkMyMjIjMjIyDTIyMgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEx - MQExMTEHMjIyFzExMTCoqKjQ2NjY/+Hh4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vL - y/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ - 0P7Gxsb/srKy/p+fn/6NjY3/cHBw2TExMTIyMjIYMTExCDExMQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIEMjIyDDIyMh2oqKjJ2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq - 6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+ura3/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8 - vP/CwsL/ysrK/9DQ0P/Gxsb/srKy/6CgoP+NjY3/cnJy0zIyMh4yMjINMjIyBDIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEBMjIyBTU1NQ2oqKjE2NjY/+Hh4f7p6en/8fHx/vj4 - +P78/Pz+7Ozr/9XU0/7Ew8H+uri2/7Owrv6vrKr+rquo/62qp/6tqqf+raqn/62qp/6tqqf+raqn/62q - qP6urKr+srCu/7e2tf6/v77/ycnJ/tDQ0P7Gxsb/srKy/p+fn/6NjY3/c3NzzzMzMw40NDQFMTExAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0AXNzcwS3t7fB2NjY/+Hh - 4f7p6en/4uHg/s7Myv66uLX+sa6r/7Guq/6xrqv+sa6r/7Guq/6xrqv+sa6r/7Guq/6xrqv+sa6r/7Gu - q/6xrqv+sa6r/7Guq/6xrqv+sa6r/7Guq/6xrqv/tLGv/r68uv7Av77/srKy/p+fn/6NjY3/d3d3zFlZ - WQQ8PDwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGx - sQHMzMy/2NjY/9XU0/7Avbv/tbKv/rWyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wy - r/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq//tbKv/rWyr/61sq//tLKv/qWl - pP6NjY3/enp6y3R0dAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs6/x8XE/7m3tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+mpaP/fHx8ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHxcS/vru4/727uP6+u7j/vbu4/r27uP69u7j+vru4/767 - uf7Bv7z+w8G//8LAv/6/vbz+u7q4/7e2tP60srH+sbCu/6+urP6vrqz+srGv/7G0r/6rtqz+prep/664 - rv65urX/vbu4/r27uP6+u7j/vbu4/r27uP6+u7j/mJeWywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwr+9xcPA/8K/vP7Cv7z/wr+8/svJ - xv7d3Nr+5+bl/+fm5v7f397+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/5Smm/5spoH+Tadu/zyo - ZP44qGH+OKhh/zioYf4/qWb/Wq13/oe1lf65vbf/wr+8/sK/vP7Ewr//ube0ygAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHxcKC09HP/8jG - w//U0tD/6eno//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+mran/haiS/3Gn - hf9rpoH/Tqdv/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9AqWb/hLaU/8PDv//T0c//xMO/kQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADPzswK0tHPyuDf3/7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Oz - s/6urq7+qamp/6Wlpf6kpKT+pqem/3ypjf47qGL+OKhh/zenYP44qGH/N6dg/jenYP44qGH/N6dg/lau - dv6svrDVn7ynDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADS0dEt2NjY8eHh4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vL - y/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6LrZj+PKhj/zenYf44qGH/N6dh/jen - Yf44qGH/N6dh/jenYf4/pWT0Wql3OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NCm2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq - 6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/k7Kf/z2r - aP84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl6zmqaCsAAAAAAAAAAAAAAAA3rGkZN6tmmDer - ZysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/8fHx/vj4 - +P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6ur - q/6wsLD+t7e3/5O3ov5FtHf/OK5s/jeta/43rWv/N61r/jeta/43rWv/N61r/jeta903r20WAAAAADau - bUc3rWvlN61r/jeta1UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh - 4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6ura3+qamp/6Wl - pf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP6Ku6H/SbuB/jexcf43sXD/NrFw/jaxcP43sXD/NrFw/jax - cP43sXG2NrFxhzaxcPs3sXD/NrFw/jawbzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0NC/2NjY/+Hh4f/p6en/8fHx//j4+P/8/Pz/7u3t/9bW1P/GxcP/u7m3/7WysP+xrqv/r6yp/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66sqf+vrav/s7Gv/7i3tv/Av7//db6a/0m+hf83s3b/N7N2/zez - dv83s3b/N7N2/zezdv83s3b/N7N2/zezdv83s3b/N7N2/DazdBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/4+Li/tDOzf68urf+sq+s/7Guq/6xrqv+sa+s/7Gu - q/6xrqv+sa+s/7Guq/6xrqv+sa+s/7Guq/6xrqv+sa+s/7Guq/6xrqv+sa+s/7Guq/6xr6z/r7Gs/li8 - jv4/u4L/NrZ6/ja2ev42t3r/NrZ6/ja2ev42t3r/NrZ6/ja2ev42t3r/NrZ68ja1eQcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/9XU1P7Avrz/tbKv/rWyr/61sq/+tbKv/7Wy - r/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wy - r/61sq//tbKv/pS0ov5NxJH/Nbl//jW5f/42uX//Nbl//jW5f/42uX//Nbl//jW5f/42uX//Nbl/2wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs6/x8XE/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv9jvpf/RcOP/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruDvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFxMO/u7i2/7u4 - tf67uLb/u7i1/ru4tf67uLX+u7i2/7u5tv6+vLn+wb68/8C+vf6+vLr+uri3/7a1s/6zsbD+sK+t/66t - rP6uraz+sbCu/7Wzsf64trT+uri1/7u4tf67uLb/u7i1/ru4tf51u53/P8KO/jW9hv41vYf/Nb2G/jW9 - hv41vYf/Nb2G/jW9hv42vof/Nr6HnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADBv7y8wsC9/768uf6+vLn/vry5/sfFwv7a2Nf+5eTj/+bm5f7e3t7+1dXV/8vLy/7CwsL+urq6/7Oz - s/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e2/7y8vP7BwL//vMG9/mm+nP41v4r/NL+K/jS/ - iv41v4r/NL+K/jS/iv41v4r/NL+K/jS/iv48w4//N8CLgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADDwL580M7M/8PBvv/Qzs3/5+fm//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vL - y//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8vP+pwrn/TMKW/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP9Bx5b/OcKPYgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMy8kHzs3Lwd/f3v7p6en/8fHx/vj4+P79/f3+9vb2/+rq - 6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e3/668 - t/4/w5T/OsSS/jfDkP41wo7/NMKO/jTCjv41wo7/NMKO/jTCjv41wo7/NMKO/jTCjv5Gypv/PMWURAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0NAq2NjY8OHh4f/p6en/8fHx//j4 - +P/9/f3/9/f3/+rq6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6ur - q/+wsLD/t7e3/7q8u/+PwrD/eser/2rKqP9VyaD/RMma/0TKm/9Gy53/SMue/0XKm/89xpb/NcOQ/zbD - kf9NzqH/P8eXIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NCk2NjY/+Hh - 4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wl - pf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/r7Oy/o6mnf5xno7/WJ+F5EPA - lKBGyZzGTc6i60/Oo/Q9xpWTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0NC/2NjY/+Hh4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Oz - s/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/srKy/p+f - n/6NjY3/eXx7ywAAAAAAAAAARMmaA0LImQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vL - y//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8vP/CwsL/ysrK/9DQ - 0P/Gxsb/srKy/6CgoP+NjY3/e3t7ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/8fHx/vj4+P78/Pz+7+/u/9jX - 1v7HxsT+vLq4/7WzsP6xrqz+r6yp/66rqP6uq6j+rquo/66rqP6tq6j+rauo/66rqf6vrav+s7Gw/7i3 - tv7AwL//ysrK/tDQ0P7Gxsb/srKy/p+fn/6NjY3/e3t7ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/5eTk/tLR - z/6/vbr+tLGu/7Owrf6zsK3+s7Ct/7Owrf6zsK3+s7Ct/7Owrf6zsK3+s7Ct/7Owrf6zsK3+s7Ct/7Ow - rf6zsK3+s7Ct/7Owrf6zsK3/t7Sy/sC/vf7BwcD/srKy/p+fn/6NjY3/e3t7ywAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/9fX - 1v/EwsD/uba0/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/t7Sz/6alpP+NjY3/e3t7ywAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADPz8+/ysnI/767uf6+u7n/vru5/r67uf6+u7n+vru5/767uf6+u7n+vru5/767uf6+u7n+vru5/767 - uf6+u7n+vru5/767uf6+u7n+vru5/767uf6+u7n+vru5/767uf6+u7n/vru5/r67uf6+u7n/vru5/r67 - uf6npaT/fHx8ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADKyci/w8C+/8PAvv7DwL7/w8C+/sPAvv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PA - vv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PAvv7DwL7/w8C+/sPA - vv7DwL7/w8C+/sPAvv7DwL7/mZiXywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMyse80s/N/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nG - xP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nG - xP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/Pzcv/wL27yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQzsx14+Lh/9LQzv7PzMr/z8zK/s/M - yv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/M - yv7PzMr+z8zK/8/Myv7PzMr/z8zK/s/Myv7PzMr/z8zK/tHPzf7j4uH/z83LhQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX1dQF2NbUp+no - 6P7f3dz/1dLQ/tTRz/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TR - z/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TRz/7U0c//1NHP/tTRz/7U0tD/3tza/uno6P7Z19W02NbVCAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA3dzaAt3b2WHl5OPh7Ozr/+Xj4v/d29n/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/3drZ/+Tj4v/s6+v/5uXk6N3b - 2Wne3NsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4eAG4uHfVufl5LDr6+rx7u7t/+vq6f7n5uX+5OLh/+Lg - 3v7g3tz+393b/9/c2v7f3Nr+39za/9/c2v7f3dv+4N7c/+Lg3v7k4uH+5+Xk/+vq6f7u7e3/7Ovq8+fm - 5LTj4d9c4+LhBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo5uUL5+blPejn - 5nTq6eih7Ovqx+3s6+Pu7e3z7+7u/u/u7v7v7+7+7+/u/+/u7v7v7u7+7u7t8+3s7OTs6+rJ6unoo+jn - 5nbn5uRB6OfmDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvq6QLr6uoK6+rpEevq6Rvr6ekj6+rpJOvq6Rvr6ukS7OrqCuvq - 6QIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA/+AAAAf/AAD/gAAAAP8AAP4AAAAAfwAA/AAAAAA/AAD4AAAAAB8AAPAA - AAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPgAAAAADwAA+AAAAAAf - AAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8A - AAAA/wAA/wAAAABxAAD/AAAAACEAAP8AAAAAAQAA/wAAAAABAAD/AAAAAAEAAP8AAAAAAwAA/wAAAAAD - AAD/AAAAAAMAAP8AAAAAAwAA/wAAAAADAAD/AAAAAAMAAP8AAAAAAwAA/wAAAAAHAAD/AAAAAM8AAP8A - AAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/ - AAD/AAAAAP8AAP+AAAAB/wAA/+AAAAf/AAD//AAAP/8AAP//4Af//wAAKAAAACAAAABAAAAAAQAgAAAA - AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMCNTU1BDY2 - Ngc3NzcLODg4Dzk5ORM6OjoWOzs6GDs7Oxk7OzsZOzs7GDo6OhY5OTkTOTk4Dzg4Nws2NjYINTU1BDQ0 - NAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjICMzMzCDQ0 - NBE1NTUcNzc2Jzg4NzE5OTg7Ojo5Qjs7Okc7OztLPDw7TTw8O007OztLOzs6SDo6OUI5OTk7ODg3Mjc3 - Nic2NjUcNDQ0ETMzMwgyMjIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyBDIy - MhAzMzMkNDQ0OjY2NU43NzdeODg4azk5OXQ7Ozp6PDw8f0RERIdISEiNSEhHjUNDQ4c8PDx/Ozs6ezo6 - OXQ4ODhrNzc3XzY2Nk80NDQ7MzMzJTIyMhEyMjIFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgMyMjIRMjIyLzMzM1M1NTRwPDw7hHBwcKmdnZ3Jtra14MHBwfHCwsL8uLi4/6+vr/+oqKj/pKSk/6am - pv2ioqLxmJiY4YODg8pjY2OrOzs7hTU1NHEzMzNVMjIyMTIyMhIyMjIDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyCDIyMiQyMjJUPT09g5WVlcnn5+f3/Pz8//Pz8//i4uL/0tLS/8TExP+4uLj/r6+v/6io - qP+kpKT/qKio/6+vr/+4uLj/wcHB/8zMzP/CwsL4eXl5yzs7OoYyMjJWMjIyJjIyMggAAAAAAAAAAAAA - AAAAAAAAAAAAABkZGQEyMjILMjIyLkBAQHDExMTt5+fn//Pz8//8/Pz/8/Pz/+Li4v/S0tL/xMTE/7i4 - uP+vr6//qKio/6SkpP+oqKj/r6+v/7i4uP/BwcH/zMzM/8rKyv+urq7/h4eH7zs7O3UyMjIwMjIyCx8f - HwEAAAAAAAAAAAAAAAAAAAAAAAAAADIyMggyMjImfHx8ntra2v/n5+f/8/Pz//z8/P/z8/P/4uLi/9LS - 0v/ExMT/uLi4/6+vr/+oqKj/pKSk/6ioqP+vr6//uLi4/8HBwf/MzMz/ysrK/66urv+RkZH/WFhYpTIy - MigyMjIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAzIyMhOBgYGU2tra/+fn5//z8/P//Pz8//Pz - 8//i4uL/0tLS/8TExP+4uLj/r6+v/6ioqP+kpKT/qKio/6+vr/+4uLj/wcHB/8zMzP/Kysr/rq6u/5GR - kf9cXFycMjIyFDIyMgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk5BYSEhIba2tr/5+fn//Ly - 8v/r6+r/1NLR/8C+vP+1s7D/sK2q/66rqP+uq6j/rquo/66rqP+uq6j/r6yq/7Kwrv+5t7b/xsXE/8nJ - yf+urq7/kZGR/2BgYI45OTkGMDAwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwcHBgNnZ - 2f/Qz87/vLm3/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/trOx/7Cvrv+SkpL/eHh4iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADMzMt/wL68/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6t7X/ube0/7m2tP+5t7T/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7Kwrf+GhoWHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMXDwX7CwL3/wb67/8K/vP/Qzsz/2tjX/9fX1v/Pz8//xMTE/7i4uP+vr6//pqin/4Wl - kf9oqH//Wqt3/1asdf9jrn3/g7OS/7O7sv/Bvrv/wr+9/7GvrYcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAycbEPtHPzfzX1tX/7+/v//z8/P/z8/P/4uLi/9LS0v/ExMT/uLi4/6yv - rf+MqJb/gKWN/2Kne/84qGH/OKhh/zioYf84qGH/O6hj/3m0jf/KzMj+vsG7RwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0M8U2dnZ4+fn5//z8/P//Pz8//Pz8//i4uL/0tLS/8TE - xP+4uLj/r6+v/6ioqP+kpKT/qKio/4Kskf85qGL/OKhh/zioYf84qGH/OKhh/02obuhrroMZAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0HTa2tr/5+fn//Pz8//8/Pz/8/Pz/+Li - 4v/S0tL/xMTE/7i4uP+vr6//qKio/6SkpP+oqKj/r6+v/4uym/87rGn/N6tm/zerZv83q2b/N6tm/zir - Z9A3rGoOAAAAADetajo3q2ekAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQf9ra2v/n5+f/8/Pz//z8 - /P/z8/P/4uLi/9LS0v/ExMT/uLi4/6+vr/+oqKj/pKSk/6ioqP+vr6//uLi4/4q7of8/tXf/N7Bv/zew - b/83sG//N7Bv/zewcK83sHB5N7Bv+jawb9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NB/2tra/+fn - 5//z8/P/7ezs/9XU0//CwL7/t7Sy/7GvrP+vrKn/r6yp/6+sqf+vrKn/r6yp/7Ctq/+zsa//ubi3/3S8 - mP89uHz/NrR3/za0d/82tHf/NrR3/za0d/82tHf/NrR2tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0H/Z2dn/0c/O/7y6t/+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/rrGs/1O/j/82uH7/Nrh+/za4fv82uH7/Nrh+/za4fv82uH2XAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzMvLf7+9u/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7i1s/+3tbL/uLWz/7m2 - s/+5trP/ubaz/7m2s/+5trP/h7qj/0HBjf82vIT/NryE/za8hP82vIT/NryE/za8hHkAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADCwL5+v726/727uP++vLn/zcvJ/9jW1f/W1dT/z87O/8PDw/+4uLj/r6+v/6io - qP+kpKT/qaio/7GwsP+5uLf/vr28/6++tf9UvpT/Nb+J/zW/if81v4n/Nb+J/zW/if84wIv/N8CKWwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXCwDrNy8n71NPS/+/u7v/8/Pz/8/Pz/+Li4v/S0tL/xMTE/7i4 - uP+vr6//qKio/6SkpP+oqKj/r6+v/7i4uP+YwLL/P8KR/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/z7F - lP87w5E8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz87NEtjY2ODn5+f/8/Pz//z8/P/z8/P/4uLi/9LS - 0v/ExMT/uLi4/6+vr/+oqKj/pKSk/6ioqP+vr6//uLi4/4bCrP9kyKT/Tsec/z/Hlv9AyJj/QciZ/zvF - lP81w5D/RMqb/z3GlRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NBz2tra/+fn5//z8/P//Pz8//Pz - 8//i4uL/0tLS/8TExP+4uLj/r6+v/6ioqP+kpKT/qKio/6+vr/+4uLj/wcHB/8zMzP/Kysr/qa+t/4Cb - kf9cn4e0SMSZfkvNoKRDyZp5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/a2tr/5+fn//Pz - 8//8/Pz/8/Pz/+Li4v/S0tL/xMTE/7i4uP+vr6//qKio/6SkpP+oqKj/r6+v/7i4uP/BwcH/zMzM/8rK - yv+urq7/kZGR/3l/fIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQf9ra - 2v/n5+f/8/Pz/+7u7f/X1dT/w8G//7e1s/+yr6z/sK2q/6+sqf+vrKn/r6yp/6+sqf+wrav/s7Gv/7q5 - t//Hxsb/ysrK/66urv+RkZH/fHx8hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0NB/2dnZ/9PS0f/Avbz/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+5t7X/srCv/5KSkv98fHyHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7NzX/Fw8H/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/tbKx/4aGhocAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzMnIfsvJxv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/Kx8X/trSyhgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRz802397d+dPQzv/Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0s/N/+De3fzQzsw/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc2tlB5eTj1+Ti4f/c2dj/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/3NnX/+Pi4f/m5OPc3dvZRgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADh394C5OPhSeno - 55zq6unc6ejn/ujn5v/m5eP/5ePi/+Xj4f/l4+H/5ePi/+bl4//o5+b/6ejn/urp6N7q6eie5ePiTOLg - 3wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADp5+YP6ujnNevq6VDs6+pi7Ovqa+zr6mvs6+pj6+rpUOro5zbp5+YQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AAB/+AAAH/AAAA/gAAAH4AAAB8AA - AAPgAAAH4AAAB/AAAAf4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAAn4AAAB+AAAAfgAAAH4AAAB+AAAAfgA - AAH4AAAB+AAAA/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/wAAD/+AAB//+AH/ygAAAAYAAAAMAAAAAEA - IAAAAAAAYAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgM1NTUINzc3Djg4 - OBU6OjkaOzs6Hzs7OyE7OzohOzs6Hzo6ORs5OTgVNzc3DjY2NQgzMzMDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAwMDADMjIyDTQ0NCA2NjU1Nzc3SDk5OFY6OjpgOzs7Zjw8O2k8PDtpOzs7Zjo6 - OmA5OTlXNzc3SDY2NjY0NDQhMjIyDjExMQMAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQIxMTETMjIyOjQ0 - NGJBQUCBdXV1qZSUk8agoKDZoKCg5JycnOqUlJTqjo6O5ImJidl+fn7HZmZlqj8/P4I0NDRjMzMzPDEx - MRQwMDACAAAAAAAAAAAAAAAAAAAAADExMQYyMjIuPDw8dJycnM3u7u76+vr6/+Xl5f7Q0ND/vr6+/7Cw - sP+np6f+paWl/66urv65ubn/xsbG/8bGxvt8fHzPOTk5dzExMTAyMjIHAAAAAAAAAAAAAAAAAAAAADEx - MQgyMjI0pqam0eXl5f719fX/+vr6/+Xl5f7Q0ND/vr6+/7CwsP+np6f+paWl/66urv65ubn/xsbG/8vL - y/6pqan/cnJy1jExMTYyMjIIAAAAAAAAAAAAAAAAAAAAADExMQMxMTEcwMDA5eXl5f709PT++vr6/uXl - 5f7Q0ND+vr6+/rCwsP6np6f+paWl/q6urv65ubn+xsbG/svLy/6pqan+f39/6jExMR0xMTEEAAAAAAAA - AAAAAAAAAAAAAAAAAABDQ0MGxMTE4OXl5f7m5uX/1dPS/7+9uv60sa7/sK2q/6+sqf+vrKn+r6yp/6+t - qv6zsK7/u7q4/8XEw/6pqan/gYGB5j8/PwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7N38LA - vv63tLL/t7Sx/7e0sf63tLH/t7Sx/7e0sf+3tLH+t7Sx/7e0sf63tLH/t7Sx/7e0sf6zsa//ioqK5QAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw8G/3sC9uv7Cv73+0M7M/tHQzv7JyMf+vb28/rOy - sv6nq6f+hquT/nSuiP5xsIb+hLOT/q+6r/7Avbr+tbOw5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAz83LldnY1/7z8vL/+vr6/+Xl5f7Q0ND/vr6+/6+wr/+Rp5n+gaaO/0qobP44qGH/OKhh/zqo - Yv51tIr/ucS5nQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTUseXl5f719fX/+vr6/+Xl - 5f7Q0ND/vr6+/7CwsP+np6f+paWl/6WtqP5Rq3P/OKlj/zepY/44qWP/QqhpxjylZwoAAAAAN6tmLDan - ZAoAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl5f719fX/+vr6/+Xl5f7Q0ND/vr6+/7CwsP+np6f+paWl/66u - rv6vuLP/VLaB/zevbv43r27/N69u/zevbqo3sG9yN69u+DaubCMAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl - 5f7n5ub+1tTT/sC+vP61sq/+sa6r/rCtqv6wrar+sK2q/rCtq/6zsa/+pbes/ka6g/42tXj+NrV4/ja1 - eP42tXj+NrV4+zChaggAAAAAAAAAAAAAAAAAAAAAz8/O38G/vf62s7H/trOx/7azsP62s7H/trOx/7az - sf+2s7D+trOx/7azsP62s7H/trOx/3+7n/45vIT/NrqB/zW6gf42uoH/NrqB5QAAAAAAAAAAAAAAAAAA - AAAAAAAAwb+83r26t/6/vLn+zcvJ/s/Ozf7Ix8b+vby7/rKysf6rqqr+q6qp/rKxsP66ubf+vby6/nS8 - nv43v4r+Nb6I/jW+iP41voj+OL+KxwAAAAAAAAAAAAAAAAAAAAAAAAAAy8nHkdfW1f7y8vL/+vr6/+Xl - 5f7Q0ND/vr6+/7CwsP+np6f+paWl/66urv62ubj/XMOd/zXCjv41wY3/NcGN/zTBjf41wY3/P8aVqQAA - AAAAAAAAAAAAAAAAAAAAAAAA1NTUr+Xl5f719fX/+vr6/+Xl5f7Q0ND/vr6+/7CwsP+np6f+paWl/66u - rv65ubn/pcW6/5XKt/5xu6H/VrWT+EPGmNlCyZn3Q8mabQAAAAAAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl - 5f709PT++vr6/uXl5f7Q0ND+vr6+/rCwsP6np6f+paWl/q6urv65ubn+xsbG/svLy/6pqan+g4SE5QAA - AAAyoXoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl5f7o6Of/2NbV/8G/vf62s7H/sa+s/7Cu - q/+wrqv+sK2r/7GurP60srD/vby6/8bFxf6pqan/hISE5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA0NDP38bEwv67uLb/u7i2/7u4tv67uLb/u7i2/7u4tv+7uLb+u7i2/7u4tv67uLb/u7i2/7u4 - tv62tLL/i4qK5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy8jH3sbDwf7Gw8H+xsPB/sbD - wf7Gw8H+xsPB/sbDwf7Gw8H+xsPB/sbDwf7Gw8H+xsPB/sbDwf7Gw8H+u7m35AAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA2dfViNrY1/7Sz83/0c7M/9HOzP7Rzsz/0c7M/9HOzP/Rzsz+0c7M/9HO - zP7Rzsz/0c7M/9HOzP7a2Nb/2dfVkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHf - 3lLn5eTB5OLh++Hf3v7e3Nr/3drY/9zZ1//c2df+3drY/97c2v7h397/5OLh/Obl5MPi4N9Wy8nIAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA393cEuno5kXs6+pr7ezrg+3s - 64/t7OuP7ezrg+zr6mzp6OdG4+LgEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4AB8A4AAHAMAA - AwDAAAMAwAADAMAAAwDgAAcA8AAPAPAADwDwAA8A8AAEAPAAAADwAAAA8AABAPAAAQDwAAEA8AABAPAA - CwDwAA8A8AAPAPAADwDwAA8A+AAPAP4AfwAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMDAwBzY2NhM4ODgiOjo6LDs7OzI7OzsyOjo6LTg4OCI2NjYUMTExBwAA - AAAAAAAAAAAAAAAAAAAaGhoBMjIyFTQ0NEhGRkZ3cXFxon5+frp9fX3EdnZ2xHBwcLpjY2OjQ0NDdzQ0 - NEkyMjIWHh4eAQAAAAAAAAAAJSUlBTU1NUWfn5/O9PT0/evr6//Ly8v/s7Oz/6ampv+rq6v/vLy8/8nJ - yf16enrPNDQ0SCgoKAUAAAAAAAAAACMjIwNYWFhb4eHh//f39//r6+v/y8vL/7Ozs/+mpqb/q6ur/7y8 - vP/Ly8v/oKCg/0ZGRl8nJycDAAAAAAAAAAAAAAAAdHR0Q9va2v/T0tD/v726/7Owrv+xrqv/sa6r/7Gu - rP+1srD/vr27/6CgoP9YWFhHAAAAAAAAAAAAAAAAAAAAAIqJiD+/vbr/wr+8/8nHxv/CwL//t7W0/6eu - qP+OsZj/jLKX/6q3q/+8ubb/eXh3QwAAAAAAAAAAAAAAAAAAAACMiokU2tnY9/b29v/r6+v/y8vL/7Oz - s/+Wppz/camF/zioYf84qGH/crSJ+XaaghgAAAAAAAAAAAAAAAAAAAAAjo6OPeHh4f/39/f/6+vr/8vL - y/+zs7P/pqam/6urq/+CtJf/Oa9t/zeta/83rmyjN69tazeta14AAAAAAAAAAI6Ojj/b2tr/1NLR/8C9 - u/+0sa7/sa+s/7GurP+xr6z/tbOw/2y5lP82tnr/NrZ6/za2ev8xpm5TAAAAAAAAAACJiIc/vbu4/7+8 - uv/IxsT/wb++/7a0s/+vrqz/s7Gw/7q4tv+Ru6j/OL+J/zW9hv82vof/K5ZqNQAAAAAAAAAAiomIE9jX - 1/b29vb/6+vr/8vLy/+zs7P/pqam/6urq/+jvLP/ScSX/zrEkv85xJL/O8WT/yeEYhYAAAAAAAAAAI6O - jjzh4eH/9/f3/+vr6//Ly8v/s7Oz/6ampv+rq6v/vLy8/8vLy/+aop//W5yFbjmvhkcAAAAAAAAAAAAA - AACOjo4/29vb/9bU0//CwL7/trOx/7Owrv+zsK3/s7Cu/7e1s//Av73/oaCg/2NjY0MAAAAAAAAAAAAA - AAAAAAAAjIyLP8bDwf/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8G/vf96enlDAAAAAAAA - AAAAAAAAAAAAAISDgg3d29rE2NXU/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9jV1P/d29rHlpSTDwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrJyDnp6Od66efmoOjn5rLo5+az6efmoeno53vPzsw6AAAAAAAA - AAAAAAAAAAAAAOAHAACAAQAAgAEAAIABAADAAwAAwAMAAMADAADAAAAAwAAAAMAAAADAAAAAwAEAAMAD - AADAAwAAwAMAAPAPAAA= - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertAlarms/App.config b/PROMS/BarakahConvert/ConvertAlarms/App.config deleted file mode 100644 index 21e3ff00..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/App.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - -
- - - - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMS_Barakah - - - 0 - - - - diff --git a/PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj b/PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj deleted file mode 100644 index 12e0442d..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj +++ /dev/null @@ -1,145 +0,0 @@ - - - - - Debug - AnyCPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1} - WinExe - Properties - ConvertAlarms - ConvertAlarms - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - False - ..\..\..\..\..\..\..\Program Files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS User Interface\bin\Debug\log4net.dll - - - - - - - - - - - - - - False - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll - - - - - Form - - - Form - - - frmConvertAlarms.cs - - - - - Form - - - frmConvertAlarms.cs - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - Designer - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs b/PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs deleted file mode 100644 index 2fe1e04e..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs +++ /dev/null @@ -1,197 +0,0 @@ -using C1.Win.C1FlexGrid; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - -namespace ConvertAlarms -{ - public partial class frmConvertAlarms - { - private static string GetTableText() - { - return _MyFlexGrid.GetSearchableText(); - } - private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level) - { - XmlNode xn2 = xn.SelectSingleNode("tr/td/table"); - if (xn2 != null) xn = xn2; - VlnFlexGrid fg = _MyFlexGrid; - fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point); - fg.Clear(); - fg.Rows.Count = 1; - fg.Cols.Count = 1; - int rows = 0; - fg.MergedRanges.Clear(); - foreach (XmlNode xr in xn.ChildNodes) - { - if (xr.Name == "tr") - { - ++rows; - AddTableRow(xr, fg, rows); - } - } - fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count); - fg.BringToFront(); - fg.Invalidate(); - Application.DoEvents(); - //ShowColumnWidths(fg); - fg.MakeRTFcells(false); - //ShowMergedCells(fg); - //ShowColumnWidths(fg); - //Well, Can I save the table - //using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table)) - //{ - // Grid.MakeGrid(step.MyContent, fg.GetXMLData(), ""); - //} - } - public static VlnFlexGrid _MyFlexGrid = null; - private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows) - { - if (rows > fg.Rows.Count) - fg.Rows.Count = rows; - int cols = 0; - foreach (XmlNode xc in xr.ChildNodes) - { - ++cols; - //if (xc.InnerText.Contains("RC-V200")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerText.Contains("RC-V121")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01")) - // Console.WriteLine("here"); - CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - //Console.WriteLine("Check {0}", cr2); - while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1) - { - cols++; - cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - } - AddMergedCells(fg, rows, cols, xc); - //ShowMergedCells(fg); - if (xc.Name == "td") - { - AddTableColumn(xc, fg, rows, cols); - } - } - } - - //private static void ShowColumnWidths(VlnFlexGrid fg) - //{ - // foreach (Column c in fg.Cols) - // Console.WriteLine("Width[{0}]={1}", c.Index, c.Width); - //} - private static void ShowMergedCells(VlnFlexGrid fg) - { - for (int r = 0; r < fg.Rows.Count; r++) - { - for (int c = 0; c < fg.Cols.Count; c++) - { - CellRange cr3 = GetMyMergedRange(fg, r, c); - if (fg.MergedRanges.Contains(cr3)) - Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3); - } - } - } - private static int GetSpan(string span) - { - int retval = int.Parse("0" + (span ?? "")); - if (retval == 0) return 0; - return retval - 1; - } - private static string GetAttribute(XmlNode xc, string attName) - { - string retval = null; - XmlAttribute xa = xc.Attributes[attName]; - if (xa != null) - retval = xa.Value; - return retval; - } - private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc) - { - string colspan = GetAttribute(xc, "colspan"); - string rowspan = GetAttribute(xc, "rowspan"); - if (colspan != null || rowspan != null) - { - //AddMergedRanges - int r1 = rows; - int c1 = cols; - int r2 = r1 + GetSpan(rowspan); - if (r2 > fg.Rows.Count) fg.Rows.Count = r2; - int c2 = c1 + GetSpan(colspan); - if (c2 > fg.Cols.Count) fg.Cols.Count = c2; - CellRange cr = new CellRange(); - cr.r1 = r1 - 1; - cr.r2 = r2 - 1; - cr.c1 = c1 - 1; - cr.c2 = c2 - 1; - fg.MergedRanges.Add(cr); - //Console.WriteLine("Merged {0}", cr); - } - } - - private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c) - { - foreach (CellRange cr in fg.MergedRanges) - { - if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c) - return cr; - } - return fg.GetMergedRange(r, c); - } - private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled); - private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols) - { - //Console.WriteLine("Rows {0}, Cols {1}", rows, cols); - if (cols > fg.Cols.Count) - fg.Cols.Count = cols; - string width = GetAttribute(xc, "width"); - if (width != null && width != "" && regNumber.IsMatch(width)) - { - if (width.EndsWith("%")) - fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100); - else - { - int w = int.Parse(width)*96/72; - //Console.WriteLine("w[{0}]={1}", cols - 1, w); - fg.Cols[cols - 1].Width = w; - } - } - StringBuilder sb = new StringBuilder(); - string prefix = ""; - foreach (XmlNode xn in xc.ChildNodes) - { - if (xn.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - if (xn.Name == "ul") - { - foreach (XmlNode xn2 in xn.ChildNodes) - { - if (xn2.Name == "li") - { - sb.Append(prefix + "*" + xn.InnerText); - } - if (xn2.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - } - } - } - if (width != null && width != "" && !regNumber.IsMatch(width)) - { - Console.WriteLine("width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml); - } - fg[rows - 1, cols - 1] = sb.ToString(); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Program.cs b/PROMS/BarakahConvert/ConvertAlarms/Program.cs deleted file mode 100644 index 8310498a..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ConvertAlarms -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmConvertAlarms()); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/ConvertAlarms/Properties/AssemblyInfo.cs deleted file mode 100644 index dac475e1..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ConvertAlarms")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ConvertAlarms")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("80225e3c-f32e-41b5-8b31-b8301eea4831")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs deleted file mode 100644 index 64b6e041..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +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. -// -//------------------------------------------------------------------------------ - -namespace ConvertAlarms.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConvertAlarms.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx b/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs deleted file mode 100644 index ae4e7496..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs +++ /dev/null @@ -1,110 +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. -// -//------------------------------------------------------------------------------ - -namespace ConvertAlarms.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1000, 600")] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string FileName { - get { - return ((string)(this["FileName"])); - } - set { - this["FileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("250")] - public int Split1 { - get { - return ((int)(this["Split1"])); - } - set { - this["Split1"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute(".\\Sql2008Express")] - public string SqlServer { - get { - return ((string)(this["SqlServer"])); - } - set { - this["SqlServer"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("VEPROMS_Barakah")] - public string Database { - get { - return ((string)(this["Database"])); - } - set { - this["Database"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int ProcedureSet { - get { - return ((int)(this["ProcedureSet"])); - } - set { - this["ProcedureSet"] = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.settings b/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.settings deleted file mode 100644 index 0db0a3a8..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMS_Barakah - - - 0 - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/licenses.licx b/PROMS/BarakahConvert/ConvertAlarms/Properties/licenses.licx deleted file mode 100644 index c4eba94b..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs b/PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs deleted file mode 100644 index 5ae74478..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs +++ /dev/null @@ -1,517 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - -namespace ConvertAlarms -{ - public partial class frmConvertAlarms : Form - { - //private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo) - private static DocVersionInfo DVI; - private void SaveProcedure(string text, string procNumber, string procTitle, string fileName) - { - MatchCollection mc = Regex.Matches(text, "pNote"); - if (mc.Count > 1) Console.WriteLine("-------> {0} Notes", mc.Count); - // Add Procedure Number and Title - ItemInfo prev = null; - //if (serialNo == 999999) - prev = DVI.MyItem == null ? null : DVI.MyItem.LastSibling; //FindLocation(DVI.MyItem,procNumber); - //else - //{ - // prev = FindPrevious(dicSerialNo, serialNo); - //} - using (Procedure prc = Procedure.MakeProcedure(DVI, prev, procNumber, procTitle, 0)) - { - MyLookUp = DVI.DocVersionAssociations[0].MyROFst.GetROFSTLookup(DVI); - if (MyLookUp.GetROIDByAccPagID("ALR-" + procNumber, "SP", "IG") == null) - { - prc.MyContent.Config = MakeConfig("", - prcSerialNoValue, prcTitleValue, prcNumberValue, prcSourceValue, prcSetpointValue, FullName.Substring(0, 13), FullName.Substring(14)); - Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Missing Referenced Object " + procNumber , null); - } - else - prc.MyContent.Config = MakeConfig("", - FullName.Substring(0, 13), FullName.Substring(14)); - prc.MyContent.Config = prc.MyContent.Config.Replace("<",string.Format("<",RevisionNumber)); - Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Info"), null, GetAnnotationText(fileName), null); - - ProcedureInfo prci = ProcedureInfo.Get(prc.ItemID); - // dicSerialNo.Add(serialNo, prci); - // Console.WriteLine("{0},{1}", serialNo, prci.ShortPath); - // Add Section - using (Section sec = Section.MakeSection(prci, null, null, "Procedure Content", 10006)) - { - sec.SectionConfig.Section_ColumnMode = SectionConfig.SectionColumnMode.One; - sec.SectionConfig.Section_Pagination = SectionConfig.SectionPagination.Separate; - sec.Save(); - SectionInfo seci = SectionInfo.Get(sec.ItemID); - // TODO: Add High Level Steps - // TODO: Add Substeps - MemoryStream ms = GetMemoryStream(text); - Queue qread = new Queue(); - using (StreamReader sr = new StreamReader(ms)) - fillQueue(qread, sr); - - Dictionary lookup = new Dictionary(); - lookup.Add(0, prci); - lookup.Add(1, seci); - int level = 2; - int type = 20001; - int lastLevel = 2; - int lastType = 0; - int lastIndent = 0; - int extra = 0; - string lastTab = ""; - int? DeQueueType = null; - E_FromType myFromType = E_FromType.Step; - Queue enQueue = null; - Queue deQueue = null; - int deQueueLevel = 0; - int deQueueLevelLast = 0; - bool wasFromQueue; - bool firstQueue = false; - ItemInfo deQueueItem = null; - bool saveDeQueueInfo = false; - bool isTable = false; - bool lastWasTable = false; - string tableText = null; - string tab = ""; - bool strangeBullet = false; - while (qread.Count > 0 || deQueue != null) - { - string lineText; - tableText = null; - if (deQueue != null) - { - wasFromQueue = true; - extra = 1; - lineText = deQueue.Dequeue().Trim(); - if (deQueue.Count == 0) - deQueue = null; - if (Regex.IsMatch(lineText, "(NOTE|CAUTION|WARNING)")) - { - Console.WriteLine("Level {0} Type = {1}", deQueueLevel, DeQueueType); - switch (lineText) - { - case "": - DeQueueType = 20007; - break; - case "": - DeQueueType = 20006; - break; - case "": - DeQueueType = 20020; - break; - } - firstQueue = true; - lineText = "\t" + deQueue.Dequeue(); - while (deQueue.Count > 0 && deQueue.Peek().ToString().Trim().StartsWith("\u2022") == false && !Regex.IsMatch(deQueue.Peek(), "<(NOTE|CAUTION|WARNING)>")) - lineText += " " + deQueue.Dequeue(); - myFromType = E_FromType.Note; - } - if (deQueue.Count == 0) - { - deQueue = null; - } - } - else - { - wasFromQueue = false; - DeQueueType = null; - extra = 0; - //if (NextLine != null) - //{ - // lineText = NextLine; - // NextLine = null; - //} - //else - //{ - lineText = qread.Dequeue().TrimEnd(" ".ToCharArray()); - while (lineText.Trim() == "" || lineText.Trim() == "" || lineText.Trim() == "") - { - if (enQueue == null) enQueue = new Queue(); - lineText = qread.Dequeue().Trim(); - //Console.WriteLine("======> {0},Count Before = {1} ", lineText.Trim(), enQueue.Count()); - while (lineText != "" && lineText != "" && lineText != "") - { - enQueue.Enqueue(lineText.Trim()); - lineText = qread.Dequeue().Trim(); - } - lineText = qread.Dequeue().Trim(); - //Console.WriteLine("======> {0},Count After = {1} ", lineText.Trim(), enQueue.Count()); - } - if (lineText == ">") lineText = lineText.Replace(">", ""); - else lineText = lineText.Replace("<", "<").Replace(">", ">"); - //} - HasSpecialCharacters(lineText); - if (lineText.StartsWith("")) - { - while (!lineText.Contains("
")) - { - lineText += " " + qread.Dequeue(); - lineText = Regex.Replace(lineText, ".*", ""); - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(lineText); - LoadTable2(xd.DocumentElement, null, 0); - - isTable = true; - if (!lastWasTable) level = lastLevel + 1; - else level = lastLevel; - type = 20008; - tableText = GetTableText(); - //StringBuilder sbxml= new StringBuilder(); - //using(StringWriter sw = new StringWriter(sbxml)) - // _MyFlexGrid.WriteXml(sw); - //using(StringReader sr= new StringReader(sbxml.ToString())) - // _MyFlexGrid.ReadXml(sr); - //Application.DoEvents(); - } - else lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - } - if (lineText.Replace("\t", "").Replace(" ", "") != "") - { - lastLine = lineText; - Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|[A-Z]\.|\u2022|)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - if (m.Groups[4].Value != "") - { - tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - if (isTable) - { - // do nothing - if (lastWasTable) - level = lastLevel; - else - level = 1 + lastLevel; - type = 20008; - myFromType = E_FromType.Table; - } - else if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 2; - type = 20002; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*")) // Sub-Substep - { - level = 4; - type = 20001; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*")) // Substep - { - level = 3; - type = 20001; - } - else if (Regex.IsMatch(tab, "[A-Z]\\.")) // Sub-Substep - { - level = 5; - type = 20001; - } - else if (tab == "") // Paragraph - { - level = lastLevel + 1; - type = 20024; - } - else if (tab == "\u2022")//bullet - { - if (firstQueue) - level = lastLevel + 1; - else if (lastTab == "\u2022") - level = lastLevel; - else - if (lastType == 20007 && lastTab == "") - level = lastLevel + 1; - else - { - level = indent + 3; - strangeBullet = true; - } - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - else if (tab == "\u25CB")//bullet - { - level = indent + 4; - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - //while (level < lastLevel) - // lookup.Remove(lastLevel--); - if (firstQueue && deQueueLevelLast > 0) level = deQueueLevelLast+1; - while (level < lookup.Count - 1) - lookup.Remove(lookup.Count - 1); - lastTab = tab; - lastLevel = level; - //lastIndent = indent; - lastWasTable = isTable; - deQueueLevelLast = deQueueLevel; - } - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - saveDeQueueInfo = true; - enQueue = null; - } - int newType = DeQueueType ?? (isTable ? 20008 : type); - lastType = newType; - - if (enQueue == null) - { - if (lookup.Count < level) - { - using (Step stp = (lookup[lookup.Count - 1] as StepInfo).Get()) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, GetAnnotationText2(lineText), null); - } - } - else if (lookup.Count == level) - { - using (Step stp = Step.MakeStep(lookup[level - 1], null, null, tableText ?? m.Groups[4].Value, newType, myFromType)) - { - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qread); - if (footnote.Length > 0) - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - //Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - lookup.Add(level, myItem); - //Console.WriteLine("+++A tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - } - } - else - { - int previousType = ((int)lookup[level].MyContent.Type); - if (firstQueue && DeQueueType != null) - { - previousType = (int) DeQueueType; - level = deQueueLevel + 1; - } - using (Step stp = Step.MakeStep(lookup[level - 1], lookup[level], null, tableText ?? m.Groups[4].Value, previousType, myFromType)) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, string.Format("Type Change {0} to {1}", newType, ((int)lookup[level].MyContent.Type)), null); - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - strangeBullet = false; - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qread); - if (footnote.Length > 0) - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - //Console.WriteLine(">>> tab = {0}, Lookup.Count = {1}, Level = {2}", tab, lookup.Count, level); - lookup[level] = myItem; - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - } - } - myFromType = E_FromType.Step; - if (deQueue == null && deQueueItem != null) - { - level = deQueueLevel; - while (level < lookup.Count) - lookup.Remove(lookup.Count - 1); - lookup[level] = deQueueItem; - deQueueItem = null; - DeQueueType = null; - } - } - //else - //{ - // enQueue.Enqueue(lineText); - //} - DeQueueType = null; - } - } - } - } - if (runOne) MessageBox.Show("Done", "Converted"); - } - private ItemInfo FindLocation(ItemInfo myItem, string procNumber) - { - while (myItem != null) - { - if (myItem.DisplayNumber.CompareTo(procNumber) >= 0) - return myItem.MyPrevious; - myItem = myItem.NextItem; - } - return myItem; - } - private string MakeConfig(string fmt, params string [] args) - { - string [] atts = new string[args.Length]; - args.CopyTo(atts,0); - for(int i=0; i",">"); - return string.Format(fmt, atts); - } - - private void fillQueue(Queue qread, StreamReader sr) - { - while(sr.Peek() > 0) - qread.Enqueue(sr.ReadLine()); - } - //private string _NextLine; - - //public string NextLine - //{ - // get { return _NextLine; } - // set { _NextLine = value; } - //} - private string GetFootNote(MemoryStream ms, Queue qRead) - { - string sep = ""; - StringBuilder sb = new StringBuilder(); - int lineCount = 0; - string lookingFor = null; - while(qRead.Count > 0) - { - // Read a line at a time - string str = qRead.Peek(); - if(lineCount == 0 && str.StartsWith("

")) - { - lookingFor = "

"; - str = str.Replace("

", ""); - } - lineCount++; - str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace(">", ""); - str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?"); - //str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?"); - // If Text begins with number then - if (lookingFor != null) - { - if (str.Contains(lookingFor)) - { - sb.Append(sep + str.Replace(lookingFor, "")); - return sb.ToString(); - } - } - else if (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("")) - return sb.ToString(); - //append string - if (sb.ToString() != "" && str != "") - sep = "\r\n"; - sb.Append(sep + str); - qRead.Dequeue();// Remove current line from queue - } - return sb.ToString(); - } - - private void ProcessChars(string str) - { - foreach (char c in str) - { - if (c < 0x20 || c > 0x7F) - Console.WriteLine("{0:X4}", (int)c); - } - } - public void ResetSpecial() - { - FoundSpecial = new List(); - } - List FoundSpecial = new List(); - private void HasSpecialCharacters(string lineText) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in lineText) - { - if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c)) - { - Console.WriteLine("*** Special Character {0:X4}", (int)c); - FoundSpecial.Add(c); - } - } - } - - private static string GetAnnotationText(string fileName) - { - return string.Format("FileName:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}" , - fileName,ShortName,FullName,ApSystem,PNSNo ,RelatedFunction); - } - private static string GetAnnotationText2(string lineText) - { - //return string.Format("LineText:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}", - // lineText, ShortName, FullName, apSystem, PNSNo, RelatedFunction); - return string.Format("LineText:{0}", - lineText); - } - } - public class StepLookup : SortedDictionary - { - public StepInfo this[int i] - { - get - { - if (this.ContainsKey(i.ToString())) return base[i.ToString()]; - return null; - } - set - { - if (i > this.Count) - throw new Exception("Gap in Stack"); - if (value == null) - throw new Exception("Null StepInfo"); - //if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution )) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value); - if (this.ContainsKey(i.ToString())) - { - base[i.ToString()] = value; - while (this.ContainsKey((i + 1).ToString())) - base.Remove((base.Count - 1).ToString()); - } - else base.Add(i.ToString(), value); - //ListMySteps("Set ", this); - } - } - public void AddOne(StepInfo previousStep) - { - this[this.Count] = previousStep; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText); - i++; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs b/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs deleted file mode 100644 index e892e41a..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs +++ /dev/null @@ -1,499 +0,0 @@ -namespace ConvertAlarms -{ - partial class frmConvertAlarms - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.tbFileName = new System.Windows.Forms.TextBox(); - this.panel2 = new System.Windows.Forms.Panel(); - this.btnRun = new System.Windows.Forms.Button(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.btnAll = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); - this.btnConvert = new System.Windows.Forms.Button(); - this.label7 = new System.Windows.Forms.Label(); - this.tbServer = new System.Windows.Forms.TextBox(); - this.cmbDatabase = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); - this.cmbDocVersion = new System.Windows.Forms.ComboBox(); - this.label6 = new System.Windows.Forms.Label(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sc1 = new System.Windows.Forms.SplitContainer(); - this.tcXML = new System.Windows.Forms.TabControl(); - this.tpXML = new System.Windows.Forms.TabPage(); - this.tbXML = new System.Windows.Forms.TextBox(); - this.tpColorCoded = new System.Windows.Forms.TabPage(); - this.rtbXML = new System.Windows.Forms.RichTextBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tpHTML = new System.Windows.Forms.TabPage(); - this.wb = new System.Windows.Forms.WebBrowser(); - this.tpRaw = new System.Windows.Forms.TabPage(); - this.tbPROMS = new System.Windows.Forms.TextBox(); - this.tpStructure = new System.Windows.Forms.TabPage(); - this.tv = new System.Windows.Forms.TreeView(); - this.tpGrid = new System.Windows.Forms.TabPage(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tspb = new System.Windows.Forms.ToolStripProgressBar(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tmr = new System.Windows.Forms.Timer(this.components); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).BeginInit(); - this.sc1.Panel1.SuspendLayout(); - this.sc1.Panel2.SuspendLayout(); - this.sc1.SuspendLayout(); - this.tcXML.SuspendLayout(); - this.tpXML.SuspendLayout(); - this.tpColorCoded.SuspendLayout(); - this.tabControl1.SuspendLayout(); - this.tpHTML.SuspendLayout(); - this.tpRaw.SuspendLayout(); - this.tpStructure.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.label1); - this.panel1.Controls.Add(this.tbFileName); - this.panel1.Controls.Add(this.panel2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(954, 88); - this.panel1.TabIndex = 0; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(23, 13); - this.label1.TabIndex = 1; - this.label1.Text = "File"; - // - // tbFileName - // - this.tbFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFileName.Location = new System.Drawing.Point(56, 6); - this.tbFileName.Name = "tbFileName"; - this.tbFileName.Size = new System.Drawing.Size(692, 20); - this.tbFileName.TabIndex = 0; - this.tbFileName.Text = "H:\\Barakah Alarms\\1N2-OP-ARP-CS-0001_Rev_02_FINAL_Zipped_XML_20190804\\ARP-3442-10" + - "01 CS CNMT Spray HDR Block VLV V0001 TRBL.xml"; - // - // panel2 - // - this.panel2.Controls.Add(this.btnRun); - this.panel2.Controls.Add(this.btnBrowse); - this.panel2.Controls.Add(this.btnAll); - this.panel2.Controls.Add(this.label2); - this.panel2.Controls.Add(this.btnConvert); - this.panel2.Controls.Add(this.label7); - this.panel2.Controls.Add(this.tbServer); - this.panel2.Controls.Add(this.cmbDatabase); - this.panel2.Controls.Add(this.label4); - this.panel2.Controls.Add(this.cmbDocVersion); - this.panel2.Controls.Add(this.label6); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(954, 88); - this.panel2.TabIndex = 9; - // - // btnRun - // - this.btnRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnRun.Location = new System.Drawing.Point(862, 3); - this.btnRun.Name = "btnRun"; - this.btnRun.Size = new System.Drawing.Size(37, 24); - this.btnRun.TabIndex = 13; - this.btnRun.Text = "Run"; - this.btnRun.UseVisualStyleBackColor = true; - this.btnRun.Click += new System.EventHandler(this.btnRun_Click); - // - // btnBrowse - // - this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowse.Location = new System.Drawing.Point(758, 3); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(72, 24); - this.btnBrowse.TabIndex = 2; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // btnAll - // - this.btnAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnAll.Location = new System.Drawing.Point(799, 44); - this.btnAll.Name = "btnAll"; - this.btnAll.Size = new System.Drawing.Size(37, 25); - this.btnAll.TabIndex = 12; - this.btnAll.Text = "All"; - this.btnAll.UseVisualStyleBackColor = true; - this.btnAll.Click += new System.EventHandler(this.btnAll_Click); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(396, 35); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(53, 13); - this.label2.TabIndex = 4; - this.label2.Text = "Database"; - // - // btnConvert - // - this.btnConvert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnConvert.Location = new System.Drawing.Point(717, 44); - this.btnConvert.Name = "btnConvert"; - this.btnConvert.Size = new System.Drawing.Size(76, 28); - this.btnConvert.TabIndex = 11; - this.btnConvert.Text = "Convert"; - this.btnConvert.UseVisualStyleBackColor = true; - this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click); - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(12, 35); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(38, 13); - this.label7.TabIndex = 10; - this.label7.Text = "Server"; - // - // tbServer - // - this.tbServer.Location = new System.Drawing.Point(56, 32); - this.tbServer.Name = "tbServer"; - this.tbServer.Size = new System.Drawing.Size(329, 20); - this.tbServer.TabIndex = 9; - // - // cmbDatabase - // - this.cmbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDatabase.FormattingEnabled = true; - this.cmbDatabase.Location = new System.Drawing.Point(455, 32); - this.cmbDatabase.Name = "cmbDatabase"; - this.cmbDatabase.Size = new System.Drawing.Size(256, 21); - this.cmbDatabase.TabIndex = 8; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(11, 61); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(75, 13); - this.label4.TabIndex = 7; - this.label4.Text = "Procedure Set"; - // - // cmbDocVersion - // - this.cmbDocVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDocVersion.FormattingEnabled = true; - this.cmbDocVersion.Location = new System.Drawing.Point(92, 58); - this.cmbDocVersion.Name = "cmbDocVersion"; - this.cmbDocVersion.Size = new System.Drawing.Size(619, 21); - this.cmbDocVersion.TabIndex = 6; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(12, 9); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(23, 13); - this.label6.TabIndex = 1; - this.label6.Text = "File"; - // - // sc1 - // - this.sc1.Dock = System.Windows.Forms.DockStyle.Fill; - this.sc1.Location = new System.Drawing.Point(0, 88); - this.sc1.Name = "sc1"; - // - // sc1.Panel1 - // - this.sc1.Panel1.Controls.Add(this.tcXML); - // - // sc1.Panel2 - // - this.sc1.Panel2.Controls.Add(this.tabControl1); - this.sc1.Size = new System.Drawing.Size(954, 392); - this.sc1.SplitterDistance = 372; - this.sc1.TabIndex = 1; - // - // tcXML - // - this.tcXML.Controls.Add(this.tpXML); - this.tcXML.Controls.Add(this.tpColorCoded); - this.tcXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcXML.Location = new System.Drawing.Point(0, 0); - this.tcXML.Name = "tcXML"; - this.tcXML.SelectedIndex = 0; - this.tcXML.Size = new System.Drawing.Size(372, 392); - this.tcXML.TabIndex = 2; - // - // tpXML - // - this.tpXML.Controls.Add(this.tbXML); - this.tpXML.Location = new System.Drawing.Point(4, 22); - this.tpXML.Name = "tpXML"; - this.tpXML.Padding = new System.Windows.Forms.Padding(3); - this.tpXML.Size = new System.Drawing.Size(364, 366); - this.tpXML.TabIndex = 1; - this.tpXML.Text = "XML"; - this.tpXML.UseVisualStyleBackColor = true; - // - // tbXML - // - this.tbXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbXML.HideSelection = false; - this.tbXML.Location = new System.Drawing.Point(3, 3); - this.tbXML.Multiline = true; - this.tbXML.Name = "tbXML"; - this.tbXML.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbXML.Size = new System.Drawing.Size(358, 360); - this.tbXML.TabIndex = 0; - this.tbXML.TextChanged += new System.EventHandler(this.tbXML_TextChanged); - // - // tpColorCoded - // - this.tpColorCoded.Controls.Add(this.rtbXML); - this.tpColorCoded.Location = new System.Drawing.Point(4, 22); - this.tpColorCoded.Name = "tpColorCoded"; - this.tpColorCoded.Padding = new System.Windows.Forms.Padding(3); - this.tpColorCoded.Size = new System.Drawing.Size(364, 366); - this.tpColorCoded.TabIndex = 0; - this.tpColorCoded.Text = "Color Coded"; - this.tpColorCoded.UseVisualStyleBackColor = true; - // - // rtbXML - // - this.rtbXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtbXML.Location = new System.Drawing.Point(3, 3); - this.rtbXML.Name = "rtbXML"; - this.rtbXML.Size = new System.Drawing.Size(358, 360); - this.rtbXML.TabIndex = 1; - this.rtbXML.Text = ""; - this.rtbXML.SelectionChanged += new System.EventHandler(this.rtbXML_SelectionChanged); - this.rtbXML.TextChanged += new System.EventHandler(this.rtbXML_TextChanged); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tpHTML); - this.tabControl1.Controls.Add(this.tpRaw); - this.tabControl1.Controls.Add(this.tpStructure); - this.tabControl1.Controls.Add(this.tpGrid); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(578, 392); - this.tabControl1.TabIndex = 0; - // - // tpHTML - // - this.tpHTML.Controls.Add(this.wb); - this.tpHTML.Location = new System.Drawing.Point(4, 22); - this.tpHTML.Name = "tpHTML"; - this.tpHTML.Padding = new System.Windows.Forms.Padding(3); - this.tpHTML.Size = new System.Drawing.Size(570, 366); - this.tpHTML.TabIndex = 0; - this.tpHTML.Text = "HTML"; - this.tpHTML.UseVisualStyleBackColor = true; - // - // wb - // - this.wb.Dock = System.Windows.Forms.DockStyle.Fill; - this.wb.Location = new System.Drawing.Point(3, 3); - this.wb.MinimumSize = new System.Drawing.Size(20, 20); - this.wb.Name = "wb"; - this.wb.Size = new System.Drawing.Size(564, 360); - this.wb.TabIndex = 0; - // - // tpRaw - // - this.tpRaw.Controls.Add(this.tbPROMS); - this.tpRaw.Location = new System.Drawing.Point(4, 22); - this.tpRaw.Name = "tpRaw"; - this.tpRaw.Padding = new System.Windows.Forms.Padding(3); - this.tpRaw.Size = new System.Drawing.Size(570, 366); - this.tpRaw.TabIndex = 1; - this.tpRaw.Text = "Raw Text"; - this.tpRaw.UseVisualStyleBackColor = true; - // - // tbPROMS - // - this.tbPROMS.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbPROMS.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbPROMS.Location = new System.Drawing.Point(3, 3); - this.tbPROMS.Multiline = true; - this.tbPROMS.Name = "tbPROMS"; - this.tbPROMS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbPROMS.Size = new System.Drawing.Size(564, 360); - this.tbPROMS.TabIndex = 0; - // - // tpStructure - // - this.tpStructure.Controls.Add(this.tv); - this.tpStructure.Location = new System.Drawing.Point(4, 22); - this.tpStructure.Name = "tpStructure"; - this.tpStructure.Size = new System.Drawing.Size(570, 366); - this.tpStructure.TabIndex = 2; - this.tpStructure.Text = "Structure"; - this.tpStructure.UseVisualStyleBackColor = true; - // - // tv - // - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.Location = new System.Drawing.Point(0, 0); - this.tv.Name = "tv"; - this.tv.Size = new System.Drawing.Size(570, 366); - this.tv.TabIndex = 0; - // - // tpGrid - // - this.tpGrid.Location = new System.Drawing.Point(4, 22); - this.tpGrid.Name = "tpGrid"; - this.tpGrid.Size = new System.Drawing.Size(570, 366); - this.tpGrid.TabIndex = 3; - this.tpGrid.Text = "Grid"; - this.tpGrid.UseVisualStyleBackColor = true; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tspb, - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 480); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(954, 22); - this.statusStrip1.TabIndex = 2; - this.statusStrip1.Text = "statusStrip1"; - this.statusStrip1.Click += new System.EventHandler(this.statusStrip1_Click); - // - // tspb - // - this.tspb.Name = "tspb"; - this.tspb.Size = new System.Drawing.Size(300, 16); - this.tspb.Visible = false; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - this.tsslStatus.Click += new System.EventHandler(this.tsslStatus_Click); - // - // tmr - // - this.tmr.Interval = 2000; - this.tmr.Tick += new System.EventHandler(this.tmr_Tick); - // - // frmConvertAlarms - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(954, 502); - this.Controls.Add(this.sc1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Name = "frmConvertAlarms"; - this.Text = "Convert Alarms"; - this.Load += new System.EventHandler(this.frmConvertAlarms_Load); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.sc1.Panel1.ResumeLayout(false); - this.sc1.Panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).EndInit(); - this.sc1.ResumeLayout(false); - this.tcXML.ResumeLayout(false); - this.tpXML.ResumeLayout(false); - this.tpXML.PerformLayout(); - this.tpColorCoded.ResumeLayout(false); - this.tabControl1.ResumeLayout(false); - this.tpHTML.ResumeLayout(false); - this.tpRaw.ResumeLayout(false); - this.tpRaw.PerformLayout(); - this.tpStructure.ResumeLayout(false); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbFileName; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SplitContainer sc1; - private System.Windows.Forms.TextBox tbXML; - private System.Windows.Forms.WebBrowser wb; - private System.Windows.Forms.TextBox tbPROMS; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.RichTextBox rtbXML; - private System.Windows.Forms.TabControl tcXML; - private System.Windows.Forms.TabPage tpXML; - private System.Windows.Forms.TabPage tpColorCoded; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tpHTML; - private System.Windows.Forms.TabPage tpRaw; - private System.Windows.Forms.TabPage tpStructure; - private System.Windows.Forms.TreeView tv; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox tbServer; - private System.Windows.Forms.ComboBox cmbDatabase; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.ComboBox cmbDocVersion; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Button btnConvert; - private System.Windows.Forms.Button btnAll; - private System.Windows.Forms.TabPage tpGrid; - private System.Windows.Forms.Button btnRun; - private System.Windows.Forms.ToolStripProgressBar tspb; - private System.Windows.Forms.Timer tmr; - } -} - diff --git a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs b/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs deleted file mode 100644 index 9991541f..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs +++ /dev/null @@ -1,886 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - -namespace ConvertAlarms -{ - public partial class frmConvertAlarms : Form - { - public frmConvertAlarms() - { - InitializeComponent(); - } - private void SetDatabaseConnection() - { - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.SelectedText); - } - private void btnBrowse_Click(object sender, EventArgs e) - { - FileInfo fi = new FileInfo(tbFileName.Text); - ofd.InitialDirectory = fi.DirectoryName; - ofd.FileName = fi.Name; - if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - tbFileName.Text = ofd.FileName; - ProcessXML(); - } - } - private void ProcessXML() - { - string fileName = tbFileName.Text; - ProcessXmlFile(fileName); - } - private void ProcessXmlFile(string fileName) - { - UpdateHTML = false; - tbXML.Clear(); - UpdateHTML = true; - XmlDocument xDoc = new XmlDocument(); - xDoc.Load(fileName); - XmlElement xe1 = xDoc.DocumentElement; - XmlElement xe2 = xe1.ChildNodes[0] as XmlElement; - XmlElement xe3 = xe2.ChildNodes[0] as XmlElement; - XmlElement xe4 = (xe1.ChildNodes[1] as XmlElement).ChildNodes[0] as XmlElement; - RelatedFunction = xe3.Attributes["relatedFunction"].Value; - PNSNo = xe3.Attributes["PNSNo"].Value; - ShortName = xe3.Attributes["shortName"].Value; - FullName = xe3.Attributes["fullName"].Value; - RevisionNumber = xe3.Attributes["revisionNumber"].Value; - Priority = xe3.Attributes["priority"].Value; - Number = xe3.Attributes["number"].Value; - Responsibility = xe4.Attributes["implementor"].Value; - ApSystem = GetSystem(xe3); - XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild; - string html = GetHtml(xn); - tbXML.Text = html; - } - private static string _RelatedFunction; - public static string RelatedFunction - { - get { return _RelatedFunction; } - set { _RelatedFunction = value; } - } - private static string _PNSNo; - public static string PNSNo - { - get { return _PNSNo; } - set { _PNSNo = value; } - } - private static string _fullName; - public static string FullName - { - get { return _fullName; } - set { _fullName = value; } - } - private static string _Number; - public static string Number - { - get { return frmConvertAlarms._Number; } - set { frmConvertAlarms._Number = value; } - } - private static string _RevisionNumber; - public static string RevisionNumber - { - get { return frmConvertAlarms._RevisionNumber; } - set { frmConvertAlarms._RevisionNumber = value; } - } - private static string _Priority; - public static string Priority - { - get { return frmConvertAlarms._Priority; } - set { frmConvertAlarms._Priority = value; } - } - private static string Responsibility; - public static string Responsibility1 - { - get { return frmConvertAlarms.Responsibility; } - set { frmConvertAlarms.Responsibility = value; } - } - private static string _shortName; - public static string ShortName - { - get { return _shortName; } - set { _shortName = value; } - } - private static string _system; - public static string ApSystem - { - get { return _system; } - set { _system = value; } - } - private static string _MyFileName; - - public static string MyFileName - { - get { return frmConvertAlarms._MyFileName; } - set { frmConvertAlarms._MyFileName = value; } - } - private static string GetHtml(XmlNode xn) - { - XmlNode pr = xn.PreviousSibling; - int i = 0; - string html = xn.Attributes["content"].Value; - //Console.WriteLine(@"{0} ""{1}""", i++, html); - if (xn != pr) - { - while (pr != null && pr.Name == "NoteInstruction") - { - string html2 = pr.Attributes["content"].Value; - //Console.WriteLine(@"{0} ""{1}""", i++, html2); - html = MergeHTML(html2, html); - //Console.WriteLine(@"{0} ""{1}""", -1, html); - pr = pr.PreviousSibling; - } - } - return html; - } - - private static string MergeHTML(string part1, string part2) - { - part1 = part1.Replace("]*>", "", RegexOptions.Singleline); - //part2 = part2.Substring(part2.IndexOf(""; - public string HtmlPrefix - { - get { return _HtmlPrefix; } - set { _HtmlPrefix = value; } - } - private string prcSerialNoFldName; - private string prcSerialNoValue; - private string prcTitleFldName; - private string prcTitleValue; - private string prcNumberFldName; - private string prcNumberValue; - private string prcSourceFldName; - private string prcSourceValue; - private string prcSetpointFldName; - private string prcSetpointValue; - - //private Regex myReg01 = new Regex("
", RegexOptions.Compiled); - //private Regex myReg02 = new Regex("
", RegexOptions.Compiled); - //private Regex myReg03 = new Regex("]+>", RegexOptions.Compiled); - //private Regex myReg04 = new Regex("", RegexOptions.Compiled); - //private Regex myReg05 = new Regex("

[ \r\n]+

]+>", RegexOptions.Compiled); - //private Regex myReg06 = new Regex("

]+>", RegexOptions.Compiled); - ////private Regex myReg07 = new Regex(@"
+(?=\w)", RegexOptions.Compiled); - //private Regex myReg08 = new Regex(@"
[ \r\n]*\t +", RegexOptions.Compiled); - //private Regex myReg09 = new Regex(@"
[ \t\r\n]+\[", RegexOptions.Compiled); - //private Regex myReg10 = new Regex("

", RegexOptions.Compiled); - //private Regex myReg11 = new Regex(@"] *\t{4,10}", RegexOptions.Compiled); - //private Regex myReg12 = new Regex("
\t+(?=None)", RegexOptions.Compiled); - //private Regex myReg13 = new Regex("
\t+(?![[\\u2022]|[1-9])", RegexOptions.Compiled); - //private Regex myReg14 = new Regex("
", RegexOptions.Compiled); - //private Regex myReg15 = new Regex("\t\t+", RegexOptions.Compiled); - //private Regex myReg16 = new Regex("\r\n +", RegexOptions.Compiled); - //private Regex myReg17 = new Regex("(\r\n){2,}", RegexOptions.Compiled); - //private Regex myReg18 = new Regex("
]+>", RegexOptions.Compiled); - ////private Regex myReg19 = new Regex("(?[^<>]*]*>[^<>]*]*>[^<>]*

(NOTE|CAUTION|WARNING)([^<>]+?)

[^<>]*[^<>]*[^<>]*
", RegexOptions.Compiled & RegexOptions.Singleline ); - //private Regex myReg22 = new Regex("\\.\\.\\.+", RegexOptions.Compiled); - private void XMLChanged(string xml) - { - Application.DoEvents(); - xml = "\n" + xml; - xml = xml.Replace(HtmlPrefix, ""); - //xml = myReg01.Replace(xml, "
"); - //xml = myReg02.Replace(xml, "
"); - //xml = myReg03.Replace(xml, "");// Remove Style Span start - //xml = myReg04.Replace(xml, "");// - //xml = myReg05.Replace(xml, "
\r\n"); - //xml = myReg06.Replace(xml, "
\r\n

"); - ////xml = myReg07.Replace(xml, " ");//New - //xml = myReg08.Replace(xml, " ");//New - //xml = myReg09.Replace(xml, @"\line ["); - //xml = myReg10.Replace(xml, "

"); - //xml = myReg11.Replace(xml, "]\r\n"); - //xml = myReg12.Replace(xml, "\r\n\t"); - //xml = myReg13.Replace(xml, " "); - //xml = myReg14.Replace(xml, "\r\n"); - //xml = myReg15.Replace(xml, " "); - //xml = myReg16.Replace(xml, "\r\n"); - //xml = myReg17.Replace(xml, "\r\n"); - //xml = myReg18.Replace(xml, ""); - ////xml = myReg19.Replace(xml, "{SPACE}"); - //xml = myReg20.Replace(xml, " "); - //xml = myReg21.Replace(xml, "

\r\n$1$2\r\n

"); - //xml = myReg22.Replace(xml, ""); //Remove multiple periods - xml = Regex.Replace(xml, "
", "
"); - xml = Regex.Replace(xml, "
", "
"); - xml = Regex.Replace(xml, "]+>", "");// Remove Style Span start - xml = Regex.Replace(xml, "", "");// - xml = Regex.Replace(xml, "

[ \r\n]+

]+>", "
\r\n"); - xml = Regex.Replace(xml, "

]+>", "
\r\n

"); -// xml = Regex.Replace(xml, @"
+(?=\w)", " ");//New - xml = Regex.Replace(xml, @"
[ \r\n]*\t (?! +[[\\u2022]| +[1-9]| +[A-Z][.])", " ");//New - //xml = Regex.Replace(xml, @"
[ \r\n]*\t +", " ");//New - xml = Regex.Replace(xml, @"
[ \t\r\n]+\[", @"\line ["); - xml = Regex.Replace(xml, "

", "

"); - xml = Regex.Replace(xml, @"] *\t{4,10}", "]\r\n"); - xml = Regex.Replace(xml, "
\t+(?=None)", "\r\n\t"); - xml = Regex.Replace(xml, "
\t+(?![[\\u2022]|[1-9]|[A-Z]\\.)", " "); - xml = Regex.Replace(xml, "
", "\r\n"); - xml = Regex.Replace(xml, "\t\t+", " "); - xml = Regex.Replace(xml, "\r\n +", "\r\n"); - xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n"); - xml = Regex.Replace(xml, "
]+>", "
"); - //xml = Regex.Replace(xml, "(?[^<>]*]*>[^<>]*]*>[^<>]*

(NOTE|CAUTION|WARNING)([^<>]+?)

[^<>]*[^<>]*[^<>]*
", "\r\n$1$2\r\n", RegexOptions.Singleline); - xml = Regex.Replace(xml, "\\.\\.\\.+", ""); //Remove multiple periods - //xml = Regex.Replace(xml," - //xml = xml.Replace(">", ""); - Application.DoEvents(); - byte[] bytes = Encoding.UTF8.GetBytes(xml); - MemoryStream ms = new MemoryStream(); - ms.Write(bytes, 0, bytes.Length); - ms.Position = 0; - XmlDocument xDoc2 = new XmlDocument(); - xDoc2.Load(ms); - int iStart = 1; - XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0]; - if (!xn3.OuterXml.Contains("table")) - { - iStart = 2; - xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[1]; - } - prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0); - prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0); - SerialNo = int.Parse(prcSerialNoValue); - prcTitleFldName = GetProcInfo(xn3, 1, 0, 0); - prcTitleValue = GetProcInfo(xn3, 1, 1, 0); - prcNumberFldName = GetProcInfo(xn3, 2, 0, 0); - prcNumberValue = GetProcInfo(xn3, 2, 1, 0); - prcSourceFldName = GetProcInfo(xn3, 3, 0, 0); - prcSourceValue = GetProcInfo(xn3, 3, 1, 0); - prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0); - prcSetpointValue = GetProcInfo(xn3, 4, 1, 0); - Console.WriteLine("\"FromProcedures\"\t\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t\"{4}\"\t\"{5}\"\t\"{6}\"\t\"{7}\"\t\"{8}\"\t\"{9}\"\t\"{10}\"\t\"{11}\"\t\"{12}\"\t\"{13}\"\t\"{14}\"" - , PNSNo.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , ApSystem.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , FullName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , ShortName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , RelatedFunction.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , "Rev" + RevisionNumber.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , Priority.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , Number.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcNumberValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcSerialNoValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcSetpointValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcSourceValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcTitleValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , Responsibility.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , MyFileName); - ProcNumber = prcNumberValue; - ProcTitle = prcTitleValue; - // Skip First Node - UpdateHTML = false; - tbPROMS.Clear(); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSerialNoFldName, prcSerialNoValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcTitleFldName, prcTitleValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcNumberFldName, prcNumberValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSourceFldName, prcSourceValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSetpointFldName, prcSetpointValue)); - StringBuilder sbAllText = new StringBuilder(); - for (int i = iStart; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++) - { - XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i]; - if (xn2.OuterXml != ">\r\n" && xn2.OuterXml != "

") - { - sbAllText.Append("\r\n" + xn2.OuterXml); - //Console.WriteLine("--{0}--|{1}|", i, IndentifySpecialCharacters(xn2.OuterXml)); - } - } - tbPROMS.AppendText(sbAllText.ToString().Replace(" ", "\xB7")); - //SaveTree(sbAllText.ToString(), prcNumberValue, prcTitleValue); - ProcTextAll = sbAllText.ToString(); - UpdateHTML = true; - } - String ProcTextAll; - int SerialNo; - String ProcNumber; - String ProcTitle; - TreeNode lastNode = null; - private void SaveTree(string text, string procNumber, string procTitle) - { - tv.Nodes.Clear(); - MemoryStream ms = GetMemoryStream(text); - using (TextReader tr = new StreamReader(ms)) - { - Dictionary lookup = new Dictionary(); - lookup.Add(0, tv.Nodes.Add(string.Format("{0} - {1}", procNumber, procTitle))); - int level = 0; - int lastLevel = 0; - int lastIndent = 0; - int extra = 0; - bool textContinued = false; - string lastTab = ""; - Queue enQueue = null; - Queue deQueue = null; - bool isTable = false; - while (tr.Peek() >= 0 || deQueue != null) - { - string lineText; - if (deQueue != null) - { - extra = 1; - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - } - else - { - extra = 0; - lineText = tr.ReadLine(); - if (lineText.StartsWith("")) - { - while (!lineText.Contains("
")) - { - lineText += " " + tr.ReadLine(); - lineText = Regex.Replace(lineText, ".*", ""); - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(lineText); - LoadTable2(xd.DocumentElement, null, 0); - isTable = true; - //StringBuilder sbxml= new StringBuilder(); - //using(StringWriter sw = new StringWriter(sbxml)) - // _MyFlexGrid.WriteXml(sw); - //using(StringReader sr= new StringReader(sbxml.ToString())) - // _MyFlexGrid.ReadXml(sr); - //Application.DoEvents(); - } - else if (lineText == "NOTE" || lineText == "CAUTION" || lineText == "Warning") - enQueue = new Queue(); - } - lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - textContinued = false; - if (lineText.Replace("\t", "") != "") - { - Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|\u2022|\u25CB)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - string tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - //if (lineText.Contains("THEN·GO·TO·1N2-OP-EOP-XX-0002")) - // Console.WriteLine("here"); - if (isTable) - { - // do nothing - } - if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 1; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*[.0-9]*")) // Substep - { - level = 2; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (tab == "") // Paragraph - { - if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS|WARNING|WARNINGS)")) - extra = 0; - else - { - lastNode.Text += " " + lineText.TrimStart("\r\n \t".ToCharArray()); - //Console.WriteLine("maybe continue '{0}'", lineText); - textContinued = true; - } - level = lastLevel + 1; - } - else if (tab == "\u2022")//bullet - level = indent + 2; - else if (tab == "\u25CB")//bullet - level = indent + 3; - if (level < lastLevel) - while (level < lastLevel) lookup.Remove(lastLevel--); - string txt = string.Format("{0}|{1}||{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[4].Value); - if (txt == "|||") txt = lineText; - if (enQueue == null) - { - if (!textContinued && !isTable) - { - if (level > lookup.Count - extra) extra = 0; - //if (level + extra - 1 == lookup.Count) - // Console.WriteLine("Problems {0}, {1}", procNumber, txt); - else if (lookup.Count <= level) - lookup.Add(level + extra, lookup[level + extra - 1].Nodes.Add(txt)); - else - lookup[level + extra] = lookup[level + extra - 1].Nodes.Add(txt); - lastNode = lookup[level + extra]; - } - } - else - { - enQueue.Enqueue(lineText); - } - lastTab = tab; - lastLevel = level; - lastIndent = indent; - } - } - } - } - private ItemInfo FindPrevious(SortedDictionary dicSerialNo, int serialNo) - { - ItemInfo lastItem = null; - foreach (int serno in dicSerialNo.Keys) - { - if (serno > serialNo) - return lastItem; - lastItem = dicSerialNo[serno]; - } - return lastItem; - } - private bool runOne = true; - private static MemoryStream GetMemoryStream(string text) - { - byte[] bytes = Encoding.UTF8.GetBytes(text); - MemoryStream ms = new MemoryStream(bytes); - ms.Position = 0; - return ms; - } - private string GetProcInfo(XmlNode xn3, int p1, int p2, int p3) - { - if (xn3.OuterXml == "

") xn3 = xn3.NextSibling; - return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].ChildNodes[0].Value.Trim("\r\n ".ToCharArray()); - } - private bool _UpdateHTML = true; - public bool UpdateHTML - { - get { return _UpdateHTML; } - set { _UpdateHTML = value; } - } - private string IndentifySpecialCharacters(string xml) - { - StringBuilder sb = new StringBuilder(); - string txt = Regex.Replace(xml, "]+>", ""); - foreach (char c in txt) - { - if (((int)c) < 32 || ((int)c) > 256) - sb.Append(string.Format("[x{0:X4}]", (int)c)); - else - sb.Append(c == ' ' ? '\xb7' : c); - } - return sb.ToString(); - } - private void btnRun_Click(object sender, EventArgs e) - { - ProcessXML(); - } - Regex regColorCode = new Regex(@"(\<[^<>]+\>)([^<>]*)", RegexOptions.Singleline); - Regex regColorCodeText = new Regex("(\t*)([^\t]*)", RegexOptions.Singleline); - private void ColorCoded(string str) - { - rtbXML.Clear(); - Color fColor = Color.PaleTurquoise; - Color fNext = Color.PaleTurquoise; - foreach (Match m in regColorCode.Matches(str)) - { - string fmt = m.Groups[1].Value; - string txt = m.Groups[2].Value; - if (fmt.StartsWith("") - fNext = Color.PaleTurquoise; - else if (fmt == "
") - fColor = Color.PeachPuff; - else if (fmt == "

") - fColor = Color.LightPink; - AddToXML(fmt, fColor); - fColor = fNext; - foreach (Match mm in regColorCodeText.Matches(txt)) - { - string tabs = mm.Groups[1].Value; - string nontabs = mm.Groups[2].Value; - AddToXML(tabs, Color.Khaki); - AddToXML(nontabs, Color.Yellow); - } - } - } - - private void AddToXML(string txt, Color fColor) - { - if (txt == "") return; - rtbXML.SelectionStart = rtbXML.TextLength; - rtbXML.SelectionBackColor = fColor; - rtbXML.SelectedText = txt; - } - private void frmConvertAlarms_Load(object sender, EventArgs e) - { - LoadSettings(); - SetEventHandlers(); - _MyFlexGrid = new VlnFlexGrid(); - tpGrid.Controls.Add(_MyFlexGrid); - string str = AutoFolder; - if (str != null && str.Length > 5) - { - tmr.Enabled = true; - } - } - private void SetEventHandlers() - { - tbFileName.TextChanged += tbFileName_TextChanged; - Move += frmConvertAlarms_Move; - Resize += frmConvertAlarms_Resize; - sc1.SplitterMoved += sc1_SplitterMoved; - //sc2.SplitterMoved += sc2_SplitterMoved; - tbServer.TextChanged += tbServer_TextChanged; - cmbDatabase.TextChanged += cmbDatabase_TextChanged; - cmbDatabase.Click += cmbDatabase_Click; - cmbDocVersion.TextChanged += cmbDocVersion_TextChanged; - //BuildTableCombo(); - //BuildProcedureSetCombo(); - } - - void cmbDatabase_Click(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void BuildProcedureSetCombo() - { - DocVersionInfoList dvil = DocVersionInfoList.Get(); - cmbDocVersion.DataSource = dvil; - cmbDocVersion.DisplayMember = "SearchDVPath"; - cmbDocVersion.ValueMember = "VersionId"; - } - - private void cmbDocVersion_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.ProcedureSet = (int)cmbDocVersion.SelectedValue; - Properties.Settings.Default.Save(); - } - - private void cmbDatabase_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void tbServer_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.SqlServer = tbServer.Text; - Properties.Settings.Default.Save(); - string db = cmbDatabase.Text; - try - { - BuildDatabaseCombo(); - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void BuildDatabaseCombo() - { - string tmp = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, "MASTER"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); - // SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - //System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - //cms.Items.Add("Choose Database"); - //System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - //tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - //tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - //tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if (dr["functionality"].ToString() == "Approval") - cmbDatabase.Items.Add(dr["name"].ToString()); - } - } - void frmConvertAlarms_Resize(object sender, EventArgs e) - { - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.Save(); - } - void frmConvertAlarms_Move(object sender, EventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Save(); - } - void tbFileName_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.FileName = tbFileName.Text; - Properties.Settings.Default.Save(); - } - private void sc1_SplitterMoved(object sender, SplitterEventArgs e) - { - Properties.Settings.Default.Split1 = sc1.SplitterDistance; - Properties.Settings.Default.Save(); - } - private void LoadSettings() - { - Size = Properties.Settings.Default.Size; - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default.FileName != null && Properties.Settings.Default.FileName != "") - { - FileInfo fi = new FileInfo(Properties.Settings.Default.FileName); - tbFileName.Text = fi.FullName; - } - sc1.SplitterDistance = Properties.Settings.Default.Split1; - tbServer.Text = Properties.Settings.Default.SqlServer; - cmbDatabase.Text = Properties.Settings.Default.Database; - try - { - BuildDatabaseCombo(); - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.Text); - BuildProcedureSetCombo(); - cmbDocVersion.SelectedValue = Properties.Settings.Default.ProcedureSet; - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void tsslStatus_Click(object sender, EventArgs e) - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbXML.SelectedText)); - Clipboard.Clear(); - if (tbXML.SelectedText != "") - Clipboard.SetText(IndentifySpecialCharacters(tbXML.SelectedText)); - } - - private void rtbXML_SelectionChanged(object sender, EventArgs e) - { - } - private void tbXML_TextChanged(object sender, EventArgs e) - { - if (UpdateHTML) - { - if (AutoFolder == null) htmlChanged(tbXML.Text); - XMLChanged(tbXML.Text); - if (AutoFolder == null) ColorCoded(tbXML.Text); - } - } - private bool _UpdateTbXML = true; - - public bool UpdateTbXML - { - get { return _UpdateTbXML; } - set { _UpdateTbXML = value; } - } - private void rtbXML_TextChanged(object sender, EventArgs e) - { - //if (UpdateHTML) - //{ - // UpdateHTML = false; - // htmlChanged(rtbXML.Text); - // XMLChanged(rtbXML.Text); - // tbXML.Text = rtbXML.Text; - // UpdateHTML = true; - //} - } - private void btnConvert_Click(object sender, EventArgs e) - { - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle,999999); - DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, tbFileName.Text); - } - string lastLine = ""; - SortedDictionary dicSerialNo; - int errorCount; - private void btnAll_Click(object sender, EventArgs e) - { - DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - string fileName = tbFileName.Text; - ConvertFiles(fileName); - } - - private void ConvertFiles(string fileName) - { - Application.DoEvents(); - DateTime dtStart = DateTime.Now; - errorCount = 0; - dicSerialNo = new SortedDictionary(); - runOne = false; - // Get List of files - FileInfo fi = new FileInfo(fileName); - DirectoryInfo di = fi.Directory; - // Loop through list - FileInfo[] fs = di.GetFiles("*.xml"); - tspb.Visible = true; - tspb.Value = 0; - tspb.Maximum = fs.Length; - foreach (FileInfo f in fs) - { - //ResetSpecial(); - MyFileName = f.FullName; - tspb.Value++; - tsslStatus.Text = f.Name; - Application.DoEvents(); - // Process each file - try - { - ProcessXmlFile(f.FullName); - // Convert each file - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo); - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, f.Name); - } - catch (Exception ex) - { - ++errorCount; - Console.WriteLine("*** {0} - {1}\r\n*** Procedure {2}\r\n*** Text: {3}\r\n*** File Name:{4} ", - ex.GetType().Name, ex.Message, ProcNumber, lastLine, f.Name); - //break; - } - //break; one Procedure per set - } - runOne = true; - tspb.Visible = false; - tsslStatus.Text = "Done"; - //MessageBox.Show(string.Format( - // "{0} Errors\r\n{1} Procedures\r\n{2:F} Seconds", errorCount, - // fs.Length, - // TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalSeconds), - // "Done with this set", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - private void statusStrip1_Click(object sender, EventArgs e) - { - if (rtbXML.SelectedText != "") - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(rtbXML.SelectedText)); - Clipboard.Clear(); - Clipboard.SetText(IndentifySpecialCharacters(rtbXML.SelectedText)); - } - } - ROFSTLookup MyLookUp; - private void tmr_Tick(object sender, EventArgs e) - { - tmr.Enabled = false; - // If timer on the its ready to proccess - string str = AutoFolder; - if (str != null && str.Length > 5) - { - DirectoryInfo di = new DirectoryInfo(str); - FileInfo fi = di.GetFiles("*.xml")[0]; - DVI = GetDVI(fi.FullName); - ConvertFiles(fi.FullName); - } - this.Close(); - } - private static string _AutoFolder = null; - private static string AutoFolder - { - get - { - if (_AutoFolder == null) - { - _AutoFolder = System.Environment.CommandLine; - _AutoFolder = _AutoFolder.Substring(_AutoFolder.IndexOf(@".exe"" ") + 6).Trim(" \t\r\n".ToCharArray()); - } - if (_AutoFolder.Length < 1) - return null; - return _AutoFolder; - } - } - - private DocVersionInfo GetDVI(string fileName) - { - XmlDocument xd = new XmlDocument(); - xd.Load(fileName); - XmlElement xe = xd.DocumentElement; - while (xe.Name != "ident") - xe = xe.ChildNodes[0] as XmlElement; - string DVIFolderName = xe.Attributes["PNSNo"].Value; - if (cmbDocVersion.SelectedValue != null) - { - DocVersionInfo dvi = DocVersionInfo.Get((int)(cmbDocVersion.SelectedValue)); - int idnew; - ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst; - FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo; - // Create a folder - double myOrder = GetMyOrder(grandParent.SortedChildFolders, DVIFolderName); - using (Folder flder = Folder.MakeFolder(grandParent.Get(), null, DVIFolderName, fileName, GetSystem(xe), null, myOrder, null)) - { - flder.ManualOrder = 0; - flder.ManualOrder = myOrder; - //Console.WriteLine("myOrder = {0}, flder = {1}", myOrder, flder.ManualOrder); - flder.Save(); - // create a a DocVersion - using (DocVersion dv = DocVersion.MakeDocVersion(flder, "Working Draft", null, null, null, null)) - { - dv.DocVersionAssociations.Add(fst.Get()); - dv.Save(); - idnew = dv.VersionID; - } - } - return DocVersionInfo.Get(idnew); - } - return null; - } - private double GetMyOrder(Csla.SortedBindingList myList, string DVIFolderName) - { - double lastNum = 0; - // Console.WriteLine("--->>> FolderName {0} Insert Count {1}",DVIFolderName, myList.Count); - foreach (FolderInfo myFolder in myList) - { - // Console.WriteLine("--->>> FolderName {0} Insert Name {1} Insert Order {2}",DVIFolderName, myFolder.Name, myFolder.ManualOrder); - if (myFolder.Name.CompareTo(DVIFolderName) >= 0) - return (lastNum + (double) myFolder.ManualOrder) / 2.0; - lastNum = myFolder.ManualOrder ?? 1.0; - } - return lastNum + 1; - } - private string GetSystem(XmlElement xe) - { - XmlAttribute xa = xe.Attributes["system"]; - if (xa is XmlAttribute) return xa.Value; - return "N/A"; - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx b/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx deleted file mode 100644 index 09f332c3..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 87, 17 - - - 203, 3 - - - 25 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/App.config b/PROMS/BarakahConvert/ConvertLocalAlarms/App.config deleted file mode 100644 index f5aa8acd..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/App.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - -
- - - - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMs_BARAKAH - - - 0 - - - - diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertLocalAlarms.csproj b/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertLocalAlarms.csproj deleted file mode 100644 index 5318977f..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertLocalAlarms.csproj +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Debug - AnyCPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870} - WinExe - Properties - ConvertLocalAlarms - ConvertLocalAlarms - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - False - ..\..\..\..\..\..\..\Program Files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll - - - - - - - - - - - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll - - - - - Form - - - Form - - - frmConvertLocalAlarms.cs - - - - - Form - - - frmConvertLocalAlarms.cs - Designer - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertTable.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertTable.cs deleted file mode 100644 index 1995c754..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertTable.cs +++ /dev/null @@ -1,197 +0,0 @@ -using C1.Win.C1FlexGrid; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - -namespace ConvertLocalAlarms -{ - public partial class frmConvertLocalAlarms - { - private static string GetTableText() - { - return _MyFlexGrid.GetSearchableText(); - } - private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level) - { - XmlNode xn2 = xn.SelectSingleNode("tr/td/table"); - if (xn2 != null) xn = xn2; - VlnFlexGrid fg = _MyFlexGrid; - fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point); - fg.Clear(); - fg.Rows.Count = 1; - fg.Cols.Count = 1; - int rows = 0; - fg.MergedRanges.Clear(); - foreach (XmlNode xr in xn.ChildNodes) - { - if (xr.Name == "tr") - { - ++rows; - AddTableRow(xr, fg, rows); - } - } - fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count); - fg.BringToFront(); - fg.Invalidate(); - Application.DoEvents(); - //ShowColumnWidths(fg); - fg.MakeRTFcells(false); - //ShowMergedCells(fg); - //ShowColumnWidths(fg); - //Well, Can I save the table - //using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table)) - //{ - // Grid.MakeGrid(step.MyContent, fg.GetXMLData(), ""); - //} - } - public static VlnFlexGrid _MyFlexGrid = null; - private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows) - { - if (rows > fg.Rows.Count) - fg.Rows.Count = rows; - int cols = 0; - foreach (XmlNode xc in xr.ChildNodes) - { - ++cols; - //if (xc.InnerText.Contains("RC-V200")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerText.Contains("RC-V121")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01")) - // Console.WriteLine("here"); - CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - //Console.WriteLine("Check {0}", cr2); - while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1) - { - cols++; - cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - } - AddMergedCells(fg, rows, cols, xc); - //ShowMergedCells(fg); - if (xc.Name == "td") - { - AddTableColumn(xc, fg, rows, cols); - } - } - } - - //private static void ShowColumnWidths(VlnFlexGrid fg) - //{ - // foreach (Column c in fg.Cols) - // Console.WriteLine("Width[{0}]={1}", c.Index, c.Width); - //} - private static void ShowMergedCells(VlnFlexGrid fg) - { - for (int r = 0; r < fg.Rows.Count; r++) - { - for (int c = 0; c < fg.Cols.Count; c++) - { - CellRange cr3 = GetMyMergedRange(fg, r, c); - if (fg.MergedRanges.Contains(cr3)) - Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3); - } - } - } - private static int GetSpan(string span) - { - int retval = int.Parse("0" + (span ?? "")); - if (retval == 0) return 0; - return retval - 1; - } - private static string GetAttribute(XmlNode xc, string attName) - { - string retval = null; - XmlAttribute xa = xc.Attributes[attName]; - if (xa != null) - retval = xa.Value; - return retval; - } - private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc) - { - string colspan = GetAttribute(xc, "colspan"); - string rowspan = GetAttribute(xc, "rowspan"); - if (colspan != null || rowspan != null) - { - //AddMergedRanges - int r1 = rows; - int c1 = cols; - int r2 = r1 + GetSpan(rowspan); - if (r2 > fg.Rows.Count) fg.Rows.Count = r2; - int c2 = c1 + GetSpan(colspan); - if (c2 > fg.Cols.Count) fg.Cols.Count = c2; - CellRange cr = new CellRange(); - cr.r1 = r1 - 1; - cr.r2 = r2 - 1; - cr.c1 = c1 - 1; - cr.c2 = c2 - 1; - fg.MergedRanges.Add(cr); - //Console.WriteLine("Merged {0}", cr); - } - } - - private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c) - { - foreach (CellRange cr in fg.MergedRanges) - { - if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c) - return cr; - } - return fg.GetMergedRange(r, c); - } - private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled); - private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols) - { - //Console.WriteLine("Rows {0}, Cols {1}", rows, cols); - if (cols > fg.Cols.Count) - fg.Cols.Count = cols; - string width = GetAttribute(xc, "width"); - if (width != null && width != "" && regNumber.IsMatch(width)) - { - if (width.EndsWith("%")) - fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100); - else - { - int w = int.Parse(width)*96/72; - //Console.WriteLine("w[{0}]={1}", cols - 1, w); - fg.Cols[cols - 1].Width = w; - } - } - StringBuilder sb = new StringBuilder(); - string prefix = ""; - foreach (XmlNode xn in xc.ChildNodes) - { - if (xn.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - if (xn.Name == "ul") - { - foreach (XmlNode xn2 in xn.ChildNodes) - { - if (xn2.Name == "li") - { - sb.Append(prefix + "*" + xn.InnerText); - } - if (xn2.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - } - } - } - if (width != null && width != "" && !regNumber.IsMatch(width)) - { - Console.WriteLine("width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml); - } - fg[rows - 1, cols - 1] = sb.ToString(); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Program.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Program.cs deleted file mode 100644 index e4c4055d..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ConvertLocalAlarms -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmConvertLocalAlarms()); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/AssemblyInfo.cs deleted file mode 100644 index 8bc6ca37..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ConvertLocalAlarms")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ConvertLocalAlarms")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4fbb3402-5209-47ff-a6ba-e0da93ef51c4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.Designer.cs deleted file mode 100644 index 1d521077..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +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. -// -//------------------------------------------------------------------------------ - -namespace ConvertLocalAlarms.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConvertLocalAlarms.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.resx b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.Designer.cs deleted file mode 100644 index 3234b140..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.Designer.cs +++ /dev/null @@ -1,110 +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. -// -//------------------------------------------------------------------------------ - -namespace ConvertLocalAlarms.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1000, 600")] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string FileName { - get { - return ((string)(this["FileName"])); - } - set { - this["FileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("250")] - public int Split1 { - get { - return ((int)(this["Split1"])); - } - set { - this["Split1"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute(".\\Sql2008Express")] - public string SqlServer { - get { - return ((string)(this["SqlServer"])); - } - set { - this["SqlServer"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("VEPROMs_BARAKAH")] - public string Database { - get { - return ((string)(this["Database"])); - } - set { - this["Database"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int ProcedureSet { - get { - return ((int)(this["ProcedureSet"])); - } - set { - this["ProcedureSet"] = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.settings b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.settings deleted file mode 100644 index 0d747011..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMs_BARAKAH - - - 0 - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/licenses.licx b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/licenses.licx deleted file mode 100644 index c4eba94b..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs deleted file mode 100644 index a89851ce..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs +++ /dev/null @@ -1,549 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - - -namespace ConvertLocalAlarms -{ - public partial class frmConvertLocalAlarms : Form - { - string lastLine = ""; - //private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo) - private void SaveProcedure(string text, string procNumber, string procTitle, DocVersionInfo dvi) - { - Console.WriteLine("===> ARP: {0}, AppContext: {1}", dvi.MyFolder.Name, procNumber); - // Add Procedure Number and Title - ItemInfo prev = null; - //if (serialNo == 999999) - prev = dvi.MyItem == null ? null : dvi.MyItem.LastSibling; - //else - //{ - // prev = FindPrevious(dicSerialNo, serialNo); - //} - using (Procedure prc = Procedure.MakeProcedure(dvi, prev, procNumber, procTitle, 0)) - { - ProcedureInfo prci = ProcedureInfo.Get(prc.ItemID); - // dicSerialNo.Add(serialNo, prci); - // Console.WriteLine("{0},{1}", serialNo, prci.ShortPath); - // Add Section - using (Section sec = Section.MakeSection(prci, null, null, "Procedure Content", 10000)) - { - sec.SectionConfig.Section_ColumnMode = SectionConfig.SectionColumnMode.One; - sec.SectionConfig.Section_Pagination = SectionConfig.SectionPagination.Separate; - sec.Save(); - SectionInfo seci = SectionInfo.Get(sec.ItemID); - // TODO: Add High Level Steps - // TODO: Add Substeps - MemoryStream ms = GetMemoryStream(text); - Queue qRead = new Queue(); - using (StreamReader sr = new StreamReader(ms)) - fillQueue(qRead, sr); - Dictionary lookup = new Dictionary(); - lookup.Add(0, prci); - lookup.Add(1, seci); - int level = 2; - int type = 20001; - int lastLevel = 2; - int lastType = 0; - int lastIndent = 0; - int extra = 0; - string lastTab = ""; - int? DeQueueType = null; - E_FromType myFromType = E_FromType.Step; - Queue enQueue = null; - Queue deQueue = null; - int deQueueLevel = 0; - int deQueueLevelLast = 0; - bool wasFromQueue; - bool firstQueue = false; - ItemInfo deQueueItem = null; - bool saveDeQueueInfo = false; - bool isTable = false; - bool lastWasTable = false; - string tableText = null; - string tab = ""; - bool strangeBullet = false; - bool lastNoteHadBullet = false; - while (qRead.Count > 0 || deQueue != null) - { - string lineText; - tableText = null; - if (deQueue != null) - { - wasFromQueue = true; - extra = 1; - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - if (lineText=="") - { - DeQueueType = 20007; - } - if (lineText=="") - { - DeQueueType = 20006; - } - if (lineText=="") - { - DeQueueType = 20020; - } - if (deQueue != null) - { - if (deQueue.Count > 0) - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - } - if (lastNoteHadBullet && lineText.Contains("\u2022")) - DeQueueType = lastType; - } - else - { - wasFromQueue = false; - DeQueueType = null; - extra = 0; - string findend = ""; - while (Regex.IsMatch(qRead.Peek(), "<(NOTE|CAUTION|WARNING)>(.*)")) - { - if (enQueue == null) enQueue = new Queue(); - lineText = qRead.Dequeue(); - string sType = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$1"); - lineText = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$2"); - findend = string.Format("", sType); - enQueue.Enqueue(string.Format("<{0}>", sType)); - while (!lineText.Contains(findend)) - { - enQueue.Enqueue(lineText);//.Replace("\u2022","").Trim()); - lineText = qRead.Dequeue().Trim(); - } - lineText = lineText.Replace(findend, ""); - enQueue.Enqueue(lineText); //.Replace("\u2022", "").Trim()); - } - lineText = qRead.Dequeue().TrimEnd(" ".ToCharArray()); - //string append = qRead.Peek(); - //lineText = qRead.Dequeue().Trim(); - if (lineText == ">") lineText = lineText.Replace(">", ""); - else lineText = lineText.Replace("<", "<").Replace(">", ">"); - //} - HasSpecialCharacters(lineText); - if (lineText.StartsWith("")) - { - while (!lineText.Contains("
")) - { - lineText += " " + qRead.Dequeue(); - lineText = Regex.Replace(lineText, ".*", ""); - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(lineText); - LoadTable2(xd.DocumentElement, null, 0); - isTable = true; - if (!lastWasTable) level = lastLevel + 1; - else level = lastLevel; - type = 20008; - tableText = GetTableText(); - //StringBuilder sbxml= new StringBuilder(); - //using(StringWriter sw = new StringWriter(sbxml)) - // _MyFlexGrid.WriteXml(sw); - //using(StringReader sr= new StringReader(sbxml.ToString())) - // _MyFlexGrid.ReadXml(sr); - //Application.DoEvents(); - } - else lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - } - if (lineText.Replace("\t", "").Replace(" ", "") != "") - lastLine = lineText; - Match m = Regex.Match(lineText.Replace('\xFFFD', '\x2022'), @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|[A-Z]\.|\u2022|)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - if (m.Groups[4].Value != "") - { - tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - if (isTable) - { - // do nothing - if (lastWasTable) - level = lastLevel; - else - level = 1 + lastLevel; - type = 20008; - myFromType = E_FromType.Table; - } - else if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 2; - type = 20002; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*")) // Sub-Substep - { - level = 4; - type = 20001; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*")) // Substep - { - level = 3; - type = 20001; - } - else if (Regex.IsMatch(tab, "[A-Z]\\.")) // Sub-Substep - { - level = 5; - type = 20001; - } - else if (tab == "") // Paragraph - { - //Console.WriteLine("Type = 20024, deQueueuType= {0} Level = {1}", DeQueueType, level); - level = lastLevel + 1; - type = 20024; - } - else if (tab == "\u2022")//bullet - { - if (firstQueue) - level = lastLevel + 1; - else if (lastTab == "\u2022") - level = lastLevel; - else - if (lastType == 20007 && lastTab == "") - level = lastLevel + 1; - else - { - level = indent + 3; - strangeBullet = true; - } - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - else if (tab == "\u25CB")//bullet - { - level = indent + 4; - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - //while (level < lastLevel) - // lookup.Remove(lastLevel--); - if (firstQueue && deQueueLevelLast > 0) level = deQueueLevelLast + 1; - while (level < lookup.Count - 1) - lookup.Remove(lookup.Count - 1); - lastTab = tab; - lastLevel = level; - //lastIndent = indent; - lastWasTable = isTable; - deQueueLevelLast = deQueueLevel; - } - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - saveDeQueueInfo = true; - enQueue = null; - } - int newType = DeQueueType ?? (isTable ? 20008 : type); - if (DeQueueType != null) - { - myFromType = E_FromType.Note; - level = 3; - if(deQueue!=null) - Console.WriteLine("Multiple NoteLines"); - if (tab == "\u2022") - lastNoteHadBullet = true; - } - lastType = newType; - if (enQueue == null) - { - if (lookup.Count < level) - { - using (Step stp = (lookup[lookup.Count - 1] as StepInfo).Get()) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, GetAnnotationText2(lineText), null); - } - } - else if (lookup.Count == level) - { // Make new Step Type Child - using (Step stp = Step.MakeStep(lookup[level - 1], null, null, tableText ?? m.Groups[4].Value, newType, myFromType)) - { - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qRead); - if (footnote.Length > 0) // Make Table FootNote - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - lookup.Add(level, myItem); - //Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - //Console.WriteLine("+++A tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - - } - } - else - { // MakeConfig Next Child - int previousType = ((int)lookup[level].MyContent.Type); - if (firstQueue && DeQueueType != null) - { - previousType = (int)DeQueueType; - level = deQueueLevel + 1; - } - using (Step stp = Step.MakeStep(lookup[level - 1], lookup[level], null, tableText ?? m.Groups[4].Value, previousType, myFromType)) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, string.Format("Type Change {0} to {1}", newType, ((int)lookup[level].MyContent.Type)), null); - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - strangeBullet = false; - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qRead); - if (footnote.Length > 0)// Make Table Footnote - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - //Console.WriteLine(">>> tab = {0}, Lookup.Count = {1}, Level = {2}", tab, lookup.Count, level); - lookup[level] = myItem; - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - } - } - myFromType = E_FromType.Step; - if (deQueue == null && deQueueItem != null) - { - level = deQueueLevel; - while (level < lookup.Count) - lookup.Remove(lookup.Count - 1); - lookup[level] = deQueueItem; - deQueueItem = null; - DeQueueType = null; - } - } - //else - //{ - // enQueue.Enqueue(lineText); - //} - DeQueueType = null; - } - } - } - if (runOne) MessageBox.Show("Done", "Converted"); - } - - private ItemInfo FindLocation(ItemInfo myItem, string procNumber) - { - while (myItem != null) - { - if (myItem.DisplayNumber.CompareTo(procNumber) >= 0) - return myItem.MyPrevious; - myItem = myItem.NextItem; - } - return myItem; - } - private string MakeConfig(string fmt, params string [] args) - { - string [] atts = new string[args.Length]; - args.CopyTo(atts,0); - for(int i=0; i",">"); - return string.Format(fmt, atts); - } - private void fillQueue(Queue qread, StreamReader sr) - { - while(sr.Peek() > 0) - qread.Enqueue(sr.ReadLine()); - } - //public string NextLine - //{ - // get { return _NextLine; } - // set { _NextLine = value; } - //} - private string GetFootNote(MemoryStream ms, Queue qRead) - { - string sep = ""; - StringBuilder sb = new StringBuilder(); - while(qRead.Count > 0) - { - // Read a line at a time - string str = qRead.Peek(); - str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace(">", ""); - str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?"); - //str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?"); - // If Text begins with number then - if(Regex.IsMatch(str,"[0-9].*") || str.StartsWith("")) - return sb.ToString(); - //append string - if (sb.ToString() != "" || str != "") - { - sep = "\r\n"; - } - sb.Append(sep + qRead.Dequeue()); - } - return sb.ToString(); - } - private void ProcessChars(string str) - { - foreach (char c in str) - { - if (c < 0x20 || c > 0x7F) - Console.WriteLine("{0:X4}", (int)c); - } - } - public void ResetSpecial() - { - FoundSpecial = new List(); - } - List FoundSpecial = new List(); - private void HasSpecialCharacters(string lineText) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in lineText) - { - if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c)) - { - Console.WriteLine("*** Special Character {0:X4}", (int)c); - FoundSpecial.Add(c); - } - } - } - - //private static string GetAnnotationText(string fileName) - //{ - // return string.Format("FileName:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}" , - // fileName,ShortName,FullName,ApSystem,PNSNo ,RelatedFunction); - //} - private static string GetAnnotationText2(string lineText) - { - //return string.Format("LineText:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}", - // lineText, ShortName, FullName, apSystem, PNSNo, RelatedFunction); - return string.Format("LineText:{0}", - lineText); - } - //private void fillQueue(Queue qread, StreamReader sr) - //{ - // while (sr.Peek() > 0) - // qread.Enqueue(sr.ReadLine()); - //} - //private string _NextLine; - - //public string NextLine - //{ - // get { return _NextLine; } - // set { _NextLine = value; } - //} - //private string GetFootNote(MemoryStream ms, Queue qRead) - //{ - // string sep = ""; - // StringBuilder sb = new StringBuilder(); - // while (qRead.Count > 0) - // { - // // Read a line at a time - // string str = qRead.Peek(); - // str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace(">", ""); - // str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?"); - // //str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?"); - // // If Text begins with number then - // if (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("
")) - // return sb.ToString(); - // //append string - // if (sb.ToString() != "" || str != "") - // { - // sep = "\r\n"; - // } - // sb.Append(sep + qRead.Dequeue()); - // } - // return sb.ToString(); - //} - - //private void ProcessChars(string str) - //{ - // foreach (char c in str) - // { - // if (c < 0x20 || c > 0x7F) - // Console.WriteLine("{0:X4}", (int)c); - // } - //} - //public void ResetSpecial() - //{ - // FoundSpecial = new List(); - //} - //List FoundSpecial = new List(); - //private void HasSpecialCharacters(string lineText) - //{ - // StringBuilder sb = new StringBuilder(); - // foreach (char c in lineText) - // { - // if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c)) - // { - // Console.WriteLine("*** Special Character {0:X4}", (int)c); - // FoundSpecial.Add(c); - // } - // } - //} - } - public class StepLookup : SortedDictionary - { - public StepInfo this[int i] - { - get - { - if (this.ContainsKey(i.ToString())) return base[i.ToString()]; - return null; - } - set - { - if (i > this.Count) - throw new Exception("Gap in Stack"); - if (value == null) - throw new Exception("Null StepInfo"); - //if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution )) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value); - if (this.ContainsKey(i.ToString())) - { - base[i.ToString()] = value; - while (this.ContainsKey((i + 1).ToString())) - base.Remove((base.Count - 1).ToString()); - } - else base.Add(i.ToString(), value); - //ListMySteps("Set ", this); - } - } - public void AddOne(StepInfo previousStep) - { - this[this.Count] = previousStep; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText); - i++; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs deleted file mode 100644 index 0a797783..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs +++ /dev/null @@ -1,406 +0,0 @@ -namespace ConvertLocalAlarms -{ - partial class frmConvertLocalAlarms - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.panel2 = new System.Windows.Forms.Panel(); - this.btn_All = new System.Windows.Forms.Button(); - this.btnConvert = new System.Windows.Forms.Button(); - this.label7 = new System.Windows.Forms.Label(); - this.tbServer = new System.Windows.Forms.TextBox(); - this.cmbDatabase = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); - this.cmbDocVersion = new System.Windows.Forms.ComboBox(); - this.label5 = new System.Windows.Forms.Label(); - this.btn_Run = new System.Windows.Forms.Button(); - this.btn_Browse = new System.Windows.Forms.Button(); - this.label6 = new System.Windows.Forms.Label(); - this.tbFileName = new System.Windows.Forms.TextBox(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sc1 = new System.Windows.Forms.SplitContainer(); - this.tcXML = new System.Windows.Forms.TabControl(); - this.tpXML = new System.Windows.Forms.TabPage(); - this.tbPROMS = new System.Windows.Forms.TextBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tpStructure = new System.Windows.Forms.TabPage(); - this.tv = new System.Windows.Forms.TreeView(); - this.tpGrid = new System.Windows.Forms.TabPage(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tmr = new System.Windows.Forms.Timer(this.components); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).BeginInit(); - this.sc1.Panel1.SuspendLayout(); - this.sc1.Panel2.SuspendLayout(); - this.sc1.SuspendLayout(); - this.tcXML.SuspendLayout(); - this.tpXML.SuspendLayout(); - this.tabControl1.SuspendLayout(); - this.tpStructure.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.label1); - this.panel1.Controls.Add(this.panel2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(954, 88); - this.panel1.TabIndex = 0; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(23, 13); - this.label1.TabIndex = 1; - this.label1.Text = "File"; - // - // panel2 - // - this.panel2.Controls.Add(this.btn_All); - this.panel2.Controls.Add(this.btnConvert); - this.panel2.Controls.Add(this.label7); - this.panel2.Controls.Add(this.tbServer); - this.panel2.Controls.Add(this.cmbDatabase); - this.panel2.Controls.Add(this.label4); - this.panel2.Controls.Add(this.cmbDocVersion); - this.panel2.Controls.Add(this.label5); - this.panel2.Controls.Add(this.btn_Run); - this.panel2.Controls.Add(this.btn_Browse); - this.panel2.Controls.Add(this.label6); - this.panel2.Controls.Add(this.tbFileName); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(954, 88); - this.panel2.TabIndex = 9; - // - // btn_All - // - this.btn_All.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_All.Location = new System.Drawing.Point(862, 46); - this.btn_All.Name = "btn_All"; - this.btn_All.Size = new System.Drawing.Size(37, 25); - this.btn_All.TabIndex = 12; - this.btn_All.Text = "All"; - this.btn_All.UseVisualStyleBackColor = true; - this.btn_All.Click += new System.EventHandler(this.btnAll_Click); - // - // btnConvert - // - this.btnConvert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnConvert.Location = new System.Drawing.Point(754, 46); - this.btnConvert.Name = "btnConvert"; - this.btnConvert.Size = new System.Drawing.Size(76, 28); - this.btnConvert.TabIndex = 11; - this.btnConvert.Text = "Convert"; - this.btnConvert.UseVisualStyleBackColor = true; - this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click); - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(12, 35); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(38, 13); - this.label7.TabIndex = 10; - this.label7.Text = "Server"; - // - // tbServer - // - this.tbServer.Location = new System.Drawing.Point(56, 32); - this.tbServer.Name = "tbServer"; - this.tbServer.Size = new System.Drawing.Size(190, 20); - this.tbServer.TabIndex = 9; - // - // cmbDatabase - // - this.cmbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDatabase.FormattingEnabled = true; - this.cmbDatabase.Location = new System.Drawing.Point(331, 32); - this.cmbDatabase.Name = "cmbDatabase"; - this.cmbDatabase.Size = new System.Drawing.Size(417, 21); - this.cmbDatabase.TabIndex = 8; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(11, 61); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(75, 13); - this.label4.TabIndex = 7; - this.label4.Text = "Procedure Set"; - // - // cmbDocVersion - // - this.cmbDocVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDocVersion.FormattingEnabled = true; - this.cmbDocVersion.Location = new System.Drawing.Point(92, 58); - this.cmbDocVersion.Name = "cmbDocVersion"; - this.cmbDocVersion.Size = new System.Drawing.Size(656, 21); - this.cmbDocVersion.TabIndex = 6; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(259, 35); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(53, 13); - this.label5.TabIndex = 4; - this.label5.Text = "Database"; - // - // btn_Run - // - this.btn_Run.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_Run.Location = new System.Drawing.Point(905, 3); - this.btn_Run.Name = "btn_Run"; - this.btn_Run.Size = new System.Drawing.Size(37, 25); - this.btn_Run.TabIndex = 3; - this.btn_Run.Text = "Run"; - this.btn_Run.UseVisualStyleBackColor = true; - this.btn_Run.Click += new System.EventHandler(this.btnRun_Click); - // - // btn_Browse - // - this.btn_Browse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_Browse.Location = new System.Drawing.Point(827, 3); - this.btn_Browse.Name = "btn_Browse"; - this.btn_Browse.Size = new System.Drawing.Size(72, 24); - this.btn_Browse.TabIndex = 2; - this.btn_Browse.Text = "Browse..."; - this.btn_Browse.UseVisualStyleBackColor = true; - this.btn_Browse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(12, 9); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(23, 13); - this.label6.TabIndex = 1; - this.label6.Text = "File"; - // - // tbFileName - // - this.tbFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFileName.Location = new System.Drawing.Point(56, 6); - this.tbFileName.Name = "tbFileName"; - this.tbFileName.Size = new System.Drawing.Size(756, 20); - this.tbFileName.TabIndex = 0; - this.tbFileName.Text = "H:\\Barakah Alarms\\1N2-OP-ARP-CS-0001_Rev_02_FINAL_Zipped_XML_20190804\\ARP-3442-10" + - "01 CS CNMT Spray HDR Block VLV V0001 TRBL.xml"; - this.tbFileName.TextChanged += new System.EventHandler(this.tbFileName_TextChanged); - // - // ofd - // - this.ofd.Filter = "Text Files|*.txt"; - // - // sc1 - // - this.sc1.Dock = System.Windows.Forms.DockStyle.Fill; - this.sc1.Location = new System.Drawing.Point(0, 88); - this.sc1.Name = "sc1"; - // - // sc1.Panel1 - // - this.sc1.Panel1.Controls.Add(this.tcXML); - // - // sc1.Panel2 - // - this.sc1.Panel2.Controls.Add(this.tabControl1); - this.sc1.Size = new System.Drawing.Size(954, 392); - this.sc1.SplitterDistance = 372; - this.sc1.TabIndex = 1; - // - // tcXML - // - this.tcXML.Controls.Add(this.tpXML); - this.tcXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcXML.Location = new System.Drawing.Point(0, 0); - this.tcXML.Name = "tcXML"; - this.tcXML.SelectedIndex = 0; - this.tcXML.Size = new System.Drawing.Size(372, 392); - this.tcXML.TabIndex = 2; - // - // tpXML - // - this.tpXML.Controls.Add(this.tbPROMS); - this.tpXML.Location = new System.Drawing.Point(4, 22); - this.tpXML.Name = "tpXML"; - this.tpXML.Padding = new System.Windows.Forms.Padding(3); - this.tpXML.Size = new System.Drawing.Size(364, 366); - this.tpXML.TabIndex = 1; - this.tpXML.Text = "Raw"; - this.tpXML.UseVisualStyleBackColor = true; - // - // tbPROMS - // - this.tbPROMS.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbPROMS.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbPROMS.Location = new System.Drawing.Point(3, 3); - this.tbPROMS.Multiline = true; - this.tbPROMS.Name = "tbPROMS"; - this.tbPROMS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbPROMS.Size = new System.Drawing.Size(358, 360); - this.tbPROMS.TabIndex = 1; - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tpStructure); - this.tabControl1.Controls.Add(this.tpGrid); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(578, 392); - this.tabControl1.TabIndex = 0; - // - // tpStructure - // - this.tpStructure.Controls.Add(this.tv); - this.tpStructure.Location = new System.Drawing.Point(4, 22); - this.tpStructure.Name = "tpStructure"; - this.tpStructure.Size = new System.Drawing.Size(570, 366); - this.tpStructure.TabIndex = 2; - this.tpStructure.Text = "Structure"; - this.tpStructure.UseVisualStyleBackColor = true; - // - // tv - // - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.Location = new System.Drawing.Point(0, 0); - this.tv.Name = "tv"; - this.tv.Size = new System.Drawing.Size(570, 366); - this.tv.TabIndex = 0; - // - // tpGrid - // - this.tpGrid.Location = new System.Drawing.Point(4, 22); - this.tpGrid.Name = "tpGrid"; - this.tpGrid.Size = new System.Drawing.Size(570, 366); - this.tpGrid.TabIndex = 3; - this.tpGrid.Text = "Grid"; - this.tpGrid.UseVisualStyleBackColor = true; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 480); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(954, 22); - this.statusStrip1.TabIndex = 2; - this.statusStrip1.Text = "statusStrip1"; - this.statusStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.statusStrip1_ItemClicked); - this.statusStrip1.Click += new System.EventHandler(this.tsslStatus_Click); - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - this.tsslStatus.Click += new System.EventHandler(this.tsslStatus_Click); - // - // tmr - // - this.tmr.Tick += new System.EventHandler(this.tmr_Tick); - // - // frmConvertLocalAlarms - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(954, 502); - this.Controls.Add(this.sc1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Name = "frmConvertLocalAlarms"; - this.Text = "Convert Alarms"; - this.Load += new System.EventHandler(this.frmConvertAlarms_Load); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.sc1.Panel1.ResumeLayout(false); - this.sc1.Panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).EndInit(); - this.sc1.ResumeLayout(false); - this.tcXML.ResumeLayout(false); - this.tpXML.ResumeLayout(false); - this.tpXML.PerformLayout(); - this.tabControl1.ResumeLayout(false); - this.tpStructure.ResumeLayout(false); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SplitContainer sc1; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.TabControl tcXML; - private System.Windows.Forms.TabPage tpXML; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tpStructure; - private System.Windows.Forms.TreeView tv; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox tbServer; - private System.Windows.Forms.ComboBox cmbDatabase; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.ComboBox cmbDocVersion; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Button btn_Run; - private System.Windows.Forms.Button btn_Browse; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox tbFileName; - private System.Windows.Forms.Button btnConvert; - private System.Windows.Forms.Button btn_All; - private System.Windows.Forms.TabPage tpGrid; - private System.Windows.Forms.TextBox tbPROMS; - private System.Windows.Forms.Timer tmr; - } -} - diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs deleted file mode 100644 index 16a61091..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs +++ /dev/null @@ -1,727 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using log4net; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - -namespace ConvertLocalAlarms -{ - public partial class frmConvertLocalAlarms : Form - { - public frmConvertLocalAlarms() - { - InitializeComponent(); - } - private void SetDatabaseConnection() - { - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True",tbServer.Text,cmbDatabase.SelectedText ); - } - private void btnBrowse_Click(object sender, EventArgs e) - { - FileInfo fi = new FileInfo(tbFileName.Text); - ofd.InitialDirectory = fi.DirectoryName; - ofd.FileName = fi.Name; - if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - tbFileName.Text = ofd.FileName; - ProcessTxt(); - } - } - private void ProcessTxtFile(string fileName) - { - //FileInfo fi = new FileInfo(fileName); - //StreamReader sr = fi.OpenText(); - //ProcessHeader(sr); - //ProcTextAll = tbPROMS.Text = sr.ReadToEnd(); - //HasSpecialCharacters(ProcTextAll); - //sr.Close(); - //SaveTree(ProcTextAll, ProcNumber, ProcTitle); - FileInfo fi = new FileInfo(fileName); - FileStream sr = fi.OpenRead(); - byte[] buffer = new byte[fi.Length]; - sr.Read(buffer, 0, (int) fi.Length); - string str = Encoding.UTF7.GetString(buffer).Replace("\x95", "\u2022"); - ProcessHeader(str); - int headercount = str.IndexOf("Setpoint"); - headercount = str.IndexOf("\r\n", headercount); - ProcTextAll = tbPROMS.Text = str.Substring(headercount + 2); - sr.Close(); - SaveTree(ProcTextAll, ProcNumber, ProcTitle); - } - Regex regHeader = new Regex("([ A-Z.a-z]+) = '([^']+)'.*", RegexOptions.Compiled); - private void ProcessHeader(string str) - { - ProcNumber=""; - ProcTitle=""; - int offset = 0; - int linelength = 0; - for (int i = 0; i < 5; i++) - { - linelength = str.IndexOf("\r\n",offset)-offset; - string txt = str.Substring(offset,linelength); - offset += linelength + 2; - Match m = regHeader.Match(txt); - switch (i) - { - case 0: - break; - case 1: - if(m.Groups[1].Value == "Alarm") ProcTitle = m.Groups[2].Value; - break; - case 2: - if(m.Groups[1].Value == "AlarmID") ProcNumber = m.Groups[2].Value; - break; - case 3: - break; - case 4: - break; - } - } - } - private void ProcessTxt() - { - ProcessTxtFile(tbFileName.Text); - } - //private void ProcessXML() - //{ - // //string fileName = tbFileName.Text; - // //ProcessXmlFile(fileName); - //} - //private void ProcessXmlFile(string fileName) - //{ - // //UpdateHTML = false; - // //tbXML.Clear(); - // //UpdateHTML = true; - // //XmlDocument xDoc = new XmlDocument(); - // //xDoc.Load(fileName); - // //XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild; - // //string html = GetHtml(xn); - // //tbXML.Text = html; - //} - //private static string GetHtml(XmlNode xn) - //{ - // XmlNode pr = xn.PreviousSibling; - // XmlAttribute xa; - // string html = xn.Attributes["content"].Value; - // while (pr != null && pr.Name == "NoteInstruction") - // { - // html = MergeHTML(pr.Attributes["content"].Value, html); - // pr = pr.PreviousSibling; - // } - // return html; - //} - - //private static string MergeHTML(string part1, string part2) - //{ - // part1 = part1.Replace(""; - //public string HtmlPrefix - //{ - // get { return _HtmlPrefix; } - // set { _HtmlPrefix = value; } - //} - //private void XMLChanged(string xml) - //{ - // Application.DoEvents(); - // xml = "\n" + xml; - // xml = xml.Replace(HtmlPrefix, ""); - // //xml = xml.Replace("\x09", "[Tab]"); - // //xml = xml.Replace("text-indent:0px;\">", "text-indent:0px;\">\r\n"); - // //xml = xml.Replace(" \x09", "\r\n "); - // //xml = xml.Replace("\x09", " "); - // xml = Regex.Replace(xml, "
", "
"); - // xml = Regex.Replace(xml, "
", "
"); - // xml = Regex.Replace(xml, "\\]+\\>", ""); - // xml = Regex.Replace(xml, "\\", ""); - // xml = Regex.Replace(xml, "\\[ \r\n]+\\

]+\\>", "
\r\n"); - // xml = Regex.Replace(xml, "\\

]+\\>", "
\r\n"); - // xml = Regex.Replace(xml, @"
[ \t\r\n]+\[", @"\line ["); - // xml = Regex.Replace(xml, "\\

", ""); - // xml = Regex.Replace(xml, @"\]\t{4,5}", "]\r\n"); - // xml = Regex.Replace(xml, "
\t+(?![[\\u2022])", " "); - // xml = Regex.Replace(xml, "
\t+(?![[\\u2022])", " "); - // xml = Regex.Replace(xml, "\t\t+", " "); - // xml = Regex.Replace(xml, "
", "\r\n"); - // xml = Regex.Replace(xml, "\r\n +", "\r\n"); - // xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n"); - // //aml = Regex.Replace(xml," - // Application.DoEvents(); - // byte[] bytes = Encoding.UTF8.GetBytes(xml); - // MemoryStream ms = new MemoryStream(); - // ms.Write(bytes, 0, bytes.Length); - // ms.Position = 0; - // XmlDocument xDoc2 = new XmlDocument(); - // xDoc2.Load(ms); - // //FileInfo fi = new FileInfo("C:\\Temp\\Alarm.xml"); - // //StreamWriter sw = fi.CreateText(); - // //sw.Write(xml); - // //sw.Close(); - // //XmlDocument xDoc2 = new XmlDocument(); - // //// Lookfor special characters - // ////FindSpecialCharacters(xml); - // //xDoc2.Load(fi.FullName); - // XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0]; - // string prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0); - // string prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0); - // SerialNo = int.Parse(prcSerialNoValue); - // string prcTitleFldName = GetProcInfo(xn3, 1, 0, 0); - // string prcTitleValue = GetProcInfo(xn3, 1, 1, 0); - // string prcNumberFldName = GetProcInfo(xn3, 2, 0, 0); - // string prcNumberValue = GetProcInfo(xn3, 2, 1, 0); - // string prcSourceFldName = GetProcInfo(xn3, 3, 0, 0); - // string prcSourceValue = GetProcInfo(xn3, 3, 1, 0); - // string prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0); - // string prcSetpointValue = GetProcInfo(xn3, 4, 1, 0); - // ProcNumber = prcNumberValue; - // ProcTitle = prcTitleValue; - // // Skip First Node - // UpdateHTML = false; - // tbPROMS.Clear(); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSerialNoFldName,prcSerialNoValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcTitleFldName,prcTitleValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcNumberFldName,prcNumberValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSourceFldName,prcSourceValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSetpointFldName,prcSetpointValue)); - // StringBuilder sbAllText = new StringBuilder(); - // for (int i = 1; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++) - // { - // XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i]; - // sbAllText.Append(xn2.OuterXml); - // } - // tbPROMS.AppendText(sbAllText.ToString().Replace(" ", "\xB7")); - // SaveTree(sbAllText.ToString(), prcNumberValue, prcTitleValue); - // ProcTextAll = sbAllText.ToString(); - // UpdateHTML = true; - //} - String ProcTextAll; - //int SerialNo; - String ProcNumber; - String ProcTitle; - private void SaveTree(string text, string procNumber, string procTitle) - { - tv.Nodes.Clear(); - MemoryStream ms = GetMemoryStream(text); - using (TextReader tr = new StreamReader(ms)) - { - Dictionary lookup = new Dictionary(); - lookup.Add(0, tv.Nodes.Add(string.Format("{0} - {1}", procNumber, procTitle))); - int level = 0; - int lastLevel = 0; - int lastIndent = 0; - int extra = 0; - string lastTab = ""; - Queue enQueue = null; - Queue deQueue = null; - while (tr.Peek() >= 0 || deQueue != null) - { - string lineText; - if (deQueue != null) - { - extra = 1; - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - } - else - { - extra = 0; - lineText = tr.ReadLine(); - if (lineText == "NOTE") - enQueue = new Queue(); - if (lineText.StartsWith("")) - { - enQueue = new Queue(); - enQueue.Enqueue("NOTE"); - } - lineText = lineText.Replace("", ""); - } - // Strip XML Tags - lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - if (lineText.Replace("\t", "") != "") - { - Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|\u2022)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - string tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 1; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*[.0-9]*")) // Substep - { - level = 1 + tab.Length - tab.Replace(".","").Length; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (tab == "") // Paragraph - { - if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS)")) extra = 0; - level = lastLevel + 1; - } - else if (tab == "\u2022")//bullet - level = indent + 2; - if (level < lastLevel) - while (level < lastLevel) lookup.Remove(lastLevel--); - string txt = string.Format("{0}|{1}||{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[4].Value); - if (txt == "|||") txt = lineText; - if (enQueue == null) - { - if (level > lookup.Count - extra) extra = 0; - if(level + extra -1 == lookup.Count) - Console.WriteLine("Problems {0}, {1}",procNumber,txt); - else if (lookup.Count <= level) - lookup.Add(level + extra, lookup[level + extra - 1].Nodes.Add(txt)); - else - lookup[level + extra] = lookup[level + extra - 1].Nodes.Add(txt); - } - else - { - enQueue.Enqueue(lineText); - } - lastTab = tab; - lastLevel = level; - lastIndent = indent; - } - } - } - } - //private ItemInfo FindPrevious(SortedDictionary dicSerialNo, int serialNo) - //{ - // ItemInfo lastItem = null; - // foreach (int serno in dicSerialNo.Keys) - // { - // if (serno > serialNo) - // return lastItem; - // lastItem = dicSerialNo[serno]; - // } - // return lastItem; - //} - private bool runOne = true; - private static MemoryStream GetMemoryStream(string text) - { - byte[] bytes = Encoding.UTF8.GetBytes(text); - MemoryStream ms = new MemoryStream(bytes); - ms.Position = 0; - return ms; - } - //private string GetProcInfo(XmlNode xn3, int p1, int p2, int p3) - //{ - // return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].Value.Trim("\r\n ".ToCharArray()); - //} - //private bool _UpdateHTML = true; - //public bool UpdateHTML - //{ - // get { return _UpdateHTML; } - // set { _UpdateHTML = value; } - //} - private string IndentifySpecialCharacters(string txt) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in txt) - { - if (((int)c) < 32 || ((int)c) > 256) - sb.Append(string.Format("[x{0:X4}]", (int)c)); - else - sb.Append(c == ' ' ? '\xb7' : c); - } - return sb.ToString(); - } - private void btnRun_Click(object sender, EventArgs e) - { - ProcessTxt(); - } - //Regex regColorCode = new Regex(@"(\<[^<>]+\>)([^<>]*)", RegexOptions.Singleline); - //Regex regColorCodeText = new Regex("(\t*)([^\t]*)", RegexOptions.Singleline); - //private void ColorCoded(string str) - //{ - // rtbXML.Clear(); - // Color fColor = Color.PaleTurquoise; - // Color fNext = Color.PaleTurquoise; - // foreach(Match m in regColorCode.Matches(str)) - // { - // string fmt = m.Groups[1].Value; - // string txt = m.Groups[2].Value; - // if (fmt.StartsWith("") - // fNext = Color.PaleTurquoise; - // else if (fmt == "
") - // fColor = Color.PeachPuff; - // else if (fmt == "

") - // fColor = Color.LightPink; - // AddToXML(fmt, fColor); - // fColor = fNext; - // foreach (Match mm in regColorCodeText.Matches(txt)) - // { - // string tabs = mm.Groups[1].Value; - // string nontabs = mm.Groups[2].Value; - // AddToXML(tabs, Color.Khaki); - // AddToXML(nontabs, Color.Yellow); - // } - // } - //} - - //private void AddToXML(string txt, Color fColor) - //{ - // if(txt=="") return; - // rtbXML.SelectionStart = rtbXML.TextLength; - // rtbXML.SelectionBackColor = fColor; - // rtbXML.SelectedText = txt; - //} - private double GetMyOrder(Csla.SortedBindingList myList, string DVIFolderName) - { - double lastNum = 0; - // Console.WriteLine("--->>> FolderName {0} Insert Count {1}",DVIFolderName, myList.Count); - foreach (FolderInfo myFolder in myList) - { - // Console.WriteLine("--->>> FolderName {0} Insert Name {1} Insert Order {2}",DVIFolderName, myFolder.Name, myFolder.ManualOrder); - if (myFolder.Name.CompareTo(DVIFolderName) >= 0) - return (lastNum + (double)myFolder.ManualOrder) / 2.0; - lastNum = myFolder.ManualOrder ?? 1.0; - } - return lastNum + 1; - } - private void tmr_Tick(object sender, EventArgs e) - { - tmr.Enabled = false; - // If timer on the its ready to proccess - int idnew = 0; - string str = AutoFolder; - if (str != null && str.Length > 5) - { - - DirectoryInfo di = new DirectoryInfo(str); - DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - VEPROMS.CSLA.Library.FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo; - using (VEPROMS.CSLA.Library.Folder flder = MakeFolder(str, grandParent)) - { - ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst; - flder.ManualOrder = 0; - double myOrder = GetMyOrder(grandParent.SortedChildFolders, str); flder.ManualOrder = myOrder; - //Console.WriteLine("myOrder = {0}, flder = {1}", myOrder, flder.ManualOrder); - flder.Save(); - // create a a DocVersion - - using (DocVersion dv = DocVersion.MakeDocVersion(flder, "Working Draft", null, null, null, null)) - { - dv.DocVersionAssociations.Add(fst.Get()); - dv.Save(); - idnew = dv.VersionID; - } - } - - ProcessFolder(di, DocVersionInfo.Get(idnew)); - } - this.Close(); - } - - private static Folder MakeFolder(string str, VEPROMS.CSLA.Library.FolderInfo grandParent) - { - int num = 0; - foreach(FolderInfo chld in grandParent.ChildFolders) - { - if(chld.Name.StartsWith(str)) - { - if(chld.Name.StartsWith(str + ".")) - { - string str2=chld.Name.Substring(str.Length+1); - num = Math.Max(int.Parse(str2)+1,num); - } - else num=1; - } - } - return Folder.MakeFolder(grandParent.Get(), null, str+(num==0?"":"." + num.ToString()), str, str.Substring(12, 2), null, 1, null); - } - - private static string _AutoFolder = null; - private static string AutoFolder - { - get - { - if (_AutoFolder == null) - { - _AutoFolder = System.Environment.CommandLine; - _AutoFolder = _AutoFolder.Substring(_AutoFolder.IndexOf(@".exe"" ") + 6).Trim(" \t\r\n".ToCharArray()); - } - if (_AutoFolder.Length < 1) - return null; - return _AutoFolder; - } - } - private void frmConvertAlarms_Load(object sender, EventArgs e) - { - _MyFlexGrid = new VlnFlexGrid(); - LoadSettings(); - SetEventHandlers(); - string str = AutoFolder; - if (str != null && str.Length > 5) - { - tmr.Enabled = true; - } - - } - private void SetEventHandlers() - { - tbFileName.TextChanged += tbFileName_TextChanged; - Move += frmConvertAlarms_Move; - Resize += frmConvertAlarms_Resize; - sc1.SplitterMoved += sc1_SplitterMoved; - //sc2.SplitterMoved += sc2_SplitterMoved; - tbServer.TextChanged+=tbServer_TextChanged; - cmbDatabase.TextChanged+=cmbDatabase_TextChanged; - cmbDatabase.Click += cmbDatabase_Click; - cmbDocVersion.TextChanged+=cmbDocVersion_TextChanged; - //BuildTableCombo(); - //BuildProcedureSetCombo(); - } - - void cmbDatabase_Click(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void BuildProcedureSetCombo() - { - DocVersionInfoList dvil = DocVersionInfoList.Get(); - cmbDocVersion.DataSource = dvil; - cmbDocVersion.DisplayMember = "SearchDVPath"; - cmbDocVersion.ValueMember = "VersionId"; - } - - private void cmbDocVersion_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.ProcedureSet = (int) cmbDocVersion.SelectedValue; - Properties.Settings.Default.Save(); - } - - private void cmbDatabase_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void tbServer_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.SqlServer = tbServer.Text; - Properties.Settings.Default.Save(); - string db = cmbDatabase.Text; - try - { - BuildDatabaseCombo(); - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void BuildDatabaseCombo() - { - string tmp = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True",tbServer.Text,"MASTER"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); - // SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - //System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - //cms.Items.Add("Choose Database"); - //System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - //tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - //tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - //tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if (dr["functionality"].ToString() == "Approval") - cmbDatabase.Items.Add( dr["name"].ToString()); - } - } - void frmConvertAlarms_Resize(object sender, EventArgs e) - { - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.Save(); - } - void frmConvertAlarms_Move(object sender, EventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Save(); - } - void tbFileName_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.FileName = tbFileName.Text; - Properties.Settings.Default.Save(); - } - private void sc1_SplitterMoved(object sender, SplitterEventArgs e) - { - Properties.Settings.Default.Split1 = sc1.SplitterDistance; - Properties.Settings.Default.Save(); - } - private void LoadSettings() - { - Size = Properties.Settings.Default.Size; - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default.FileName != null && Properties.Settings.Default.FileName != "") - { - FileInfo fi = new FileInfo(Properties.Settings.Default.FileName); - tbFileName.Text = fi.FullName; - } - sc1.SplitterDistance = Properties.Settings.Default.Split1; - tbServer.Text = Properties.Settings.Default.SqlServer; - cmbDatabase.Text = Properties.Settings.Default.Database; - try - { - BuildDatabaseCombo(); - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.Text); - BuildProcedureSetCombo(); - cmbDocVersion.SelectedValue = Properties.Settings.Default.ProcedureSet; - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void tsslStatus_Click(object sender, EventArgs e) - { - } - - //private void rtbXML_SelectionChanged(object sender, EventArgs e) - //{ - //} - //private void tbXML_TextChanged(object sender, EventArgs e) - //{ - // if (UpdateHTML) - // { - // htmlChanged(tbXML.Text); - // XMLChanged(tbXML.Text); - // ColorCoded(tbXML.Text); - // } - //} - //private bool _UpdateTbXML = true; - - //public bool UpdateTbXML - //{ - // get { return _UpdateTbXML; } - // set { _UpdateTbXML = value; } - //} - //private void rtbXML_TextChanged(object sender, EventArgs e) - //{ - // //if (UpdateHTML) - // //{ - // // UpdateHTML = false; - // // htmlChanged(rtbXML.Text); - // // XMLChanged(rtbXML.Text); - // // tbXML.Text = rtbXML.Text; - // // UpdateHTML = true; - // //} - //} - private void btnConvert_Click(object sender, EventArgs e) - { - DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - try - { - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi); - } - catch (Exception ex) - { - Console.WriteLine("Error: {0}.{1} {2} {3}",dvi.MyFolder.Name,ProcNumber, ex.GetType().Name, ex.Message); - } - } - //SortedDictionary dicSerialNo; - private void btnAll_Click(object sender, EventArgs e) - { - //dicSerialNo = new SortedDictionary(); - FileInfo fi = new FileInfo(tbFileName.Text); - DirectoryInfo di = fi.Directory; - // Loop through list - DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - ProcessFolder(di,dvi); - } - - private void ProcessFolder(DirectoryInfo di, DocVersionInfo dvi) - { - runOne = false; - // Get List of files - //DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - foreach (FileInfo f in di.GetFiles("*.txt")) - { - if (f.Name.StartsWith("AlarmData") == false && f.Name.Length > 14) - { - tsslStatus.Text = f.Name; - Application.DoEvents(); - // Process each file - try - { - ProcessTxtFile(f.FullName); - // Convert each file - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo); - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi); - } - catch (Exception ex) - { - Console.WriteLine("Error: {0}.{1} {2} {3}", di.Name, f.Name, ex.GetType().Name, ex.Message); - } - - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi); - } - } - runOne = true; - } - - private void statusStrip1_Click(object sender, EventArgs e) - { - if (tbPROMS.SelectedText != "") - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText)); - Clipboard.Clear(); - Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText)); - } - } - - private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) - { - if (tbPROMS.SelectedText != "") - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText)); - Clipboard.Clear(); - Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText)); - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.resx b/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.resx deleted file mode 100644 index 09f332c3..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 87, 17 - - - 203, 3 - - - 25 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ReadFile/App.config b/PROMS/BarakahConvert/ReadFile/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/BarakahConvert/ReadFile/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ReadFile/Form1.Designer.cs b/PROMS/BarakahConvert/ReadFile/Form1.Designer.cs deleted file mode 100644 index 757b87e5..00000000 --- a/PROMS/BarakahConvert/ReadFile/Form1.Designer.cs +++ /dev/null @@ -1,48 +0,0 @@ -namespace ReadFile -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(540, 262); - this.Name = "Form1"; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.Form1_Load); - this.ResumeLayout(false); - - } - - #endregion - } -} - diff --git a/PROMS/BarakahConvert/ReadFile/Form1.cs b/PROMS/BarakahConvert/ReadFile/Form1.cs deleted file mode 100644 index 60524075..00000000 --- a/PROMS/BarakahConvert/ReadFile/Form1.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; - -namespace ReadFile -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void Form1_Load(object sender, EventArgs e) - { - Test(); - } - public void Test() - { - // Use default replacement fallback for invalid encoding. - //UnicodeEncoding enc = new UnicodeEncoding(true, false, false); - UTF8Encoding enc = new UTF8Encoding(); - // Define a string with various Unicode characters. - string str1 = "AB YZ 19 DEGREE \xb0 BULLET \x95 \uD800\udc05 \u00e4"; - str1 += "Unicode characters. \u00a9 \u010C s \u0062\u0308"; - Console.WriteLine("Created original string...\n"); - - // Convert string to byte array. - byte[] bytes = enc.GetBytes(str1); - - FileStream fs = File.Create(@".\characters.bin"); - BinaryWriter bw = new BinaryWriter(fs); - bw.Write(bytes); - bw.Close(); - - // Read bytes from file. - FileStream fsIn = File.OpenRead(@".\characters.bin"); - BinaryReader br = new BinaryReader(fsIn); - - const int count = 10; // Number of bytes to read at a time. - byte[] bytesRead = new byte[10]; // Buffer (byte array). - int read; // Number of bytes actually read. - string str2 = String.Empty; // Decoded string. - - // Try using Encoding object for all operations. - do - { - read = br.Read(bytesRead, 0, count); - str2 += enc.GetString(bytesRead, 0, read); - } while (read == count); - br.Close(); - Console.WriteLine("Decoded string using UnicodeEncoding.GetString()..."); - CompareForEquality(str1, str2); - Console.WriteLine(); - - // Use Decoder for all operations. - fsIn = File.OpenRead(@".\characters.bin"); - br = new BinaryReader(fsIn); - Decoder decoder = enc.GetDecoder(); - char[] chars = new char[50]; - int index = 0; // Next character to write in array. - int written = 0; // Number of chars written to array. - do - { - read = br.Read(bytesRead, 0, count); - if (index + decoder.GetCharCount(bytesRead, 0, read) - 1 >= chars.Length) - Array.Resize(ref chars, chars.Length + 50); - - written = decoder.GetChars(bytesRead, 0, read, chars, index); - index += written; - } while (read == count); - br.Close(); - // Instantiate a string with the decoded characters. - string str3 = new String(chars, 0, index); - Console.WriteLine("Decoded string using UnicodeEncoding.Decoder.GetString()..."); - CompareForEquality(str1, str3); - } - - private static void CompareForEquality(string original, string decoded) - { - bool result = original.Equals(decoded); - Console.WriteLine("original = decoded: {0}", - original.Equals(decoded, StringComparison.Ordinal)); - if (!result) - { - Console.WriteLine("Code points in original string:{0}",original); - foreach (var ch in original) - Console.Write("{0} ", Convert.ToUInt16(ch).ToString("X4")); - Console.WriteLine(); - - Console.WriteLine("Code points in decoded string:{0}",decoded); - foreach (var ch in decoded) - Console.Write("{0} ", Convert.ToUInt16(ch).ToString("X4")); - Console.WriteLine(); - } - } - // The example displays the following output: - // Created original string... - // - // Decoded string using UnicodeEncoding.GetString()... - // original = decoded: False - // Code points in original string: - // 0041 0042 0020 0059 005A 0020 0031 0039 0020 D800 DC05 0020 00E4 0055 006E 0069 0063 006F - // 0064 0065 0020 0063 0068 0061 0072 0061 0063 0074 0065 0072 0073 002E 0020 00A9 0020 010C - // 0020 0073 0020 0062 0308 - // Code points in decoded string: - // 0041 0042 0020 0059 005A 0020 0031 0039 0020 FFFD FFFD 0020 00E4 0055 006E 0069 0063 006F - // 0064 0065 0020 0063 0068 0061 0072 0061 0063 0074 0065 0072 0073 002E 0020 00A9 0020 010C - // 0020 0073 0020 0062 0308 - // - // Decoded string using UnicodeEncoding.Decoder.GetString()... - // original = decoded: True - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Form1.resx b/PROMS/BarakahConvert/ReadFile/Form1.resx deleted file mode 100644 index 1af7de15..00000000 --- a/PROMS/BarakahConvert/ReadFile/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/BarakahConvert/ReadFile/Program.cs b/PROMS/BarakahConvert/ReadFile/Program.cs deleted file mode 100644 index 4e2ee27c..00000000 --- a/PROMS/BarakahConvert/ReadFile/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ReadFile -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/ReadFile/Properties/AssemblyInfo.cs deleted file mode 100644 index ef4671b9..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ReadFile")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ReadFile")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d6efcdc1-06b8-4c4d-b126-515701db696b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/ReadFile/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/ReadFile/Properties/Resources.Designer.cs deleted file mode 100644 index 3bf3a133..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +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. -// -//------------------------------------------------------------------------------ - -namespace ReadFile.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ReadFile.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Properties/Resources.resx b/PROMS/BarakahConvert/ReadFile/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/BarakahConvert/ReadFile/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/ReadFile/Properties/Settings.Designer.cs deleted file mode 100644 index cac34989..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +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. -// -//------------------------------------------------------------------------------ - -namespace ReadFile.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Properties/Settings.settings b/PROMS/BarakahConvert/ReadFile/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/BarakahConvert/ReadFile/ReadFile.csproj b/PROMS/BarakahConvert/ReadFile/ReadFile.csproj deleted file mode 100644 index 22a09db4..00000000 --- a/PROMS/BarakahConvert/ReadFile/ReadFile.csproj +++ /dev/null @@ -1,112 +0,0 @@ - - - - - Debug - AnyCPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5} - WinExe - Properties - ReadFile - ReadFile - v4.5 - 512 - SAK - SAK - SAK - SAK - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/XMLConvert/App.config b/PROMS/BarakahConvert/XMLConvert/App.config deleted file mode 100644 index bae5d6d8..00000000 --- a/PROMS/BarakahConvert/XMLConvert/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/PROMS/BarakahConvert/XMLConvert/ConvertTable.cs b/PROMS/BarakahConvert/XMLConvert/ConvertTable.cs deleted file mode 100644 index 269cbbe4..00000000 --- a/PROMS/BarakahConvert/XMLConvert/ConvertTable.cs +++ /dev/null @@ -1,172 +0,0 @@ -using C1.Win.C1FlexGrid; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - -namespace XMLConvert -{ - public partial class frmConvertXML - { - private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level) - { - XmlNode xn2 = xn.SelectSingleNode("tr/td/table"); - if (xn2 != null) xn = xn2; - VlnFlexGrid fg = _MyFlexGrid; - fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point); - fg.Clear(); - fg.Rows.Count = 1; - fg.Cols.Count = 1; - int rows = 0; - fg.MergedRanges.Clear(); - foreach (XmlNode xr in xn.ChildNodes) - { - if (xr.Name == "tr") - { - ++rows; - AddTableRow(xr, fg, rows); - } - } - fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count); - fg.BringToFront(); - fg.Invalidate(); - Application.DoEvents(); - fg.MakeRTFcells(); - //Well, Can I save the table - using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, "table", 20008, E_FromType.Table)) - { - Grid.MakeGrid(step.MyContent, fg.GetXMLData(), ""); - } - } - public static VlnFlexGrid _MyFlexGrid = null; - private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows) - { - if (rows > fg.Rows.Count) - fg.Rows.Count = rows; - int cols = 0; - foreach (XmlNode xc in xr.ChildNodes) - { - ++cols; - //if (xc.InnerText.Contains("RC-V200")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerText.Contains("RC-V121")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01")) - // Console.WriteLine("here"); - CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - //Console.WriteLine("Check {0}", cr2); - while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1) - { - cols++; - cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - } - AddMergedCells(fg, rows, cols, xc); - //ShowMergedCells(fg); - if (xc.Name == "td") - { - AddTableColumn(xc, fg, rows, cols); - } - } - } - private static void ShowMergedCells(VlnFlexGrid fg) - { - for (int r = 0; r < fg.Rows.Count; r++) - { - for (int c = 0; c < fg.Cols.Count; c++) - { - CellRange cr3 = GetMyMergedRange(fg, r, c); - if (fg.MergedRanges.Contains(cr3)) - Console.WriteLine("*** cr3 r={0},c={1},rng={2}", r, c, cr3); - } - } - } - private static int GetSpan(string span) - { - int retval = int.Parse("0" + (span ?? "")); - if (retval == 0) return 0; - return retval - 1; - } - private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc) - { - string colspan = GetAttribute(xc, "colspan"); - string rowspan = GetAttribute(xc, "rowspan"); - if (colspan != null || rowspan != null) - { - //AddMergedRanges - int r1 = rows; - int c1 = cols; - int r2 = r1 + GetSpan(rowspan); - if (r2 > fg.Rows.Count) fg.Rows.Count = r2; - int c2 = c1 + GetSpan(colspan); - if (c2 > fg.Cols.Count) fg.Cols.Count = c2; - CellRange cr = new CellRange(); - cr.r1 = r1 - 1; - cr.r2 = r2 - 1; - cr.c1 = c1 - 1; - cr.c2 = c2 - 1; - fg.MergedRanges.Add(cr); - //Console.WriteLine("Merged {0}", cr); - } - } - - private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c) - { - foreach (CellRange cr in fg.MergedRanges) - { - if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c) - return cr; - } - return fg.GetMergedRange(r, c); - } - private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled); - private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols) - { - //Console.WriteLine("Rows {0}, Cols {1}", rows, cols); - if (cols > fg.Cols.Count) - fg.Cols.Count = cols; - string width = GetAttribute(xc, "width"); - if (width != null && width != "" && regNumber.IsMatch(width)) - { - if (width.EndsWith("%")) - fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100); - else - fg.Cols[cols - 1].Width = int.Parse(width) * 96 / 72; - } - StringBuilder sb = new StringBuilder(); - string prefix = ""; - foreach (XmlNode xn in xc.ChildNodes) - { - if (xn.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - if (xn.Name == "ul") - { - foreach (XmlNode xn2 in xn.ChildNodes) - { - if (xn2.Name == "li") - { - sb.Append(prefix + "*" + xn.InnerText); - } - if (xn2.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - } - } - } - if (width != null && width != "" && !regNumber.IsMatch(width)) - { - Console.WriteLine("*** width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml); - } - fg[rows - 1, cols - 1] = sb.ToString(); - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Program.cs b/PROMS/BarakahConvert/XMLConvert/Program.cs deleted file mode 100644 index 523e77a9..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace XMLConvert -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmConvertXML()); - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/XMLConvert/Properties/AssemblyInfo.cs deleted file mode 100644 index 7d188a33..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("XMLConvert")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("XMLConvert")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("76909147-264a-4d49-84e9-6c6da792991a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/XMLConvert/Properties/Resources.Designer.cs deleted file mode 100644 index 663b4e4e..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +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. -// -//------------------------------------------------------------------------------ - -namespace XMLConvert.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XMLConvert.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.resx b/PROMS/BarakahConvert/XMLConvert/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/BarakahConvert/XMLConvert/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/XMLConvert/Properties/Settings.Designer.cs deleted file mode 100644 index 9c05d34e..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +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. -// -//------------------------------------------------------------------------------ - -namespace XMLConvert.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/Settings.settings b/PROMS/BarakahConvert/XMLConvert/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/licenses.licx b/PROMS/BarakahConvert/XMLConvert/Properties/licenses.licx deleted file mode 100644 index c4eba94b..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/BarakahConvert/XMLConvert/SampleXML.cs b/PROMS/BarakahConvert/XMLConvert/SampleXML.cs deleted file mode 100644 index 982f4b18..00000000 --- a/PROMS/BarakahConvert/XMLConvert/SampleXML.cs +++ /dev/null @@ -1,319 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace XMLConvert -{ - public partial class frmConvertXML - { - private string xmlSample1 = @" - - <?xml version='1.0' encoding='utf-16'?> -<VlnBorders Rows='5' Columns='3'> - <VerticalLines Rows='5' Columns='4'> - <Lines> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - </Lines> - </VerticalLines> - <HorizontalLines Rows='6' Columns='3'> - <Lines> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - </Lines> - </HorizontalLines> -</VlnBorders> - Volian Custom Borders - False - 0 - 96 - False - Black - 255, 255, 255 - Custom - Both - WithFocus - Solid - OwnerDraw - 255, 255, 255 - Custom - None - Default - Courier New, 12pt - 3, 3, 3, 3 - 0, 0 - 0, 0 - No - 0, 0, 0, 0 - NoControl - - - 3 - 0 - 125 - - - - 68 - - - 178 - - - 368 - - - - 5 - 0 - 25 - - - - 25 - - - 25 - - - 25 - - - 25 - - - 51 - - - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 PROC \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 PROC TITLE \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 FUNCTION \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 R-3 \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Restore CCW \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Cross-tie CCW from Unit Two \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 R-11 \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Restore RHR \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Repower RHR pump(s) from Unit Two \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 LS-2 \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Start-up AFW \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Cross-tie AFW from Unit Two \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 LS-6 \par - \par - \par -} - - 48 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 RCS Make-up \par - With CVCS \par - Cross-tie \par -} - - 48 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 CVCS Cross-tie For Level Control\par - \par -} - - 32 - - - - - - - - - - - - - - - - - - - - - - - - - -"; - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/XMLConvert.csproj b/PROMS/BarakahConvert/XMLConvert/XMLConvert.csproj deleted file mode 100644 index f94bacc9..00000000 --- a/PROMS/BarakahConvert/XMLConvert/XMLConvert.csproj +++ /dev/null @@ -1,141 +0,0 @@ - - - - - Debug - AnyCPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF} - WinExe - Properties - XMLConvert - XMLConvert - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll - - - - - - - - - - - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - False - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll - - - - - Form - - - Form - - - Form - - - frmConvertXML.cs - - - - - - frmConvertXML.cs - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.Designer.cs b/PROMS/BarakahConvert/XMLConvert/frmConvertXML.Designer.cs deleted file mode 100644 index be211577..00000000 --- a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.Designer.cs +++ /dev/null @@ -1,434 +0,0 @@ -namespace XMLConvert -{ - partial class frmConvertXML - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.tbFile = new System.Windows.Forms.TextBox(); - this.btnLoad = new System.Windows.Forms.Button(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.btnFindNodeTypes = new System.Windows.Forms.Button(); - this.btnStructure = new System.Windows.Forms.Button(); - this.btnLoadContent = new System.Windows.Forms.Button(); - this.btnLoadProcedure = new System.Windows.Forms.Button(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.pbSection = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.pbStep = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.btnAll = new System.Windows.Forms.Button(); - this.btnAllStructure = new System.Windows.Forms.Button(); - this.pbProcs = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.btnAllStructure2 = new System.Windows.Forms.Button(); - this.lblProcedure = new System.Windows.Forms.Label(); - this.lblSection = new System.Windows.Forms.Label(); - this.lblStep = new System.Windows.Forms.Label(); - this.btnAllContent = new System.Windows.Forms.Button(); - this.btnHTML = new System.Windows.Forms.Button(); - this.btnHTML2 = new System.Windows.Forms.Button(); - this.btnCandN = new System.Windows.Forms.Button(); - this.btnHTLM3 = new System.Windows.Forms.Button(); - this.btnAllContent2 = new System.Windows.Forms.Button(); - this.btnVerbs = new System.Windows.Forms.Button(); - this.btnFigures = new System.Windows.Forms.Button(); - this.btnTables = new System.Windows.Forms.Button(); - this.bntTable2 = new System.Windows.Forms.Button(); - this.btnStepOrNo = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(22, 19); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(48, 13); - this.label1.TabIndex = 0; - this.label1.Text = "XML File"; - // - // tbFile - // - this.tbFile.Location = new System.Drawing.Point(85, 17); - this.tbFile.Name = "tbFile"; - this.tbFile.Size = new System.Drawing.Size(578, 20); - this.tbFile.TabIndex = 1; - this.tbFile.Text = "C:\\Development\\Proms\\Barakah\\AOPRev1\\AOP CPP Batch 1\\XML\\procedure\\1N2-OP-AOP-MP-" + - "0001 Rev01 FINAL - Main Transformer Abnormal.xml"; - // - // btnLoad - // - this.btnLoad.Location = new System.Drawing.Point(12, 43); - this.btnLoad.Name = "btnLoad"; - this.btnLoad.Size = new System.Drawing.Size(58, 23); - this.btnLoad.TabIndex = 2; - this.btnLoad.Text = "Load"; - this.btnLoad.UseVisualStyleBackColor = true; - this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click); - // - // tbResults - // - this.tbResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbResults.Location = new System.Drawing.Point(12, 183); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.tbResults.Size = new System.Drawing.Size(726, 351); - this.tbResults.TabIndex = 3; - this.tbResults.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbResults_KeyDown); - // - // btnFindNodeTypes - // - this.btnFindNodeTypes.Location = new System.Drawing.Point(76, 43); - this.btnFindNodeTypes.Name = "btnFindNodeTypes"; - this.btnFindNodeTypes.Size = new System.Drawing.Size(92, 23); - this.btnFindNodeTypes.TabIndex = 4; - this.btnFindNodeTypes.Text = "FindNodeTypes"; - this.btnFindNodeTypes.UseVisualStyleBackColor = true; - this.btnFindNodeTypes.Click += new System.EventHandler(this.btnFindNodeTypes_Click); - // - // btnStructure - // - this.btnStructure.Location = new System.Drawing.Point(174, 43); - this.btnStructure.Name = "btnStructure"; - this.btnStructure.Size = new System.Drawing.Size(59, 23); - this.btnStructure.TabIndex = 5; - this.btnStructure.Text = "Structure"; - this.btnStructure.UseVisualStyleBackColor = true; - this.btnStructure.Click += new System.EventHandler(this.btnStructure_Click); - // - // btnLoadContent - // - this.btnLoadContent.Location = new System.Drawing.Point(270, 43); - this.btnLoadContent.Name = "btnLoadContent"; - this.btnLoadContent.Size = new System.Drawing.Size(83, 23); - this.btnLoadContent.TabIndex = 6; - this.btnLoadContent.Text = "Load Content"; - this.btnLoadContent.UseVisualStyleBackColor = true; - this.btnLoadContent.Click += new System.EventHandler(this.btnLoadContent_Click); - // - // btnLoadProcedure - // - this.btnLoadProcedure.AccessibleDescription = "z"; - this.btnLoadProcedure.Location = new System.Drawing.Point(643, 43); - this.btnLoadProcedure.Name = "btnLoadProcedure"; - this.btnLoadProcedure.Size = new System.Drawing.Size(95, 23); - this.btnLoadProcedure.TabIndex = 7; - this.btnLoadProcedure.Text = "Load Procedure"; - this.btnLoadProcedure.UseVisualStyleBackColor = true; - this.btnLoadProcedure.Click += new System.EventHandler(this.btnLoadProcedure_Click); - // - // btnBrowse - // - this.btnBrowse.Location = new System.Drawing.Point(669, 14); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(75, 23); - this.btnBrowse.TabIndex = 8; - this.btnBrowse.Text = "Browse"; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // ofd - // - this.ofd.FileName = "openFileDialog1"; - // - // pbSection - // - // - // - // - this.pbSection.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pbSection.Location = new System.Drawing.Point(99, 141); - this.pbSection.Name = "pbSection"; - this.pbSection.Size = new System.Drawing.Size(639, 12); - this.pbSection.TabIndex = 9; - this.pbSection.Text = "progressBarX1"; - // - // pbStep - // - // - // - // - this.pbStep.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pbStep.Location = new System.Drawing.Point(99, 159); - this.pbStep.Name = "pbStep"; - this.pbStep.Size = new System.Drawing.Size(639, 13); - this.pbStep.TabIndex = 10; - this.pbStep.Text = "progressBarX2"; - // - // btnAll - // - this.btnAll.Location = new System.Drawing.Point(705, 72); - this.btnAll.Name = "btnAll"; - this.btnAll.Size = new System.Drawing.Size(33, 23); - this.btnAll.TabIndex = 11; - this.btnAll.Text = "All"; - this.btnAll.UseVisualStyleBackColor = true; - this.btnAll.Click += new System.EventHandler(this.btnAll_Click); - // - // btnAllStructure - // - this.btnAllStructure.Location = new System.Drawing.Point(186, 72); - this.btnAllStructure.Name = "btnAllStructure"; - this.btnAllStructure.Size = new System.Drawing.Size(47, 23); - this.btnAllStructure.TabIndex = 12; - this.btnAllStructure.Text = "All Structure"; - this.btnAllStructure.UseVisualStyleBackColor = true; - this.btnAllStructure.Click += new System.EventHandler(this.btnAllStructure_Click); - // - // pbProcs - // - // - // - // - this.pbProcs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pbProcs.Location = new System.Drawing.Point(99, 123); - this.pbProcs.Name = "pbProcs"; - this.pbProcs.Size = new System.Drawing.Size(639, 12); - this.pbProcs.TabIndex = 13; - this.pbProcs.Text = "progressBarX1"; - // - // btnAllStructure2 - // - this.btnAllStructure2.Location = new System.Drawing.Point(186, 94); - this.btnAllStructure2.Name = "btnAllStructure2"; - this.btnAllStructure2.Size = new System.Drawing.Size(47, 23); - this.btnAllStructure2.TabIndex = 14; - this.btnAllStructure2.Text = "All Structure"; - this.btnAllStructure2.UseVisualStyleBackColor = true; - this.btnAllStructure2.Click += new System.EventHandler(this.btnAllStructure2_Click); - // - // lblProcedure - // - this.lblProcedure.Location = new System.Drawing.Point(12, 123); - this.lblProcedure.Name = "lblProcedure"; - this.lblProcedure.Size = new System.Drawing.Size(86, 18); - this.lblProcedure.TabIndex = 15; - this.lblProcedure.Text = "Procedure"; - // - // lblSection - // - this.lblSection.Location = new System.Drawing.Point(12, 141); - this.lblSection.Name = "lblSection"; - this.lblSection.Size = new System.Drawing.Size(86, 18); - this.lblSection.TabIndex = 16; - this.lblSection.Text = "Section"; - // - // lblStep - // - this.lblStep.Location = new System.Drawing.Point(12, 160); - this.lblStep.Name = "lblStep"; - this.lblStep.Size = new System.Drawing.Size(86, 18); - this.lblStep.TabIndex = 17; - this.lblStep.Text = "Step"; - // - // btnAllContent - // - this.btnAllContent.Location = new System.Drawing.Point(270, 72); - this.btnAllContent.Name = "btnAllContent"; - this.btnAllContent.Size = new System.Drawing.Size(33, 23); - this.btnAllContent.TabIndex = 18; - this.btnAllContent.Text = "All"; - this.btnAllContent.UseVisualStyleBackColor = true; - this.btnAllContent.Click += new System.EventHandler(this.btnAllContent_Click); - // - // btnHTML - // - this.btnHTML.Location = new System.Drawing.Point(359, 43); - this.btnHTML.Name = "btnHTML"; - this.btnHTML.Size = new System.Drawing.Size(51, 23); - this.btnHTML.TabIndex = 19; - this.btnHTML.Text = "HTML"; - this.btnHTML.UseVisualStyleBackColor = true; - this.btnHTML.Click += new System.EventHandler(this.btnHTML_Click); - // - // btnHTML2 - // - this.btnHTML2.Location = new System.Drawing.Point(359, 72); - this.btnHTML2.Name = "btnHTML2"; - this.btnHTML2.Size = new System.Drawing.Size(51, 23); - this.btnHTML2.TabIndex = 20; - this.btnHTML2.Text = "HTML2"; - this.btnHTML2.UseVisualStyleBackColor = true; - this.btnHTML2.Click += new System.EventHandler(this.btnHTML2_Click); - // - // btnCandN - // - this.btnCandN.Location = new System.Drawing.Point(416, 43); - this.btnCandN.Name = "btnCandN"; - this.btnCandN.Size = new System.Drawing.Size(58, 23); - this.btnCandN.TabIndex = 21; - this.btnCandN.Text = "C and N"; - this.btnCandN.UseVisualStyleBackColor = true; - this.btnCandN.Click += new System.EventHandler(this.btnCandN_Click); - // - // btnHTLM3 - // - this.btnHTLM3.Location = new System.Drawing.Point(359, 94); - this.btnHTLM3.Name = "btnHTLM3"; - this.btnHTLM3.Size = new System.Drawing.Size(51, 23); - this.btnHTLM3.TabIndex = 22; - this.btnHTLM3.Text = "HTML3"; - this.btnHTLM3.UseVisualStyleBackColor = true; - this.btnHTLM3.Click += new System.EventHandler(this.btnHTLM3_Click); - // - // btnAllContent2 - // - this.btnAllContent2.Location = new System.Drawing.Point(270, 94); - this.btnAllContent2.Name = "btnAllContent2"; - this.btnAllContent2.Size = new System.Drawing.Size(33, 23); - this.btnAllContent2.TabIndex = 18; - this.btnAllContent2.Text = "All2"; - this.btnAllContent2.UseVisualStyleBackColor = true; - this.btnAllContent2.Click += new System.EventHandler(this.btnAllContent2_Click); - // - // btnVerbs - // - this.btnVerbs.Location = new System.Drawing.Point(416, 72); - this.btnVerbs.Name = "btnVerbs"; - this.btnVerbs.Size = new System.Drawing.Size(58, 23); - this.btnVerbs.TabIndex = 23; - this.btnVerbs.Text = "Verbs"; - this.btnVerbs.UseVisualStyleBackColor = true; - this.btnVerbs.Click += new System.EventHandler(this.btnVerbs_Click); - // - // btnFigures - // - this.btnFigures.Location = new System.Drawing.Point(416, 94); - this.btnFigures.Name = "btnFigures"; - this.btnFigures.Size = new System.Drawing.Size(58, 24); - this.btnFigures.TabIndex = 24; - this.btnFigures.Text = "Figures"; - this.btnFigures.UseVisualStyleBackColor = true; - this.btnFigures.Click += new System.EventHandler(this.btnFigures_Click); - // - // btnTables - // - this.btnTables.Location = new System.Drawing.Point(480, 72); - this.btnTables.Name = "btnTables"; - this.btnTables.Size = new System.Drawing.Size(65, 23); - this.btnTables.TabIndex = 25; - this.btnTables.Text = "Tables"; - this.btnTables.UseVisualStyleBackColor = true; - this.btnTables.Click += new System.EventHandler(this.btnTables_Click); - // - // bntTable2 - // - this.bntTable2.Location = new System.Drawing.Point(558, 72); - this.bntTable2.Name = "bntTable2"; - this.bntTable2.Size = new System.Drawing.Size(67, 22); - this.bntTable2.TabIndex = 26; - this.bntTable2.Text = "Table2"; - this.bntTable2.UseVisualStyleBackColor = true; - this.bntTable2.Click += new System.EventHandler(this.bntTable2_Click); - // - // btnStepOrNo - // - this.btnStepOrNo.Location = new System.Drawing.Point(480, 43); - this.btnStepOrNo.Name = "btnStepOrNo"; - this.btnStepOrNo.Size = new System.Drawing.Size(73, 23); - this.btnStepOrNo.TabIndex = 27; - this.btnStepOrNo.Text = "StepOrNot"; - this.btnStepOrNo.UseVisualStyleBackColor = true; - this.btnStepOrNo.Click += new System.EventHandler(this.btnStepOrNo_Click); - // - // frmConvertXML - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(750, 557); - this.Controls.Add(this.btnStepOrNo); - this.Controls.Add(this.bntTable2); - this.Controls.Add(this.btnTables); - this.Controls.Add(this.btnFigures); - this.Controls.Add(this.btnVerbs); - this.Controls.Add(this.btnHTLM3); - this.Controls.Add(this.btnCandN); - this.Controls.Add(this.btnHTML2); - this.Controls.Add(this.btnHTML); - this.Controls.Add(this.btnAllContent2); - this.Controls.Add(this.btnAllContent); - this.Controls.Add(this.lblStep); - this.Controls.Add(this.lblSection); - this.Controls.Add(this.lblProcedure); - this.Controls.Add(this.btnAllStructure2); - this.Controls.Add(this.pbProcs); - this.Controls.Add(this.btnAllStructure); - this.Controls.Add(this.btnAll); - this.Controls.Add(this.pbStep); - this.Controls.Add(this.pbSection); - this.Controls.Add(this.btnBrowse); - this.Controls.Add(this.btnLoadProcedure); - this.Controls.Add(this.btnLoadContent); - this.Controls.Add(this.btnStructure); - this.Controls.Add(this.btnFindNodeTypes); - this.Controls.Add(this.tbResults); - this.Controls.Add(this.btnLoad); - this.Controls.Add(this.tbFile); - this.Controls.Add(this.label1); - this.Name = "frmConvertXML"; - this.Text = "Form1"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbFile; - private System.Windows.Forms.Button btnLoad; - private System.Windows.Forms.TextBox tbResults; - private System.Windows.Forms.Button btnFindNodeTypes; - private System.Windows.Forms.Button btnStructure; - private System.Windows.Forms.Button btnLoadContent; - private System.Windows.Forms.Button btnLoadProcedure; - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.OpenFileDialog ofd; - private DevComponents.DotNetBar.Controls.ProgressBarX pbSection; - private DevComponents.DotNetBar.Controls.ProgressBarX pbStep; - private System.Windows.Forms.Button btnAll; - private System.Windows.Forms.Button btnAllStructure; - private DevComponents.DotNetBar.Controls.ProgressBarX pbProcs; - private System.Windows.Forms.Button btnAllStructure2; - private System.Windows.Forms.Label lblProcedure; - private System.Windows.Forms.Label lblSection; - private System.Windows.Forms.Label lblStep; - private System.Windows.Forms.Button btnAllContent; - private System.Windows.Forms.Button btnHTML; - private System.Windows.Forms.Button btnHTML2; - private System.Windows.Forms.Button btnCandN; - private System.Windows.Forms.Button btnHTLM3; - private System.Windows.Forms.Button btnAllContent2; - private System.Windows.Forms.Button btnVerbs; - private System.Windows.Forms.Button btnFigures; - private System.Windows.Forms.Button btnTables; - private System.Windows.Forms.Button bntTable2; - private System.Windows.Forms.Button btnStepOrNo; - } -} - diff --git a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.cs b/PROMS/BarakahConvert/XMLConvert/frmConvertXML.cs deleted file mode 100644 index 54ade877..00000000 --- a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.cs +++ /dev/null @@ -1,3377 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using System.IO; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; - - -namespace XMLConvert -{ - public partial class frmConvertXML : Form - { - public frmConvertXML() - { - InitializeComponent(); - Database.VEPROMS_Connection = - "Data Source=.\\SQL2008EXPRESS;Initial Catalog=VEPROMS_Barakah;Integrated Security=True"; - } - private XmlDocument _MyXMLDoc = new XmlDocument(); - public XmlDocument MyXMLDoc - { - get { return _MyXMLDoc; } - set { _MyXMLDoc = value; } - } - private void btnLoad_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - } - private void LoadXml(string fileName, string status) - { - FileInfo fi = new FileInfo(fileName); - //Console.WriteLine(fi.FullName); - StreamReader sr = fi.OpenText(); - string buf = sr.ReadToEnd(); - sr.Close(); - buf = buf.Replace(" \x8", ""); - buf = buf.Replace(" \x7", ""); - MyXMLDoc.LoadXml(buf); - if (status != null) tbResults.Text = status; - } - private void btnFindNodeTypes_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - tbResults.Text = "Finding Nodes\r\n"; - SortedList AllNodeTypes = new SortedList(); - FindAllNodeTypes(AllNodeTypes, MyXMLDoc.DocumentElement); - foreach (string key in AllNodeTypes.Keys) - tbResults.AppendText(string.Format("[{0}]{1}\r\n", key, Attributes(AllNodeTypes[key]))); - } - private string Attributes(XmlElement xe) - { - StringBuilder sb = new StringBuilder(); - string sep = "\r\n\t"; - foreach (XmlAttribute xa in xe.Attributes) - { - sb.Append(string.Format("{0}[{1}]", sep, xa.Name)); - //if (xa.Name == "content") - // sb.Append(string.Format ("\r\n\t\t{0}",xa.Value)); - } - return sb.ToString(); - } - private void FindAllNodeTypes(SortedList AllNodeTypes, XmlElement xmlElement) - { - if (!AllNodeTypes.ContainsKey(xmlElement.Name)) - AllNodeTypes.Add(xmlElement.Name, xmlElement); - foreach (XmlNode xe in xmlElement.ChildNodes) - { - if (xe is XmlElement) - FindAllNodeTypes(AllNodeTypes, xe as XmlElement); - } - } - private void btnStructure_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - LoadStructure(tbFile.Text); - ShowStructure(); - } - private void LoadStructure(string fileName) - { - LoadXml(fileName, null); - Node.Add(MyXMLDoc.DocumentElement); - } - private void ShowStructure() - { - foreach (string key in Node.AllNodes.Keys) - { - Node nd = Node.AllNodes[key]; - tbResults.AppendText(string.Format("[{0}]{1}\r\n", key, (nd.HasText ? "\tText" : ""))); - if (nd.Children.Count > 0) - { - tbResults.AppendText(string.Format("\tChildren:\r\n")); - foreach (string child in nd.Children) - tbResults.AppendText(string.Format("\t\t{0}\r\n", child)); - } - if (nd.Attributes.Count > 0) - { - tbResults.AppendText(string.Format("\tAttributes:\r\n")); - foreach (string key1 in nd.Attributes.Keys) - { - Attribute attr = nd.Attributes[key1]; - if (key1 == "content") - tbResults.AppendText(string.Format("\t\t{0} Count={1}\r\n", attr.Name, attr.Count)); - else if (attr.MinValue == attr.MaxValue) - tbResults.AppendText(string.Format("\t\t{0} Count={1} All={2}\r\n", attr.Name, attr.Count, attr.MinValue)); - else - tbResults.AppendText(string.Format("\t\t{0} Count={1} Min={2} Max={3}\r\n", attr.Name, attr.Count, attr.MinValue, attr.MaxValue)); - } - } - } - } - private void ShowStructure2() - { - foreach (string key in Node.AllNodes.Keys) - { - Node nd = Node.AllNodes[key]; - bool hasContent = false; - tbResults.AppendText(string.Format("case \"{0}\":~", key)); - string prefix = "\tformat=\""; - foreach (string key1 in nd.Attributes.Keys) - { - if (key1 == "content") - hasContent = true; - else - { - tbResults.AppendText(string.Format("{0}{1}={{{1}}}\";", prefix, key1)); - prefix = " "; - } - if (hasContent) - tbResults.AppendText(string.Format(" {{content}}")); - } - tbResults.AppendText("\";~\tbreak;\r\n"); - } - } - private void btnLoadContent_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - tbResults.Clear(); - ShowAllContent(MyXMLDoc.DocumentElement, 0); - } - private void ShowAllContent(XmlElement xe, int level) - { - ShowContent(xe, level); - foreach (XmlNode ch in xe.ChildNodes) - { - if (ch is XmlElement) - ShowAllContent(ch as XmlElement, level + 1); - } - } - Regex regFixAttributes = new Regex("(\\{[A-Za-z]+?\\})", RegexOptions.Compiled); - private void ShowContent(XmlElement xe, int level) - { - string format = "Not Defined"; - string prefix = " "; - switch (xe.Name) - { - case "ident": - format = "Procedure (LabelType-number)={labelType}-{number} fullName={fullName} PNSNo={PNSNo}"; - break; - case "type": - format = "Procedure Type: {procedureType}"; - break; - case "GrossStep": - format = "number={number} name={name}"; - break; - case "Step": - format = "{number} {name}"; - prefix = "S "; - break; - case "Contingency": - format = "{number} {name}"; - prefix = "C "; - break; - case "attrib": - case "procedure": - case "controllers": - case "row": - format = "";// No Content - break; - case "CautionInstruction": - case "NoteInstruction": - format = "number={number} {content}"; - break; - case "UnitaryInstruction": - case "BinaryInstruction": - format = "number={number} Left Target: {leftTarget} Link Target: {linkTarget} {content}"; - break; - case "JoinInstruction": - format = "Link Target: {linkTarget} JoinType: {joinType}"; - break; - case "UnitaryContingencyCallInstruction": - format = "number={number} Link Target: {linkTarget} Evaluation Type: {evaluationType} {content}"; - prefix = "U "; - break; - case "taskGroup": - format = "name={name} borderVisible={borderVisible}"; - break; - case "BoolVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "TextVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "ovationGraphic": - format = "title={title} Diagram Number: {diagramNumber}"; - break; - case "ovationGroupTrend": - format = "name={name} description={description}"; - break; - case "controller": - format = "controller - Unknown"; - break; - case "and": - format = "and id={id}"; - break; - case "BigOverview": - format = "BigOverview grossStep={grossStep} number={number} id={id}"; - break; - case "BovActionStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovCheckBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovIfStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} rightTarget={rightTarget} {content}"; - break; - case "BovMessageBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovProcedureLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepInLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepOutLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "descr": - case "esinfo": - case "esproj": - case "esprop": - case "private": - case "pwg": - case "pwt": - case "revbase": - case "systemtest": - format = ""; - break; - case "eq": - case "gt": - case "gte": - case "lt": - case "lte": - case "not": - case "or": - format = "id={id}"; - break; - case "fcase": - case "tcase": - format = "rst={rst}"; - break; - case "logic": - format = "id={id} number={number}"; - break; - case "ovationSingleTrend": - format = "description={description} number={number} id={id} name={name}"; - break; - case "prop": - format = "type={type} value={value} name={name}"; - break; - case "TextVarInputInstruction": - format = "taskDescription={taskDescription} varInputLabel={varinputLabel} number={number} {content}"; - break; - case "utest": - format = "tested={tested}"; - break; - case "var": - format = "var_type={var_type} id={id} name={name} number={number}"; - break; - case "const": - format = "var_type={var_type} id={id} value={value}"; - break; - } - tbResults.AppendText(string.Format("\r\n{0}{1}{2} ", prefix, "".PadRight(level, ' ').Replace(" ", "| "), xe.Name)); - tbResults.AppendText(ReplaceAllAttributes(format, xe, level, prefix)); - } - private string ReplaceAllAttributes(string format, XmlElement xe, int level, string prefix) - { - MatchCollection m; - while ((m = regFixAttributes.Matches(format)).Count > 0) - { - string part1 = format.Substring(0, m[0].Groups[1].Index); - string part3 = format.Substring(m[0].Groups[1].Index + m[0].Groups[1].Length); - string att = m[0].Groups[1].Value.Replace("{", "").Replace("}", ""); - XmlAttribute xa = xe.Attributes[att]; - //if (xa == null) - // Console.WriteLine(xe.OuterXml); - string part2; - if (xa != null) - part2 = xe.Attributes[att].Value; //GetAttribute(xe, att); - else - part2 = "null"; - if (part2 == string.Empty) part2 = "empty"; - if (att == "content") - { - string imageSrc = null; - if (part2.Contains(" src=")) - { - imageSrc = RegFindImage.Replace(part2, "$1"); - //Console.WriteLine(imageSrc); - } - part2 = FixHTML(part2, level); - if (imageSrc != null) part2 += "\n" + imageSrc; - part2 = part2.Replace("
", "
\n "); - part2 = part2.Replace("\n", string.Format("\r\n {0} ", "".PadRight(level).Replace(" ", "| "))); - } - format = part1 + part2 + part3; - } - return format; - } - private static Regex RegFixHTMLMulti = new Regex("<(p|li) [^>]*?>([^<>]*)", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegFixHTML = new Regex(".*<(p|li).*?>(.*).*", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegFixHTMLbody = new Regex(".*(.*).*", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegFindImage = new Regex(".*.*", RegexOptions.Compiled | RegexOptions.Singleline); - private string FixHTML(string html, int level) - { - html = cleanupHTML(html, level); - return html; - //Console.WriteLine(html); - MatchCollection mc = RegFixHTMLMulti.Matches(html); - if (mc.Count > 1) - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - foreach (Match m in mc) - { - string str = RegFixHTML.Replace(m.Value, "$2"); - if (str != "") - sb.Append(sep + str); - sep = "\r\n"; - } - return StripSpan(sb.ToString()); - } - string newHTML = RegFixHTML.Replace(html, "$2"); - if (html != newHTML) return StripSpan(newHTML); - newHTML = RegFixHTMLbody.Replace(html, "$1"); - if (html != newHTML) return StripSpan(newHTML); - return StripSpan(html); - } - private static Regex RegStripSpan1 = new Regex("", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegStripSpan2 = new Regex("", RegexOptions.Compiled | RegexOptions.Singleline); - private string StripSpan(string html) - { - return RegStripSpan2.Replace(RegStripSpan1.Replace(html, ""), ""); - - } - private static Regex[] Cleanup = - { - new Regex("]*>", RegexOptions.Compiled ), - new Regex(" margin-top: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" margin-bottom: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" margin-right: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" margin-left: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" padding-top:0;", RegexOptions.Compiled ), - new Regex(" padding-bottom:0;", RegexOptions.Compiled ), - new Regex(" padding-right:0;", RegexOptions.Compiled ), - new Regex(" padding-left:0;", RegexOptions.Compiled ), - new Regex(" color:#000000;", RegexOptions.Compiled ), - new Regex("-qt-paragraph-type:empty;", RegexOptions.Compiled ), - new Regex(" text-indent: ?0px", RegexOptions.Compiled ), - new Regex(" -qt-block-indent: ?0;", RegexOptions.Compiled ), - new Regex(" font-family:'Arial';", RegexOptions.Compiled ), - new Regex(" font-family:'Gulim';", RegexOptions.Compiled ), - new Regex(" font-family:'A';", RegexOptions.Compiled ), - new Regex(" font-size:[0-9]+pt;", RegexOptions.Compiled ), - new Regex("style=\"(| |;)*\"", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled ), - new Regex("]*>[^<]*", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled ), - //new Regex("]*>", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled ), - new Regex("

", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled), - //new Regex("]*>NOTE

", RegexOptions.Compiled), - //new Regex("]*>CAUTION

", RegexOptions.Compiled), - new Regex("]*>

", RegexOptions.Compiled), - }; - private static Regex regexFixPFrontPadding = new Regex("]*> +", RegexOptions.Compiled); - private static Regex regexFixPRearPadding = new Regex(" +

", RegexOptions.Compiled); - private static Regex regexFixLiFrontPadding = new Regex("]*> +", RegexOptions.Compiled); - private static Regex regexFixLiRearPadding = new Regex(" +", RegexOptions.Compiled); - private static Regex removeExtraReturns = new Regex("\r?\n(\r?\n)+", RegexOptions.Compiled); - private static Regex RegFixMultipleULs = new Regex("[\r\n]*]+>", RegexOptions.Compiled | RegexOptions.Multiline); - private static Regex RegFixMultipleOLs = new Regex("[\r\n]*]+>", RegexOptions.Compiled | RegexOptions.Multiline); - private static RegexReplace[] MyRegExReplaceSpecialChars = { - new RegexReplace("oF","\\'b0F"),// Degree - new RegexReplace("oC","\\'b0C"),// Degree - new RegexReplace("\xB0","\\'b0"),// Degree - new RegexReplace("\xBA","\\'b0"),// Degree - new RegexReplace("\u02DA","\\'b0"),// Degree - new RegexReplace("\xB1","\\'b1"),// - new RegexReplace("\xB2","\\up3 2\\up0 "),// Square - new RegexReplace("\xD7","x"),// Times - new RegexReplace("\u2013","\\u8209?"), - new RegexReplace("\xB1","\\'B1"), - new RegexReplace("\xB7","\\u9679?"), - new RegexReplace("\u2022","\\u9679?"), - new RegexReplace("\u2022","*"), - new RegexReplace("\u25AA","\\u9679?"), - new RegexReplace("\xA0","\\u160?"), - new RegexReplace("\u2019","'"), - new RegexReplace("\u2018","'"), - new RegexReplace("\u201C","\""), - new RegexReplace("\u201D","\""), - new RegexReplace("\u0394","\\u916?"), - new RegexReplace("\uFF06","&"), - new RegexReplace("\u2265","\\u8805?"), - new RegexReplace("\u25CF","\\u9679?"), - new RegexReplace("\u33A0","cm\\up3 2\\up0 "), - new RegexReplace("\u2192","\\u8594?"), - new RegexReplace("\uF07F","\\u9633?"), - new RegexReplace("\\u2264","\\u8804?"), -/* - new RegexReplace("",""), -*/ - new RegexReplace(@">NOTE\\line<",">NOTE<"),// Note - line break - new RegexReplace(@">NOTES\\line<",">NOTES<"),// Note - line break - new RegexReplace(@">NOTE CONTINUED\\line<",">NOTE CONTINUED<"),// Note - line break - new RegexReplace(@"

[\r\n]*

THEN"," THEN")// Break - THEN - }; - private static string cleanupHTML(string html, int level) - { - //Console.WriteLine(html); - //Console.WriteLine("END {0}",level); - html = html.Replace("
", "\\line "); - //if (html.Contains("All Safety Function Status Check")) - // Console.WriteLine(html.Substring(html.IndexOf("All Safety Function Status Check") - 10, 20)); - - foreach (Regex clean in Cleanup) - { - html = clean.Replace(html, ""); - } - //if (html.Contains("All Safety Function Status Check")) - // Console.WriteLine(html.Substring(html.IndexOf("All Safety Function Status Check") - 10, 20)); - // TODO Remove Padding from Front - //html = regexFixPFrontPadding.Replace(html, "

"); - //if (html.Contains("All Safety Function Status Check")) - // Console.WriteLine(html.Substring(html.IndexOf("All Safety Function Status Check") - 10, 20)); - html = regexFixPRearPadding.Replace(html, "

"); - html = regexFixLiFrontPadding.Replace(html, "
  • "); - html = regexFixLiRearPadding.Replace(html, "
  • "); - html = removeExtraReturns.Replace(html, "\n"); - if (html.StartsWith("\r\n")) - html = html.Substring(2); - if (html.StartsWith("\n")) - html = html.Substring(1); - //if (html.Contains("IF the RCS has experienced cooldown rate greater than")) - // Console.WriteLine("Here"); - html = RegFixMultipleULs.Replace(html, ""); - html = RegFixMultipleOLs.Replace(html, ""); - //if( html.Contains("NOTE\\")) - // Console.WriteLine("Here"); - foreach (RegexReplace rr in MyRegExReplaceSpecialChars) - html = rr.DoReplace(html); - return html; - } - private void tbResults_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.A && e.Control) - { - tbResults.SelectAll(); - e.Handled = true; - } - } - private void btnLoadProcedure_Click(object sender, EventArgs e) - { - if (_MyFlexGrid == null) - { - _MyFlexGrid = new VlnFlexGrid(); - this.Controls.Add(_MyFlexGrid); - _MyFlexGrid.Location = tbResults.Location; - _MyFlexGrid.Size = tbResults.Size; - _MyFlexGrid.BringToFront(); - _NodeProcessed = new List(); - } - XML2PROMSDB(tbFile.Text); - } - private static string _MyTablePrefix; - private static XmlNamespaceManager _NSMGR; - private void XML2PROMSDB(string filename) - { - try - { - LoadXml(filename, null); - FileInfo fi = new FileInfo(filename); - fi.Directory.CreateSubdirectory("TableHTMLs"); - _MyTablePrefix = fi.DirectoryName + "\\TableHTMLs"; - XmlNamespaceManager nsmgr = new XmlNamespaceManager(MyXMLDoc.NameTable); - nsmgr.AddNamespace("x", MyXMLDoc.DocumentElement.NamespaceURI); - _NSMGR = nsmgr; - XmlNode xn = GetProcedureIdentifier(nsmgr); - string procType = GetProcedureType(xn); - if (procType == "FRP") procType = "EOP"; - // Walk through structure Adding Items as you go - DocVersionInfoList dvil = DocVersionInfoList.Get(); - DocVersionInfo dvi = null; - foreach (DocVersionInfo dviC in dvil) - if (dviC.MyFolder.Name == procType) - dvi = dviC; - ProcedureInfo lastProc = GetLastProcedure(dvi); - //string ProcNum = GetProcedureNumber(lastProc, xn); - string ProcNum = GetProcedureNumber(lastProc, filename); - lblProcedure.Text = ProcNum; - Application.DoEvents(); - using (Procedure proc = Procedure.MakeProcedure(dvi, lastProc, ProcNum, xn.Attributes["fullName"].Value, 0)) - { - proc.Save(); - lastProc = ProcedureInfo.Get(proc.ItemID); - } - try - { - AddGrossStep(lastProc, nsmgr); - } - catch (Exception ex) - { - Console.WriteLine(lastProc.DisplayNumber + "\r\n\r\n" + ex.GetType().Name + "\r\n\r\n" + ex.Message + "\r\n\r\n" + ex.StackTrace); - MessageBox.Show(lastProc.DisplayNumber + "\r\n\r\n" + ex.Message + "\r\n\r\n" + ex.StackTrace, ex.GetType().Name, MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - catch (Exception ex) - { - tbResults.AppendText(string.Format("\r\n{0}\r\n{1} - {2}\r\n", filename, ex.GetType().Name, ex.Message)); - } - } - private static string GetProcedureType(XmlNode xn) - { - foreach (XmlNode xnc in xn.ParentNode.ChildNodes) - if (xnc.Name == "type") - return xnc.Attributes["procedureType"].Value; - return null; - } - private static string GetProcedureNumber(string filename) - { - FileInfo fi = new FileInfo(filename); - string fn = Regex.Replace(fi.Name.Replace(fi.Extension, ""), @"1N2-OP-([-0-9A-Z]+).+", "$1"); - return fn; - } - private static string GetProcedureNumber(ProcedureInfo lastProc, string filename) - { - string ProcNum = GetProcedureNumber(filename); - if (lastProc == null) - ;// ProcNum is correct - else if (lastProc.DisplayNumber == ProcNum) - ProcNum += " Rev 1"; - else if (lastProc.DisplayNumber.StartsWith(ProcNum)) - { - ProcNum = ProcNum + " Rev " + (1 + int.Parse(lastProc.DisplayNumber.Substring(ProcNum.Length + 5))).ToString(); - } - return ProcNum; - } - private static string GetProcedureNumber(ProcedureInfo lastProc, XmlNode xn) - { - string ProcNum = string.Format("{0}-{1}", GetProcedureType(xn), xn.Attributes["shortName"].Value); - if (lastProc == null) - ;// ProcNum is correct - else if (lastProc.DisplayNumber == ProcNum) - ProcNum += " Rev 1"; - else if (lastProc.DisplayNumber.StartsWith(ProcNum)) - { - ProcNum = ProcNum + " Rev " + (1 + int.Parse(lastProc.DisplayNumber.Substring(ProcNum.Length + 5))).ToString(); - } - return ProcNum; - } - private XmlNode GetProcedureIdentifier(XmlNamespaceManager nsmgr) - { - XmlNodeList xl = MyXMLDoc.DocumentElement.SelectNodes("//x:ident", nsmgr); - if (xl.Count != 1) - throw (new Exception("XML File Does not contain a Single Ident Node")); - XmlNode xn = xl[0]; - return xn; - } - private static ProcedureInfo GetLastProcedure(DocVersionInfo dvi) - { - ProcedureInfo lastProc = null; - if (dvi.Procedures != null) - foreach (ProcedureInfo oldProc in dvi.Procedures) - lastProc = oldProc; - return lastProc; - } - private void AddGrossStep(ProcedureInfo lastProc, XmlNamespaceManager nsmgr) - { - XmlNodeList xl = MyXMLDoc.SelectNodes("//x:GrossStep", nsmgr); - SectionInfo prevSection = null; - pbSection.Maximum = xl.Count; - pbSection.Value = 0; - foreach (XmlNode xn in xl) - { - lblSection.Text = "Sect " + xn.Attributes["number"].Value; - pbSection.Value++; - Application.DoEvents(); - string config = null; - int type = 10000; - string sectName = xn.Attributes["name"].Value; - switch (sectName) - { - case "Purpose": - case "Entry Conditions": - case "Exit Conditions": - type = 10001;// Purpose Symptoms and Entry Conditions - config = "
    "; - break; - default: - if (sectName.ToUpper().Contains("ACTION")) - type = 10000;// Procedure Steps - else - if (sectName.ToUpper().StartsWith("ATTACHMENT")) - { - type = 10008; - } - else if(HasContingency(xn)) - { - type = 10002;// Attachment with Column Header - // Two Column - } - else - { - type = 10008;// Attachment without Column Header - config = "
    "; - } - break; - } - using (Section sect = Section.MakeSection(lastProc, prevSection, FixSectionNumber(xn.Attributes["number"].Value), xn.Attributes["name"].Value, type)) - { - if (config != null) - sect.MyContent.Config = config; - sect.Save(); - prevSection = SectionInfo.Get(sect.ItemID); - AddStepChildren(nsmgr, prevSection, xn.SelectNodes("x:Step", nsmgr)); - } - } - } - private bool HasContingency(XmlNode xn) - { - XmlNodeList xl = xn.SelectNodes(".//x:Contingency", _NSMGR); - if (xl.Count == 0) xl = xn.SelectNodes(".//x:BinaryInstruction", _NSMGR); - //if (xl.Count > 0) - // Console.WriteLine("Found Contingency {0} {1} {2} {3}", _ProcNum,xn.Name ,GetAttribute( xn,"number"),GetAttribute( xn,"name")); - return xl.Count > 0; - } - private string FixSectionNumber(string num) - { - if (Regex.IsMatch(num, "[IVX]+")) - return num + "."; - return num; - } - private void AddStepChildren(XmlNamespaceManager nsmgr, SectionInfo prevSection, XmlNodeList xl) - { - if (xl.Count > 0) - { - if (prevSection.DisplayText.StartsWith("Attachment")) - AddAttachments(prevSection, xl, nsmgr); - else - switch (prevSection.DisplayText.ToUpper()) - { - case "PURPOSE": - case "ENTRY CONDITIONS": - case "EXIT CONDITIONS": - AddPSEC(prevSection, xl[0].ChildNodes); - break; - default: - if (AllSiblingsAreCautionsOrNotes(xl)) - AddPSEC(prevSection, xl[0].ChildNodes); - else - AddStep(prevSection, xl); - break; - } - } - } - private bool AllSiblingsAreCautionsOrNotes(XmlNodeList xl) - { - if (xl.Count > 1) return false; - return AllSiblingsAreCautionsOrNotes((xl[0] as XmlElement).ChildNodes[0] as XmlElement); - } - private void AddPSEC(SectionInfo prevSection, XmlNodeList xl) - { - SectionInfo keepPrevSection = prevSection; - //xl = (xl)[0].ChildNodes; - if (xl.Count == 0) return; - //TODO Need to add logic to save the first note as a step and the rest off of the first note - //TODO ChildNodes Can include xmlText as well as xmlElement nodes - //TODO Create list of children - XmlElement FirstNote = null; - XmlElement FirstCaution = null; - XmlElement FirstUnitary = null; - XmlElement FirstContingency = null; - int UnitaryCount = 0; - // List xl1 = new List(); - foreach (XmlNode xn in xl) - { - if (xn is XmlElement) - { - //Find First Child that is a Note - if (FirstNote == null || (xn.Name == "NoteInstruction" && FirstNote.Name != "NoteInstruction")) - FirstNote = xn as XmlElement; - if (FirstCaution == null || (xn.Name == "CautionInstruction" && FirstCaution.Name != "CautionInstruction")) - FirstCaution = xn as XmlElement; - if(FirstUnitary == null && (xn.Name == "UnitaryInstruction" || xn.Name == "UnitaryContingencyCallInstruction" - || xn.Name == "BinaryInstruction" || xn.Name == "Contingency")) - FirstUnitary = xn as XmlElement; - if (xn.Name == "UnitaryInstruction" || xn.Name == "UnitaryContingencyCallInstruction" - || xn.Name == "BinaryInstruction" || xn.Name == "Contingency") - UnitaryCount++; - if (FirstContingency == null && xn.Name == "Contingency") - FirstContingency = xn as XmlElement; - ////if (xn.OuterXml.Contains("ALL AAC")) - // Console.WriteLine("XN ALL AAC"); - } - } - FirstNote = FirstNote ?? FirstCaution; - if (FirstNote != null && FirstNote.Name == "UnitaryInstruction") - if (FirstCaution != null && FirstCaution.Name == "NoteInstruction") - Console.WriteLine("oopsie!"); - //Remove First Note from List - //xl1.Remove(FirstNote); - //TODO Add Remaining Children - StepLookup mySteps = new StepLookup(); - int level = -1; - if (FirstUnitary != null) - { - _LastStepText.Clear(); - while (FirstUnitary != null) - { - //XmlElement lastNote = FirstUnitary; - // Add Other Notes if they exist - prevSection = keepPrevSection; - level = -1; - if (FirstUnitary.Attributes["content"] != null) - { - AddContent(prevSection, mySteps, level, FirstUnitary, true, UnitaryCount); - //if (FirstUnitary.ChildNodes.Count > 0 && FirstUnitary.Name == "UnitaryInstruction") - if (FirstUnitary.Name == "UnitaryContingencyCallInstruction") - MyContingencies.Add((1 + MyContingencies.Count).ToString(), mySteps[mySteps.Count - 1].ItemID); - if (FirstUnitary.ChildNodes.Count > 0) - AddStepStucture(mySteps, mySteps.Count - 1, FirstUnitary, false); - //Console.WriteLine("\"Unitary\"\t\"{0}\"\t\"{1}\"", prevSection, mySteps[mySteps.Count - 1]); - if (FirstContingency != null) - { - ContingencyStep = mySteps[mySteps.Count -1]; - int lev1 = 1 + Math.Min(level + 1, mySteps.Count); - int inc = 1; - FirstContingency = FirstContingency.ChildNodes[0] as XmlElement; - while (FirstContingency != null) - { - AddStepStucture(mySteps, lev1, FirstContingency, true); - lev1 += inc; - mySteps[lev1 - 1] = mySteps[lev1 - 1]; - inc = 0; - FirstContingency = FirstContingency.NextSibling as XmlElement; - } - mySteps[lev1 - 2] = mySteps[lev1 - 2]; - } - if (mySteps.Count > 0) - { - level = 1; - prevSection = null; - } - else - { - //Console.WriteLine("No Steps"); - } - } - if (FirstNote != null && FirstNote.Name == "UnitaryInstruction") - Console.WriteLine("Should not be Unitary Instruction 1 \"{0}\" {1}", _StepLocation, _StepID); - AddNotesAndCautions(ref prevSection, FirstNote, mySteps, ref level); - FirstNote = null; - FirstUnitary = FirstUnitary.NextSibling as XmlElement; - if (FirstUnitary != null && FirstUnitary == FirstContingency) FirstUnitary = FirstUnitary.NextSibling as XmlElement; - while (FirstUnitary != null && (FirstUnitary.Name == "NoteInstruction" || FirstUnitary.Name == "CautionInstruction")) - { - if (FirstNote == null) FirstNote = FirstUnitary; - FirstUnitary = FirstUnitary.NextSibling as XmlElement; - if (FirstUnitary != null && FirstUnitary == FirstContingency) FirstUnitary = FirstUnitary.NextSibling as XmlElement; - break; - } - // if (FirstUnitary != null && FirstUnitary.Name == "Contingency") Console.WriteLine("Contingency"); - //if (FirstUnitary != null && FirstUnitary.Name == "BinaryInstruction") Console.WriteLine("Contingency"); - //if(FirstUnitary != null) - // Console.Write("{0}", mySteps[0]); - // if (FirstNote != null) Console.WriteLine("next"); - } - } - else - AddNotesAndCautions(ref prevSection, FirstNote, mySteps, ref level); - //TODO Add Cautions - } - - private static void AddNotesAndCautions(ref SectionInfo prevSection, XmlElement FirstNote, StepLookup mySteps, ref int level) - { - _LastStepText.Clear(); - while (FirstNote != null) - { - //XmlElement lastNote = FirstNote; - // Add Other Notes if they exist - if (FirstNote.Attributes["content"] != null) - { - XmlElement nextNote = FirstNote.NextSibling as XmlElement; - AddContent(prevSection, mySteps, level, FirstNote, true); - if (FirstNote.ChildNodes.Count > 0 && FirstNote.Name != "NoteInstruction" && FirstNote.Name != "CautionInstruction") - AddStepStucture(mySteps, level, FirstNote); - if (mySteps.Count > 0 && (nextNote == null || nextNote.Name != FirstNote.Name)) - { - level = 1; - prevSection = null; - } - else - { - //Console.WriteLine("No Steps"); - } - } - FirstNote = FirstNote.NextSibling as XmlElement; - if (FirstNote != null && FirstNote.Name != "NoteInstruction" && FirstNote.Name != "CautionInstruction") - break; - // if (FirstNote != null) Console.WriteLine("next"); - if (FirstNote != null && FirstNote.Name == "UnitaryInstruction") - Console.WriteLine("Should not be Unitary Instruction 2 \"{0}\" {1}",_StepLocation,_StepID); - - } - } - private static StepInfo _ContingencyStep = null; - public static StepInfo ContingencyStep - { - get { return _ContingencyStep; } - set { _ContingencyStep = value; } - } - private static string _LastName = ""; - private static List _NodeProcessed = null; - private static void AddContent(SectionInfo prevSection, StepLookup mySteps, int level, XmlNode xn, bool ignoreNote) - { - AddContent(prevSection, mySteps, level, xn, ignoreNote, 0); - } - private static string _StepLocation; - private static int _StepID; - private static Dictionary _LastStepText = new Dictionary(); - private static string _MyRawData = null; - private static string _MyRawType = null; - private static bool _MyRawCheck = true; - private static void AddContent(SectionInfo prevSection, StepLookup mySteps, int level, XmlNode xn, bool ignoreNote, int steps) - { - //if (!_NodeProcessed.Contains(xn)) - // _NodeProcessed.Add(xn); - //else - // Console.WriteLine("node Being Processed again"); - int nextLevel = 0; - int adjustLevel = 0; - //if (level >= mySteps.Count - 1) - //{ - // adjustLevel = level - mySteps.Count; - // Console.WriteLine("Level beyond Range"); - //} - string RNOGoTo = xn.Attributes["linkTarget"] == null ? "" : xn.Attributes["linkTarget"].Value; - int type = 20001; - if (prevSection != null && prevSection.IsSection ) type = 20002; - E_FromType frType = E_FromType.Step; - string xmlbase = xn.Attributes["content"].Value; - //if (xmlbase.Contains("qt-block-indent")) - // Console.WriteLine("Here Indent"); - //if (xmlbase.Contains("the affected SG has been isolated and the cooldown")) - // Console.WriteLine("Here 6"); - //if (xmlbase.Contains("unless misoperation")) - // Console.WriteLine("Here 1"); - //if (xmlbase.Contains("5. Natural")) - // Console.WriteLine("Here 5"); - - string xml = cleanupHTML(xmlbase, 0); - _MyRawData = xml; - _MyRawType = xn.Name; - if (xn.Name == "NoteInstruction" && xml != null && xml.Contains("NOTE")) - Console.WriteLine(xml); - //if (xml.Contains("SET CV-PIK-201, Letdown Backpressure Controller")) - // Console.WriteLine("Found it"); - //if (xml.Contains(""; - } - //if (xml.Contains("SPADES") || xml.Contains("CONFIRM the diagnosis of a SGTR by performing the following")) - // Console.WriteLine("HERE"); - if (prevSection == null) - { - if (xn.Name == "CautionInstruction") - { - type = 20006; - frType = E_FromType.Caution; - } - else if (xn.Name == "NoteInstruction" && (xml.Contains(">NOTE<") || xml.Contains(">NOTES<") || xml.Contains(">NOTE CONTINUED<"))) - { - type = 20007; - frType = E_FromType.Note; - } - else - { - if (ContingencyStep != null) - { - type = 20040; - frType = E_FromType.RNO; - } - else - { - type = 20001; - frType = E_FromType.Step; - } - } - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(xml); - //bool resetUL = true; - string lastNodeName = ""; - //_LastStepText.Clear(); - foreach (XmlNode xn2 in xd.DocumentElement.ChildNodes) - { - if (xn2.InnerText != "" && xn2.InnerText != "NOTE" && xn2.InnerText != "NOTES" && xn2.InnerText != "NOTE CONTINUED" && xn2.InnerText != "CAUTION" && xn2.InnerText != "WARNING") - { - - //if (xn2.InnerText.StartsWith("VERIFY the most affected SG 1")) - // Console.WriteLine("{0},{1}",mySteps,level); - StepText xn2Text = FixText(xn2); - //if (xn2Text.Text.Contains("indications should be used to aid in evaluating plant")) - // Console.WriteLine("Here"); - //if (xn2Text.Text.Contains("unless misoperation")) - // Console.WriteLine("Here 1"); - //if (xn2Text.Text.Contains("temperatures. SG water level is calibrated for normal")) - // Console.WriteLine("Here 4.5"); - //if (xn2Text.Text.StartsWith("Natural")) - // Console.WriteLine("Here 5.0"); - //if (xn2Text.Text.Contains("the affected SG has been isolated and the cooldown")) - // Console.WriteLine("Here 6.0"); - //if (xn2Text.Text.Contains("During all phases of the cooldown")) - // Console.WriteLine("Here 7.0"); - //if (xn2Text.Text.Contains("Minimize the number of cycles of pressurizer auxiliary spray")) - // Console.WriteLine("Here 8.0"); - //if (xn2Text.Text.Contains("Operators should be aware of the status of CCW supply to the")) - // Console.WriteLine("Here 18.0"); - //if (xn2Text.Text.Contains("To minimize the unmonitored release of radioactivity")) - // Console.WriteLine("Here 10.0"); - //if (xn2Text.Text.Contains("When indicated SG water level is excessively high")) - // Console.WriteLine("Here 11.0"); - //if (xn2Text.Text.Contains("When restarting RCPs, it is preferable to first start an RCP")) - // Console.WriteLine("Here 22.0"); - //if (xn2Text.Text.Contains("Allowing the secondary system to backflow to the primary system")) - // Console.WriteLine("Here 27.0"); - //if (xn2Text.Text.Contains("SG backflow for level control Backflow is a permissible operational")) - // Console.WriteLine("Here 27.a"); - //if (xn2Text.Text.Contains("SG backflow for depressurization and cooldown Back flow is")) - // Console.WriteLine("Here 27.b"); - //if (xn2Text.Text.Contains("At least one RCP must be operating before attempting")) - // Console.WriteLine("Here 27.b.*"); - //if (xn2Text.Text.Contains("Once the entire RCS has been successfully cooled to SDC entry")) - // Console.WriteLine("Here 28.0"); - //if (xn2Text.Text.Contains("Operation of the Containment Spray System ")) - // Console.WriteLine("Here 20.0"); - //if (xn2Text.Text.StartsWith("10.")) - // Console.WriteLine("Numbered Step"); - //if (xn2Text.Text.Contains("Cooling System Entry Conditions are satisfied") || - // xn2Text.Text.Contains("Recovery Guideline may be exited when ANY of the following") || - // xn2Text.Text.Contains("has accomplished its purpose by satisfying")) - // Console.WriteLine("Here"); - // Check against last - int lastLevel = level; - level = getMatchingLevel(_LastStepText, xn2Text,lastLevel); - if (level > 0 && type == 20002) - { - if (xn2Text.Tab == "") type = 20024; - else type = 20001; - } - //if (xn2Text.Tab == "*") - // type = 20004; - //else if (xn2Text.Tab == "" && level > 0) - // type = 20024; - //else - //type = 20001; - if (xn2Text.Text != "") - { - if (xn2.Name == "p") - { - //resetUL = true; - XmlNode pxn = PreviousNode(xn2, "p"); - StepText pxnText = FixText(pxn); - XmlNode nxn = NextNode(xn2, "p"); - StepText nxnText = FixText(nxn); - //ListMySteps("AddContent", mySteps); - bool levelIsOK = true;// level < 0 || level < mySteps.Count - 1; - if (xn2Text.Text != "AND" && xn2Text.Text != "OR") - { - if (pxnText != null && pxnText.Text == "OR") - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20005, E_FromType.Step)) { ;} - else if (pxnText != null && pxnText.Text == "AND") - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20019, E_FromType.Step)) { ;} - else if (nxnText != null && nxnText.Text == "OR" && NextNode(nxn, "p") != null && nxn.ParentNode.Name != "ul" && levelIsOK) - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20005, E_FromType.Step)) { ;} - else if (nxnText != null && nxnText.Text == "AND") - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20019, E_FromType.Step)) { ;} - else - { - if (level < 1 && prevSection != null) - { - if (type == 20007 || frType == E_FromType.Note) - Console.WriteLine("Here"); - int myType = 20002; - if (prevSection.MyContent.Type == 10001 && steps == 0) - myType = 20041; - if(level < 0)level++; - //Console.WriteLine("\"prevSection1\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}", prevSection, mySteps[level], level, myType); - using (Step step = MakeNewStep(prevSection, mySteps[level], null, xn2Text.Text, myType, E_FromType.Step)) - { - //if (step.ItemID == 9408) - // Console.WriteLine("Here"); - step.Save(); - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 1"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - if ((nxnText == null || nxnText.Tab == "" || xn2Text.Tab == "") && (pxnText == null || pxnText.Tab == "" || xn2Text.Tab == "")) - { - prevSection = null; - nextLevel = level + 1; - } - } - } - else - { - switch (frType) - { - case E_FromType.Caution: - if (mySteps[0].Cautions != null && mySteps[0].Cautions.Count > 0) - mySteps[1] = StepInfo.Get(mySteps[0].Cautions[0].LastSibling.ItemID); - break; - case E_FromType.Note: - if (mySteps[0].Notes != null && mySteps[0].Notes.Count > 0) - mySteps[1] = StepInfo.Get(mySteps[0].Notes[0].LastSibling.ItemID); - break; - case E_FromType.RNO: - if (ContingencyStep != null) - { - //Console.WriteLine("BuildMySteps {0} type {1} frtype {2}", ContingencyStep,type,frType); - BuildMySteps(ContingencyStep, mySteps); - ContingencyStep = null; - } - else - { - type = 20024; - frType = E_FromType.Step; - } - level = mySteps.Count; - break; - case E_FromType.Step: - if (level > mySteps.Count) level = mySteps.Count; - if (level > 0 && mySteps[level - 1].Steps != null && mySteps[level - 1].Steps.Count > 0) - mySteps[level] = StepInfo.Get(mySteps[level - 1].Steps[0].LastSibling.ItemID); - break; - case E_FromType.SupInfo: - if (mySteps[level - 1].SupInfos != null && mySteps[level - 1].SupInfos.Count > 0) - mySteps[level] = StepInfo.Get(mySteps[level - 1].SupInfos[0].LastSibling.ItemID); - break; - case E_FromType.Table: - if (mySteps[level - 1].Tables != null && mySteps[level - 1].Tables.Count > 0) - mySteps[level] = StepInfo.Get(mySteps[level - 1].Tables[0].LastSibling.ItemID); - break; - default: - break; - } - switch (frType) - { - case E_FromType.Caution: - using (Step step = MakeNewStep(mySteps[0].MyHLS, GetFirstCaution(mySteps[0].MyHLS), null, xn2Text.Text, type, frType)) - { - step.Save(); - level = 1; - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 2"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - } - type = 20001; - break; - case E_FromType.Note: - using (Step step = MakeNewStep(mySteps[0].MyHLS, GetFirstNote(mySteps[0].MyHLS), null, xn2Text.Text, type, frType)) - { - step.Save(); - level = 1; - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 3"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - } - type = 20001; - break; - default: - //if (frType == E_FromType.RNO) - // Console.WriteLine("{0} {1} {2} {3}", mySteps[level - 1], mySteps[level], frType, xn2.InnerText.Trim(" ".ToCharArray())); - string originalText = null; - if (RNOGoTo != string.Empty && xn.Name != "UnitaryContingencyCallInstruction") - { - string xn2TextAfter = StripQuestion(xn2Text.Text); - if (xn2Text.Text != xn2TextAfter) - { - string removeWord = xn2Text.Text.Replace(xn2TextAfter, "").Replace("?", ""); - originalText = xn2Text.Text; - xn2Text.Text = xn2TextAfter; - } - } - if (originalText != null) - _MyRawCheck = false; - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, type, frType)) - { - if (frType == E_FromType.RNO) level++; - if (originalText != null) - Annotation.MakeAnnotation(step, AnnotationType.GetByNameOrCreate("Barakah Conversion1"), null, - string.Format("Original Text:\r\n\r\n{0}\r\n\r\nThis step may need edited.", originalText), null); - } - break; - } - } - if (RNOGoTo != string.Empty && xn.Name != "UnitaryContingencyCallInstruction") - { - //TODO Add Transitions - using (Step stepr = MakeCSLAStep(mySteps, level + 1, null, "Go to step " + RNOGoTo, 20040, E_FromType.RNO)) { ;} - if(level < 0) level = mySteps.Count - 1; - mySteps[level] = mySteps[level]; - } - _MyRawCheck = true; - } - } - } - else if (xn2.Name == "ul" || xn2.Name == "ol") - { - int lev = mySteps.Count - 1; - //if (resetUL) - // mySteps.Remove(lev + 1); - if (lastNodeName == "ul" || lastNodeName == "ol") - lev--; - //resetUL = false; - XmlNodeList xl1 = xn2.SelectNodes("li"); - foreach (XmlNode xn3 in xl1) - { - if (prevSection == null) - { - try - { - if(frType == E_FromType.Note && type == 20007) - using (Step step = MakeCSLAStep(mySteps, lev + 1, null, FixText(xn3).Text, type, frType)) { ;} - - else - using (Step step = MakeCSLAStep(mySteps, lev + 1, null, FixText(xn3).Text, mySteps[lev].DisplayText.ToUpper().StartsWith("ONE ") ? 20005 : 20004, E_FromType.Step)) { ;} - } - catch (Exception ex) - { - ListMySteps(string.Format("makeCSLAStep Crash Level= {0}\r\n\r\n", lev), mySteps); - throw ex; - } - } - else - { - int myType = 20002; - if (mySteps.Count > level) - { - level++; - } - else - Console.WriteLine("Change in Conversion"); - StepText xn3txt = FixText(xn3); - //if(xn3txt.Contains("The following actions are")) - //Console.WriteLine("\"prevSection2\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}", prevSection, mySteps[level], level, myType); - using (Step step = MakeNewStep(prevSection, mySteps[level], null, xn3txt.Text, myType, E_FromType.Step)) - { - step.Save(); - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 4"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - prevSection = null; - lev = level; - } - } - } - } - else - { - if (xn2.Name == "table") - { - //Console.WriteLine("======================> Unprocessed table {0}", GetPath(xn)); - //if (xn2.OuterXml.Contains(@"\u916?") ) - // Console.WriteLine("Here"); - if (mySteps.Count == 0) - using (Step step = MakeNewStep(prevSection, mySteps[level], null, "\xA0 Empty High Level Step", 2, E_FromType.Step)) - { - step.Save(); - level = Math.Max(level, 0); - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 5"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - prevSection = null; - } - if (_MyTableFileName == null) - { - Console.WriteLine("xml='{0}'",xn2.OuterXml); - LoadTable2(xn2, mySteps, level); - } - } - } - } - lastNodeName = xn2.Name; - if(xn2Text.Text != "AND" && xn2Text.Text != "OR") - _LastStepText[level] = xn2Text; - level = Math.Max(level, nextLevel); - } - } - RemoveStepsAbove(mySteps, level); - } - private static Step MakeNewStep(ItemInfo parentInfo, ItemInfo previousInfo, string stepNumber, string stepTitle, int stepType, E_FromType fromType) - { - Step step = Step.MakeStep(parentInfo, previousInfo, stepNumber, stepTitle, stepType, fromType); - if (_MyRawData != null) - { - if (_MyRawCheck && (FixRawData(_MyRawData) != stepTitle)) - { - if (stepType != 20007 && _MyRawData.Contains(">NOTE")) - //Console.WriteLine("Here"); - Annotation.MakeAnnotation(step, AnnotationType.GetByNameOrCreate("Barakah Raw Data"), null, _MyRawType + ":\r\n" + FixRawData(_MyRawData), null); - } - if (_MyRawCheck && _MyRawData != null && _MyRawType == "BinaryInstruction" && _MyRawType == "Contingency") - Annotation.MakeAnnotation(step, AnnotationType.GetByNameOrCreate("Barakah Raw Data2"), null, _MyRawType + ":\r\n" + FixRawData(_MyRawData), null); - _MyRawData = null; - } - return step; - } - private static string FixRawData(string str) - { - str = str.Replace("

    ", "").Replace("

    ", "").Replace("
  • ", "\u25CF ").Replace("
  • ", "\r\n").Replace("", "") - .Replace("", "").Replace(@"\line", "").Replace("","").TrimStart(" \r\n\t".ToCharArray()) - .Replace(@"\u8209?", "\u2011").Replace(@"\u9679?", "\u25CF").Replace("
  • ", "\u25CF ").Replace("
  • ", "\u25CF "); - str = Regex.Replace(str, "]+>", ""); - str = Regex.Replace(str, "]+>", ""); - str = Regex.Replace(str, "[\r\n]+", "\r\n"); - return str; - } - private static void CheckHLS(StepInfo si, string str) - { - if (si.MyContent.Type == 20002 && si.ActiveParent is ItemInfo && (si.ActiveParent as ItemInfo).MyContent.Type == 20002) - Console.WriteLine("HLS Parent of HLS {0}",str); - } - private static Regex _regalpha = new Regex(@"[a-z][\.\)]"); - private static Regex _regALPHA = new Regex(@"[A-Z][\.\)]"); - private static Regex _regNumeric = new Regex(@"([0-9]+)[\.\)]"); - private static string NextTab(string tab) - { - Match m = _regalpha.Match(tab); - if (m.Success) - { - string retval = ((char)(tab[0] + 1)) + tab.Substring(1); - return retval; - } - m = _regALPHA.Match(tab); - if (m.Success) - { - string retval = ((char)(tab[0] + 1)) + tab.Substring(1); - return retval; - } - m = _regNumeric.Match(tab); - if (m.Success) - return ((int.Parse(m.Groups[1].Value)+1).ToString() + tab.Substring(m.Groups[1].Length)); - return tab; - } - private static Regex _RegFirst = new Regex(@"[1Aa][\.\)]", RegexOptions.Compiled); - private static bool IsFirstTab(string tab) - { - if (tab == "" || tab == "*") return true; - bool retval = _RegFirst.IsMatch(tab); - if(retval) return true; - return false; - } - private static int getMatchingLevel(Dictionary lastStepText, StepText xn2Text, int level) - { - //if (xn2Text.Text.Contains("All Safety Function Status Check")) - // Console.WriteLine("here"); - - if (lastStepText.Count == 0) return level; - int maxkey = 0; - int i = 0; - foreach (int key in lastStepText.Keys) // Look at exact match first - { - StepText st = lastStepText[key]; - if (NextTab(st.Tab) == xn2Text.Tab) - { - //if (st.Tab != "*" && st.Tab != "") - // Console.WriteLine("Here"); - if (st.Indent == xn2Text.Indent) - { - return key; - } - if(xn2Text.Tab != "" && Math.Abs(st.Indent - xn2Text.Indent) > 1) - Console.WriteLine("\"Wrong Indent\"\t\"{0}\"\t{1}\t{2}\t{3}\t\"{4}\"\t\"{5}\"\t\"{6}\"",_StepLocation,_StepID, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab, xn2Text.Text); - } - if (key > maxkey) maxkey = key; - i++; - } - i = 0; - foreach (int key in lastStepText.Keys) //Look for an indent match - { - StepText st = lastStepText[key]; - if (st.Indent == xn2Text.Indent) - { - //Console.WriteLine("\"=\"\t{0}\t{1}\t{2}\t\"{3}\"\t\"{4}\"", i, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab); - //Console.WriteLine("{0}\t\"{1}\"\t\"{2}\"", i, st.Tab, xn2Text.Tab); - if (NextTab(st.Tab) == xn2Text.Tab) - { - //if (st.Tab != "*" && st.Tab != "") - // Console.WriteLine("Here"); - return key; - } - if (IsFirstTab(xn2Text.Tab)) - return key + 1; - // Partial Indent Match - Console.WriteLine("\"Wrong Tab\"\t\"{0}\"\t{1}\t{2}\t{3}\t\"{4}\"\t\"{5}\"\t\"{6}\"", _StepLocation, _StepID, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab, xn2Text.Text); - return key; - } - if (key > maxkey) maxkey = key; - i++; - } - i = 0; - foreach (int key in lastStepText.Keys) // Close Indent Match - { - StepText st = lastStepText[key]; - if (st.Indent + 1 == xn2Text.Indent) - { - //Console.WriteLine("\">\"\t{0}\t{1}\t{2}\t\"{3}\"\t\"{4}\"", i, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab); - if (xn2Text.Tab == "") return i+1; - return key; - } - - if (st.Indent - 1 == xn2Text.Indent) - { - //Console.WriteLine("\"<\"\t{0}\t{1}\t{2}\t\"{3}\"\t\"{4}\"", i, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab); - if (xn2Text.Tab == "") return i+1; - return key; - } - i++; - } - if (IsFirstTab(xn2Text.Tab)) - return maxkey+1; - Console.WriteLine("\"First Not First\"\t\"{0}\"\t{1}\t{2}\t{3}\t\"{4}\"\t\"{5}\"\t\"{6}\"", _StepLocation, _StepID, "", xn2Text.Indent, "", xn2Text.Tab, xn2Text.Text); - return maxkey + 1; - } - - private static string BuildHTMLLibDoc(XmlNode xn, string xmlbase) - { - XmlDocument xd1 = new XmlDocument(); - xmlbase = Regex.Replace(xmlbase, "]+>[\r\n]*", ""); - xmlbase = Regex.Replace(xmlbase, " style=\"\" style=\"", " style=\""); - string pat = " style=\\\"([^\"]+)\\\" style=\\\""; - xmlbase = Regex.Replace(xmlbase, pat, " style=\"$1"); - xmlbase = xmlbase.Replace(" src=\".", " src=\".."); - if (_MyTableFileName == _LastTableFileName) - { - FileInfo fi = new FileInfo(_LastName); - using (StreamReader tr = fi.OpenText()) - { - string lastContents = tr.ReadToEnd(); - // Merge two HTML documents - int endLocation = lastContents.IndexOf(""); - int startLocation = xmlbase.IndexOf(">", xmlbase.IndexOf(" 0) - foreach(XmlNode xc in xls) - if(xc is XmlAttribute) - result += int.Parse(xc.Value); - return result; -} - //private static void LoadTable(XmlNode xn, int level, int row, int col) - //{ - // //if(xn is XmlText) - // //Console.WriteLine("T {0}{1}", "".PadLeft(2*level), xn.InnerText); - // //else - // if(xn is XmlElement) - // foreach(XmlNode xc in xn.ChildNodes) - // { - // if (xc is XmlElement && xc.Name == "td") - // { - // col++; - // //Console.WriteLine("X {0}{1} CS {2} RS {3}", "".PadLeft(2 * level), xc.Name, GetAttribute(xc, "colspan"), GetAttribute(xc, "rowspan")); - // } - // else if (xc is XmlElement && xc.Name == "tr") - // { - // row++; - // //Console.WriteLine("X {0}{1}", "".PadLeft(2 * level), xc.Name); - // } - // else - // //Console.WriteLine("X {0}{1}({2},{3})", "".PadLeft(2 * level), xc.Name,row,col); - // if (xc is XmlElement && xc.Name == "table") - // LoadTable(xc, level + 1, 0, 0); - // else - // LoadTable(xc, level + 1, row, col); - // } - //} - private static string GetAttribute(XmlNode xc, string attName) - { - string retval = null; - XmlAttribute xa = xc.Attributes[attName]; - if (xa != null) - retval = xa.Value; - return retval; - } - private static string StripQuestion(string str) - { - string tmp = Regex.Replace(str, @"^(Is|Are|Has|Does|Did|Can|Do|Was|Were) (.+)\?$", "VERIFY $2"); - //if (tmp != str) - // tmp = tmp.Substring(0, 1).ToUpper() + tmp.Substring(1); - return tmp; - } - private static Regex _RegRemoveLineBreaks = new Regex(@"\\line +", RegexOptions.Compiled); - private static StepText FixText(XmlNode xn) - { - if (xn == null) return null; - string str = xn.InnerText; - //if (str.Contains("may be exited when ANY of the following conditions")) - // Console.WriteLine("here"); - // TODO Remove Tab Numbers - //str = Regex.Replace(xn.InnerText, "[A-Z0-9]+[.)] +", ""); - //str = str.Trim(" \t".ToCharArray()); - //str = Regex.Replace(str, " +", " "); - str = _RegRemoveLineBreaks.Replace(str, " "); - //if (str.Contains("The diagnosis of a SGTR is NOT confirmed")) - // Console.WriteLine("here"); - return new StepText(str); - //RHM return Regex.Replace(str, "^(NOTE|NOTE CONTINUED|CAUTION|WARNING)$", ""); - } - private static ItemInfo GetFirstNote(ItemInfo myItemInfo) - { - if (myItemInfo.Notes != null && myItemInfo.Notes.Count > 0) - return StepInfo.Get(myItemInfo.Notes[0].LastSibling.ItemID); - return null; - } - private static ItemInfo GetFirstCaution(ItemInfo myItemInfo) - { - if (myItemInfo.Cautions != null && myItemInfo.Cautions.Count > 0) - return StepInfo.Get(myItemInfo.Cautions[0].LastSibling.ItemID); - return null; - } - private static void BuildMySteps(StepInfo step, StepLookup mySteps) - { - if ((step.ActiveParent as ItemInfo).IsStep) - { - BuildMySteps(step.ActiveParent as StepInfo, mySteps); - mySteps.AddOne(step); - } - else - mySteps[0] = step; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - //if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].ToString()); - i++; - } - } - public static Step MakeCSLAStep(StepLookup mySteps, int level, string stepNumber, string stepText, int stepType, E_FromType fromType) - { - if (mySteps.Count < level) - { - //Console.WriteLine("StepText + '{0}", stepText); - level = mySteps.Count; - //throw (new Exception("Error Making Step - null parent and previous")); - } - try - { - //if (mySteps.Count > 1 && mySteps[0].Ordinal == 5 && mySteps[level - 1].IsCautionOrNotePart) - // Console.WriteLine("Here"); - if (level < 1) level = 1; - if (stepType == 20002) - { - if (mySteps[level - 1] != null && mySteps[level - 1].MyContent.Type == 20002) - stepType = 20001; - else if (mySteps[level] != null && mySteps[level].MyContent.Type == 20002) - Console.WriteLine("Oops"); - } - else if (stepType == 20001) - { - if (mySteps[level] != null && mySteps[level].MyContent.Type == 20002) - stepType = 20002; - } - using (Step stp = MakeNewStep(mySteps[level - 1], mySteps[level], stepNumber, stepText, stepType, fromType)) - { - stp.Save(); - StepInfo si = mySteps[level] = StepInfo.Get(stp.ItemID); - CheckHLS(si, "Case 6"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (stp.ItemID >= 10079 && stp.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - return stp; - } - } - catch (Exception ex) - { - throw (new Exception("Error Making Step")); - } - } - private static void RemoveStepsAbove(StepLookup mySteps, int level) - { - List removeList = new List(); - foreach (string key in mySteps.Keys) - if (int.Parse(key) > level) - removeList.Add(key); - foreach (string k in removeList) - mySteps.Remove(k); - //ListMySteps("RemoveStepsAbove", mySteps); - } - private static XmlNode NextNode(XmlNode xn2, string nodeName) - { - while (xn2 != null) - { - xn2 = xn2.NextSibling; - if (xn2 == null) return null; - if (xn2.Name == nodeName) return xn2; - } - return null; - } - private static XmlNode PreviousNode(XmlNode xn2, string nodeName) - { - while (xn2 != null) - { - xn2 = xn2.PreviousSibling; - if (xn2 == null) return null; - if (xn2.Name == nodeName) return xn2; - } - return null; - } - private void AddStep(SectionInfo prevSection, XmlNodeList xl) - { - StepLookup mySteps = new StepLookup(); - pbStep.Value = 0; - pbStep.Maximum = xl.Count; - foreach (XmlNode xn in xl) - { - pbStep.Value++; - Application.DoEvents(); - using (Step step = MakeNewStep(prevSection, mySteps[0], null, xn.Attributes["name"].Value, 20002, E_FromType.Step)) - { - //if (step.ItemID == 9408) - // Console.WriteLine("Here"); - //if (xn.Name == "UnitaryContingencyCallInstruction") - //{ - // string key = xn.Attributes["number"].Value; - // MyContingencies.Add((1 + MyContingencies.Count).ToString(), step.ItemID); - //} - MyContingencies.Clear(); - step.Save(); - mySteps[0] = StepInfo.Get(step.ItemID); - CheckHLS(mySteps[0], "Case 7"); - _StepLocation = mySteps[0].ShortPath; - _StepID = mySteps[0].ItemID; - lblStep.Text = "Step " + mySteps[0].Ordinal.ToString(); - Application.DoEvents(); - AddStepStucture(mySteps, 0, xn); - if (MyContingencies.Count > 0) Console.WriteLine("{0} Contingencies not processed", MyContingencies.Count); - } - } - } - private static Dictionary _MyContingencies = new Dictionary(); - public static Dictionary MyContingencies - { - get { return frmConvertXML._MyContingencies; } - set { frmConvertXML._MyContingencies = value; } - } - private static void AddStepStucture(StepLookup mySteps, int level, XmlNode xn) - { - AddStepStucture(mySteps, level, xn, true); - } - private static void AddStepStucture(StepLookup mySteps, int level, XmlNode xn, bool addContent) - { - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - //ListMySteps("AddStepStructure", mySteps); - if (xn.Name != "JoinInstruction" && xn.Attributes["content"] != null && xn.Attributes["content"].Value != "") - { - //if (xn.Attributes["content"].InnerText.Contains("the time of this procedure entry")) - // Console.WriteLine("here"); - if (level == -1 && xn.Name != "NoteInstruction" && xn.Name != "CautionInstruction") - level = 0; - if(addContent) - { - _LastStepText.Clear(); - AddContent(null, mySteps, level, xn, false); - } - if (level != mySteps.Count && xn.ParentNode.Name == "Contingency") - level = mySteps.Count; - if (xn.Name == "UnitaryContingencyCallInstruction") - { - if (level == 1) - { - string key = xn.Attributes["number"].Value; - MyContingencies.Add((1 + MyContingencies.Count).ToString(), mySteps[mySteps.Count - 1].ItemID); - //ListMyContingencies(string.Format("Parent Count={0} number={1} linkTarget={2}", MyContingencies.Count, key, xn.Attributes["linkTarget"].Value)); - } - } - } - string lastNodeName = ""; - foreach (XmlNode xn1 in xn.ChildNodes) - { - // ChildNodes can contain XmlText as well as XmlElement nodes - if (xn1 is XmlElement) - { - //if (mySteps.Count > 0 && mySteps[0].Ordinal==5) - // ListMySteps(string.Format("AddStepStructure {0}",xn1.Name), mySteps); - if (xn1.Name == "BoolVarInputItem" || xn1.Name == "TextVarInputItem") - level = mySteps.Count - 1; - //else - if (lastNodeName != xn1.Name && xn1.ParentNode.Name != "Contingency")// RHM 20181018 - RemoveStepsAbove(mySteps, level); - lastNodeName = xn1.Name; - if (xn1.Name == "JoinInstruction") - { - AddStepStucture(mySteps, level, xn1); - } - else if (xn1.Name == "UnitaryContingencyCallInstruction") - { - AddStepStucture(mySteps, level + 1, xn1); - string key = xn1.Attributes["number"].Value; - if (level != 0) - { - MyContingencies.Add((1 + MyContingencies.Count).ToString(), mySteps[level + 1].ItemID); - //ListMyContingencies(string.Format("Child count={0} number={1} linkTarget={2}", MyContingencies.Count, key, xn1.Attributes["linkTarget"].Value)); - } - } - else if (xn1.Name == "taskGroup") - { - XmlNodeList xl = xn1.SelectNodes(".//x:ovationGraphic",_NSMGR); - if (xl.Count > 0) - { - //Add CPSData annotation for Display - StringBuilder sb = new StringBuilder(); - sb.AppendFormat (""); - int i = 0; - foreach (XmlNode xnog in xl) - { - sb.AppendFormat("", ++i); - sb.AppendFormat("{0}", GetAttribute(xnog, "diagramNumber")); - sb.AppendFormat("{0}", GetAttribute(xnog, "title")); - sb.AppendFormat(""); - } - sb.AppendLine(""); - if (mySteps.Count > 0) - { - using (Item itm = mySteps[mySteps.Count - 1].Get()) - Annotation.MakeAnnotation(itm, AnnotationType.GetByNameOrCreate("CPS Data"), null, sb.ToString(), sb.ToString()); - } - } - if (xn1.Attributes["name"].Value != "") AddTaskGroup(mySteps, level + 1, xn1); - else AddStepStucture(mySteps, level, xn1); - } - else if (xn1.Name == "row") - { - AddStepStucture(mySteps, level, xn1); - } - else if (xn1.Name == "BoolVarInputItem") - { - AddBoolVar(mySteps, level, xn1); - } - else if (xn1.Name == "TextVarInputItem") - { - AddTextVar(mySteps, level+1, xn1); - } - else if (xn1.Name == "Contingency") - { - string key = xn1.Attributes["number"].Value; - //Console.WriteLine("Try to use contingency {0}", key); - if (_MyContingencies.Count > 0) - { - if (ContingencyStep != null) - Console.WriteLine("Not Processed"); - ContingencyStep = StepInfo.Get(MyContingencies[key]); - if (ContingencyStep == null) - { - Console.WriteLine("Could not find contingency"); - } - else - { - //Console.WriteLine("Contingency + {0}", ContingencyStep); - } - MyContingencies.Remove(key); - //ListMyContingencies(string.Format("Remove number {0}", key)); - AddStepStucture(mySteps, Math.Min(level + 1, mySteps.Count), xn1); - } - else - { - Console.WriteLine("No Contingencies left"); - } - } - else - { - if (xn1.Name == "NoteInstruction" || xn1.Name == "CautionInstruction") - { - StepLookup stack = CloneSteps(mySteps); - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - // ListMySteps("AddStepStructure Before ", mySteps); - mySteps[0] = mySteps[0]; - AddStepStucture(mySteps, 1, xn1); - foreach (string key in stack.Keys) - mySteps[key] = stack[key]; - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - // ListMySteps("AddStepStructure After", mySteps); - } - else - AddStepStucture(mySteps, Math.Min(level + 1, mySteps.Count), xn1); - } - } - } - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - // ListMySteps("AddStepStructure", mySteps); - } - private static StepLookup CloneSteps(StepLookup mySteps) - { - StepLookup sl = new StepLookup(); - foreach (string key in mySteps.Keys) - sl.Add(key, mySteps[key]); - return sl; - } - private static void ListMyContingencies(string name) - { - Console.WriteLine("contingencies - {0}", name); - foreach (string key in MyContingencies.Keys) - Console.WriteLine("{0}\t{1}", key, MyContingencies[key]); - } - private static void AddBoolVar(StepLookup mySteps, int level, XmlNode xn1) - { - if(xn1.Attributes["varInputReadOnly"].Value == "false") - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["varInputLabel"].Value + " True __ / False __", 20011, E_FromType.Step)) { ;} - else - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["varInputLabel"].Value, 20011, E_FromType.Step)) { ;} - } - private static void AddTextVar(StepLookup mySteps, int level, XmlNode xn1) - { - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["varInputLabel"].Value +" ____________", 20011, E_FromType.Step)) { ;} - } - private static void AddTaskGroup(StepLookup mySteps, int level, XmlNode xn1) - { - if (level > mySteps.Count) level = mySteps.Count; - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["name"].Value, 20024, E_FromType.Step)) { ;} - AddStepStucture(mySteps, level, xn1); - } - private void AddAttachments(SectionInfo parentSection, XmlNodeList xl, XmlNamespaceManager nsmgr) - { - SectionInfo prevSection = null; - foreach (XmlNode xn in xl) - { - string config = null; - int type ; - if(HasContingency(xn)) - { - type=10002; - } - else - { - type = 10008; - config ="
    "; - } - using (Section sect = Section.MakeSection(parentSection, prevSection, "Attachment " + xn.Attributes["number"].Value, xn.Attributes["name"].Value, type)) - { - if(config != null) - { - sect.MyContent.Config = config; - sect.Save(); - } - prevSection = SectionInfo.Get(sect.ItemID); - //AddStepChildren(nsmgr, prevSection, xn.ChildNodes); - //Console.WriteLine("{0} - {1}", prevSection.ShortPath, xn.OuterXml); - _MyTableFileName = parentSection.MyProcedure.DisplayNumber + "_" - + parentSection.DisplayNumber + prevSection.DisplayNumber; - //if (GetSectionStyle(xn) == "Free Form") - AddPSEC(prevSection, xn.ChildNodes); - //else - // AddStep(prevSection, xn.ChildNodes); - _MyTableFileName = null; - } - } - } - private static string _MyTableFileName; - private void btnBrowse_Click(object sender, EventArgs e) - { - ofd.FileName = tbFile.Text; - if (ofd.ShowDialog() == DialogResult.OK) - tbFile.Text = ofd.FileName; - } - private void btnAll_Click(object sender, EventArgs e) - { - if (_MyFlexGrid == null) - { - _MyFlexGrid = new VlnFlexGrid(); - this.Controls.Add(_MyFlexGrid); - _MyFlexGrid.Location = tbResults.Location; - _MyFlexGrid.Size = tbResults.Size; - _MyFlexGrid.BringToFront(); - - } - - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - _ProcNum = GetProcedureNumber(chld.FullName); - XML2PROMSDB(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - lblStep.Text = "Step"; - lblSection.Text = "Section"; - lblProcedure.Text = "Procedure"; - tbResults.AppendText("\r\n\r\n Done\r\n"); - } - private void btnAllStructure_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowStructure2(); - } - - private void btnAllStructure2_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowStructure(); - } - - private void btnAllContent_Click(object sender, EventArgs e) - { - tbResults.Text = ""; - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - FileInfo [] children = fi.Directory.GetFiles("*.xml"); - pbProcs.Maximum = children.Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in children) - { - if (!chld.Name.StartsWith("._")) - { - tbResults.AppendText("\r\n" + chld.FullName); - GetAllContents(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - } - tbResults.AppendText("\r\nDone"); - } - - private void GetAllContents(string fileName) - { - FileInfo fi = new FileInfo(fileName); - FileInfo fo = new FileInfo(fi.DirectoryName + "\\" + GetProcedureNumber(fileName) + ".txt"); - GetAllContents(fi, fo); - } - - private void GetAllContents(FileInfo fi, FileInfo fo) - { - StreamWriter sw = fo.CreateText(); - LoadXml(fi.FullName, "Document Loaded"); - ShowAllContent(MyXMLDoc.DocumentElement, 0, sw); - sw.Close(); - } - - private void ShowAllContent(XmlElement xe, int level, StreamWriter sw) - { - ShowContent(xe, level, sw); - foreach (XmlNode ch in xe.ChildNodes) - { - if (ch is XmlElement) - ShowAllContent(ch as XmlElement, level + 1, sw); - } - } - - private void ShowContent(XmlElement xe, int level, StreamWriter sw) - { - string format = "Not Defined"; - string prefix = " "; - switch (xe.Name) - { - case "ident": - format = "Procedure (LabelType-number)={labelType}-{number} fullName={fullName} PNSNo={PNSNo}"; - break; - case "type": - format = "Procedure Type: {procedureType}"; - break; - case "GrossStep": - format = "number={number} name={name}"; - break; - case "Step": - format = "{number} {name}"; - prefix = "S "; - break; - case "Contingency": - format = "{number} {name}"; - prefix = "C "; - break; - case "attrib": - case "procedure": - case "controllers": - case "row": - format = "";// No Content - break; - case "CautionInstruction": - case "NoteInstruction": - format = "number={number} {content}"; - break; - case "UnitaryInstruction": - case "BinaryInstruction": - format = "number={number} Left Target: {leftTarget} Link Target: {linkTarget} {content}"; - break; - case "JoinInstruction": - format = "Link Target: {linkTarget} JoinType: {joinType}"; - break; - case "UnitaryContingencyCallInstruction": - format = "number={number} Link Target: {linkTarget} Evaluation Type: {evaluationType} {content}"; - prefix = "U "; - break; - case "taskGroup": - format = "name={name} borderVisible={borderVisible}"; - break; - case "BoolVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "TextVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "ovationGraphic": - format = "title={title} Diagram Number: {diagramNumber}"; - break; - case "ovationGroupTrend": - format = "name={name} description={description}"; - break; - case "controller": - format = "controller - Unknown"; - break; - case "and": - format = "and id={id}"; - break; - case "BigOverview": - format = "BigOverview grossStep={grossStep} number={number} id={id}"; - break; - case "BovActionStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovCheckBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovIfStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} rightTarget={rightTarget} {content}"; - break; - case "BovMessageBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovProcedureLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepInLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepOutLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "descr": - case "esinfo": - case "esproj": - case "esprop": - case "private": - case "pwg": - case "pwt": - case "revbase": - case "systemtest": - format = ""; - break; - case "eq": - case "gt": - case "gte": - case "lt": - case "lte": - case "not": - case "or": - format = "id={id}"; - break; - case "fcase": - case "tcase": - format = "rst={rst}"; - break; - case "logic": - format = "id={id} number={number}"; - break; - case "ovationSingleTrend": - format = "description={description} number={number} id={id} name={name}"; - break; - case "prop": - format = "type={type} value={value} name={name}"; - break; - case "TextVarInputInstruction": - format = "taskDescription={taskDescription} varInputLabel={varinputLabel} number={number} {content}"; - break; - case "utest": - format = "tested={tested}"; - break; - case "var": - format = "var_type={var_type} id={id} name={name} number={number}"; - break; - case "const": - format = "var_type={var_type} id={id} value={value}"; - break; - } - sw.Write(string.Format("\r\n{0}{1}{2} ", prefix, "".PadRight(level, ' ').Replace(" ", "| "), xe.Name)); - sw.Write(ReplaceAllAttributes(format, xe, level, prefix)); - } - - private void btnHTML_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure3(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowStructure(); - } - - private void LoadStructure3(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - LoadStructure3(MyXMLDoc.DocumentElement); - } - private void LoadStructure3(XmlElement xe) - { - LoadStructure3Content(xe); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - LoadStructure3(xn as XmlElement); - } - } - - private void LoadStructure3Content(XmlElement xn) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - - if (!xml.Contains("<")) - { - Console.WriteLine("not XML '{0}'", xml); - xml = "

    " + xml + "

    "; - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(xml); - //xml = xml.Replace("", ""); - //vlnhtml myHTML = HtmlSerializer.StringDeserialize(xml); - Node.Add(xd.DocumentElement); - } - } - private Dictionary _DicHTMLStruct; - - public Dictionary DicHTMLStruct - { - get { return _DicHTMLStruct; } - set { _DicHTMLStruct = value; } - } - - private void btnHTML2_Click(object sender, EventArgs e) - { - DicHTMLStruct = new Dictionary(); - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure4(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowHtmlStructure(); - } - /// - /// Show Count for each structure - /// - private void ShowHtmlStructure() - { - tbResults.Text = ""; - foreach (string key in DicHTMLStruct.Keys) - tbResults.AppendText(string.Format("{0}\t\"{1}\"\r\n", DicHTMLStruct[key], key)); - } - private void LoadStructure4(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - LoadStructure4(MyXMLDoc.DocumentElement); - } - private void LoadStructure4(XmlElement xe) - { - LoadStructure4Content(xe); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - LoadStructure4(xn as XmlElement); - } - } - - private void LoadStructure4Content(XmlElement xn) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - - if (!xml.Contains("<")) - { - //Console.WriteLine("not XML '{0}'", xml); - xml = "

    " + xml + "

    "; - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(xml); - XmlAttribute xa = xd.CreateAttribute("type"); - xa.Value = xn.Name; - xd.DocumentElement.Attributes.Append(xa); - if (xn.Attributes["number"] != null && xn.Attributes["number"].Value != string.Empty) - { - XmlAttribute xa1 = xd.CreateAttribute("number"); - xa1.Value = xn.Attributes["number"].Value; - if (Regex.IsMatch(xa1.Value, "[0-9]+")) xa1.Value = "#"; - xd.DocumentElement.Attributes.Append(xa1); - } - - //AddStructure(GetStructurePath(xd.DocumentElement).Replace("[br]-T","")); - AddStructure(GetStructurePath(xd.DocumentElement,true)); - } - } - private void AddStructure(string mystruct) - { - if (!DicHTMLStruct.ContainsKey(mystruct)) - DicHTMLStruct.Add(mystruct, 1); - else - DicHTMLStruct[mystruct]++; - } - private string GetStructurePath(XmlElement xe, bool removeDuplicates) - { - StringBuilder sb = new StringBuilder(); - sb.Append("[" + xe.Name); - if (xe.Name == "ul") - sb.Append(GetUlDetail(xe)); - //if (xe.Name == "html") - //{ - // sb.Append(" " + xe.Attributes["type"].Value); - // if (xe.Attributes["number"] != null && xe.Attributes["number"].Value != string.Empty) - // sb.Append(" " + xe.Attributes["number"].Value); - //} - if (xe.ChildNodes != null && xe.ChildNodes.Count > 0) - { - if (xe.Name != "table") - { - foreach (XmlNode xc in xe.ChildNodes) - { - if (xc is XmlElement) - sb.Append(GetStructurePath(xc as XmlElement, removeDuplicates)); - else if (xc is XmlText) - { - //Console.WriteLine(xc.Value); - Match ma = Regex.Match(xc.Value, "^ *(and|or|AND|OR) *$"); - Match mcn = Regex.Match(xc.Value, "^ *(CAUTION|NOTE|WARNING|CAUTIONS|NOTES|WARNINGS|NOTE CONTINUED) *$"); - Match m1 = Regex.Match(xc.Value, "^[0-9]+[\\.\\)] "); - Match m2 = Regex.Match(xc.Value, "^[A-Z][\\.\\)] "); - Match m3 = Regex.Match(xc.Value, "^[a-z][\\.\\)] "); - Match m4 = Regex.Match(xc.Value, "^[-\u2022\u25AA\u25CF]");// Bullets and Dashes - Match m5 = Regex.Match(xc.Value, "^[^#0-9\\t*(A-Za-z \u00A0\"<>\u2264\\[\uD558\u00B7\u0025\u002F\uF07F\uFF1C\uFF1E\u02C2\u02C3\u203B\u2265\u2267\u2460\u2461\u25AA\u25B2\u25BC\u25CF] "); - if (mcn.Value != string.Empty) - sb.Append("-T " + mcn.Value); - else if (ma.Value != string.Empty) - sb.Append("-T " + ma.Value); - else if (m1.Value != string.Empty) - sb.Append("-T " + m1.Value.Trim()); - else if (m2.Value != string.Empty) - sb.Append("-T " + m2.Value.Trim()); - else if (m3.Value != string.Empty) - sb.Append("-T " + m3.Value.Trim()); - else if (m4.Value != string.Empty) - sb.Append("-T {" + "Bullet " + ((int)(m4.Value[0])).ToString() + "}"); - else if (m5.Value != string.Empty) - sb.Append("-T {{" + ((int)(m5.Value[0])).ToString() + "}}"); - else sb.Append("-T"); - } - } - } - //else - //Console.WriteLine("here"); - } - sb.Append("]"); - RemoveRepeats(sb.ToString(),removeDuplicates); - return sb.ToString(); - } - private string GetUlDetail(XmlElement xe) - { - XmlAttribute xaType = xe.Attributes["type"]; - XmlAttribute xaStyle = xe.Attributes["style"]; - string type = string.Empty; - if (xaType != null) - type = " t" + xaType.Value; - string indent = string.Empty; - if (xaStyle != null) - indent = " i" + Regex.Replace(xaStyle.Value, "^.*-qt-list-indent: ([0-9]+).*$", "$1"); - return type + indent; - } - RegexReplace[] MyRegExReplaces = { - new RegexReplace("\\[p-T\\]","[Para]"), - new RegexReplace("\\[p-T OR\\]","[OR]"), - new RegexReplace("\\[p-T AND\\]","[AND]"), - new RegexReplace("\\[p-T NOTE\\]","[NOTE]"), - new RegexReplace("\\[p-T CAUTION\\]","[CAUTION]"), - new RegexReplace("\\[p-T WARNING\\]","[WARNING]"), - new RegexReplace("\\[p-T [0-9]+\\.\\]","[Seq1.]"), - new RegexReplace("\\[p-T [0-9]+\\)\\]","[Seq1)]"), - new RegexReplace("\\[p-T [A-Z]\\.\\]","[SeqA.]"), - new RegexReplace("\\[p-T [a-z]\\.\\]","[Seqa.]"), - new RegexReplace("\\[li-T\\]","[Li]"), - new RegexReplace(" tsquare i1","1"), - new RegexReplace(" tsquare i2","2"), - new RegexReplace(" tsquare i3","3"), - new RegexReplace(" tsquare i4","4"), - new RegexReplace("(\\[p\\])+","") - }; - RegexReplace[] MyRegExRepeats = { - new RegexReplace("(\\[Para\\])+","[Para]"), - new RegexReplace("(\\[OR\\])+","[OR]"), - new RegexReplace("(\\[AND\\])+","[AND]"), - new RegexReplace("(\\[NOTE\\])+","[NOTE]"), - new RegexReplace("(\\[CAUTION\\])+","[CAUTION]"), - new RegexReplace("(\\[WARNING\\])+","[WARNING]"), new RegexReplace("\\[p-T \\{\u2022\\}\\]","[Bullet]"), - new RegexReplace("(\\[Bullet\\])+","[Bullet]"), - new RegexReplace("(\\[Seq1\\.\\])+","[Seq1.]"), - new RegexReplace("(\\[Seq1\\)\\])+","[Seq1)]"), - new RegexReplace("(\\[SeqA\\.\\])+","[SeqA.]"), - new RegexReplace("(\\[Seqa\\.\\])+","[Seqa.]"), - new RegexReplace("(\\[Li\\])+","[Li]") -}; - private string RemoveRepeats(string str, bool removeDuplicates) - { - foreach (RegexReplace rr in MyRegExReplaces) - str = rr.DoReplace(str); - if (removeDuplicates) - foreach (RegexReplace rr in MyRegExRepeats) - str = rr.DoReplace(str); - return str; - } - private void btnCandN_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - tbResults.Clear(); - FindCandN(MyXMLDoc.DocumentElement); - } - - private void FindCandN(XmlElement xe) - { - if ((xe.Name == "CautionInstruction" || xe.Name == "NoteInstruction") - && (xe.ParentNode as XmlElement).Name == "Step" && AllSiblingsAreCautionsOrNotes(xe)) - tbResults.AppendText(xe.Name - + "\t" + (xe.ParentNode as XmlElement).Attributes["name"].Value - + "\t" + (xe.ParentNode as XmlElement).Attributes["name"].Value - + "\t" + (xe.ParentNode.ParentNode as XmlElement).Attributes["name"].Value - + "\r\n"); - foreach (XmlNode xc in xe.ChildNodes) - if (xc is XmlElement) - FindCandN(xc as XmlElement); - } - private bool AllSiblingsAreCautionsOrNotes(XmlElement xe) - { - XmlElement xep = xe.ParentNode as XmlElement; - if (xep == null) return false; - foreach (XmlNode xc in xep.ChildNodes) - if (xc.Name != "CautionInstruction" && xc.Name != "NoteInstruction") - return false; - return true; - } - private void btnHTLM3_Click(object sender, EventArgs e) - { - MessageBox.Show("Not Implemented", "NA", MessageBoxButtons.OK, MessageBoxIcon.Hand); - } - private void btnAllContent2_Click(object sender, EventArgs e) - { - tbResults.Text = ""; - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - tbResults.AppendText("\r\n" + chld.FullName); - GetAllContents2(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.AppendText("\r\nDone"); - } - private void GetAllContents2(string fileName) - { - FileInfo fi = new FileInfo(fileName); - FileInfo fo = new FileInfo(fi.DirectoryName + "\\" + GetProcedureNumber(fileName) + ".txt"); - GetAllContents2(fi, fo); - } - private void GetAllContents2(FileInfo fi, FileInfo fo) - { - StreamWriter sw = fo.CreateText(); - LoadXml(fi.FullName, "Document Loaded"); - ShowAllContent2(MyXMLDoc.DocumentElement, 0, sw); - sw.Close(); - } - private void ShowAllContent2(XmlElement xe, int level, StreamWriter sw) - { - ShowContent2(xe, level, sw); - foreach (XmlNode ch in xe.ChildNodes) - { - if (ch is XmlElement) - ShowAllContent2(ch as XmlElement, level + 1, sw); - } - } - private void ShowContent2(XmlElement xe, int level, StreamWriter sw) - { - string format = "Not Defined"; - string prefix = " "; - switch (xe.Name) - { - case "ident": - format = "Procedure (LabelType-number)={labelType}-{number} fullName={fullName} PNSNo={PNSNo}"; - break; - case "type": - format = "Procedure Type: {procedureType}"; - break; - case "GrossStep": - format = "number={number} name={name}"; - break; - case "Step": - format = "{number} {name}"; - prefix = "S "; - break; - case "Contingency": - format = "{number} {name}"; - prefix = "C "; - break; - case "attrib": - case "procedure": - case "controllers": - case "row": - format = "";// No Content - break; - case "CautionInstruction": - case "NoteInstruction": - format = "number={number} {content}"; - break; - case "UnitaryInstruction": - case "BinaryInstruction": - format = "number={number} Left Target: {leftTarget} Link Target: {linkTarget} {content}"; - break; - case "JoinInstruction": - format = "Link Target: {linkTarget} JoinType: {joinType}"; - break; - case "UnitaryContingencyCallInstruction": - format = "number={number} Link Target: {linkTarget} Evaluation Type: {evaluationType} {content}"; - prefix = "U "; - break; - case "taskGroup": - format = "name={name} borderVisible={borderVisible}"; - break; - case "BoolVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "TextVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "ovationGraphic": - format = "title={title} Diagram Number: {diagramNumber}"; - break; - case "ovationGroupTrend": - format = "name={name} description={description}"; - break; - case "controller": - format = "controller - Unknown"; - break; - case "and": - format = "and id={id}"; - break; - case "BigOverview": - format = "BigOverview grossStep={grossStep} number={number} id={id}"; - break; - case "BovActionStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovCheckBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovIfStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} rightTarget={rightTarget} {content}"; - break; - case "BovMessageBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovProcedureLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepInLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepOutLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "descr": - case "esinfo": - case "esproj": - case "esprop": - case "private": - case "pwg": - case "pwt": - case "revbase": - case "systemtest": - format = ""; - break; - case "eq": - case "gt": - case "gte": - case "lt": - case "lte": - case "not": - case "or": - format = "id={id}"; - break; - case "fcase": - case "tcase": - format = "rst={rst}"; - break; - case "logic": - format = "id={id} number={number}"; - break; - case "ovationSingleTrend": - format = "description={description} number={number} id={id} name={name}"; - break; - case "prop": - format = "type={type} value={value} name={name}"; - break; - case "TextVarInputInstruction": - format = "taskDescription={taskDescription} varInputLabel={varinputLabel} number={number} {content}"; - break; - case "utest": - format = "tested={tested}"; - break; - case "var": - format = "var_type={var_type} id={id} name={name} number={number}"; - break; - case "const": - format = "var_type={var_type} id={id} value={value}"; - break; - } - sw.Write(string.Format("\r\n{0}{1}{2} ", prefix, "".PadRight(level, ' ').Replace(" ", "| "), xe.Name)); - sw.Write(ReplaceAllAttributes2(format, xe, level, prefix)); - } - private string ReplaceAllAttributes2(string format, XmlElement xe, int level, string prefix) - { - MatchCollection m; - while ((m = regFixAttributes.Matches(format)).Count > 0) - { - string part1 = format.Substring(0, m[0].Groups[1].Index); - string part3 = format.Substring(m[0].Groups[1].Index + m[0].Groups[1].Length); - string att = m[0].Groups[1].Value.Replace("{", "").Replace("}", ""); - XmlAttribute xa = xe.Attributes[att]; - //if (xa == null) - // Console.WriteLine(xe.OuterXml); - string part2; - if (xa != null) - part2 = xe.Attributes[att].Value; //GetAttribute(xe, att); - else - part2 = "null"; - if (part2 == string.Empty) part2 = "empty"; - if (att == "content") - { - if (!part2.Contains("<")) - { - part2 = "

    " + part2 + "

    "; - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(cleanupHTML(part2,1)); - part2 = GetStructurePath(xd.DocumentElement,false); - part2 = part2.Replace("\n", string.Format("\r\n {0} ", "".PadRight(level).Replace(" ", "| "))); - } - format = part1 + part2 + part3; - } - return format; - } - Dictionary _VerbList; - private void btnVerbs_Click(object sender, EventArgs e) - { - _VerbList = new Dictionary(); - tbResults.Clear(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - FindVerbs(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowVerbs(); - } - - private void ShowVerbs() - { - foreach (string key in _VerbList.Keys) - tbResults.AppendText(string.Format("{0}\t\"{1}\"\r\n",_VerbList[key], key)); - } - - private void FindVerbs(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - FindVerbs(MyXMLDoc.DocumentElement); - } - - private void FindVerbs(XmlElement xe) - { - FindVerbContent(xe); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - FindVerbs(xn as XmlElement); - } - } - Regex _regFindSpan = new Regex("([A-Z]+)", RegexOptions.Compiled); - private void FindVerbContent(XmlElement xn) - { - if (xn.Attributes["content"] != null) - { - string xml = xn.Attributes["content"].Value; - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - //if (xml.Contains("font-weight:600")) Console.WriteLine("here"); - MatchCollection mc = _regFindSpan.Matches(xml); - if (mc.Count == 0) return; - foreach (Match m in mc) - if (_VerbList.ContainsKey(m.Groups[1].Value)) - _VerbList[m.Groups[1].Value]++; - else - _VerbList.Add(m.Groups[1].Value,1); - } - } - private SortedDictionary _DicFigureUsage; - private void btnFigures_Click(object sender, EventArgs e) - { - _DicFigureUsage = new SortedDictionary(); - tbResults.Clear(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - // Loop through XML Files - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - FindImages(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - ShowFigures(); - } - - private void ShowFigures() - { - tbResults.AppendText("\r\n\r\n**** MultipleOccurences ****\r\n\r\n"); - foreach (string key in _DicFigureUsage.Keys) - if(_DicFigureUsage[key]>1) - tbResults.AppendText(string.Format("{0}\t{1}\r\n", _DicFigureUsage[key], key)); - } - private void FindImages(string fileName) - { - - LoadXml(fileName, null); - //Find Content Attributes - FindImages(MyXMLDoc.DocumentElement, GetProcedureNumber(fileName)); - } - - private void FindImages(XmlElement xe, string procname) - { - FindImageContent(xe, procname); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - FindImages(xn as XmlElement, procname); - } - } - //Regex _regFindImage = new Regex("", RegexOptions.Compiled); - private void FindImageContent(XmlElement xn, string procname) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - if (!xml.Contains(" siblings = new SortedDictionary(); - XmlNode xp = xn.PreviousSibling; - while (xp != null) - { - string key = xp.Name; - if (!siblings.ContainsKey(key)) - siblings.Add(key, ShortVersion(key)); - xp = xp.PreviousSibling; - } - XmlNode xx = xn.NextSibling; - while (xx != null) - { - string key = xx.Name; - if (!siblings.ContainsKey(key)) - siblings.Add(key, ShortVersion(key)); - xx = xx.NextSibling; - } - string results = ""; - foreach (string ky in siblings.Keys) - results += siblings[ky]; - if (results == "") return null; - return results; - } - - private static string ShortVersion(string key) - { - switch (key) - { - case "NoteInstruction": - return "N"; - case "CautionInstruction": - return "C"; - case "Contingency": - return "*"; - case "UnitaryInstruction": - return "U"; - case "BinaryInstruction": - return "B"; - case "JoinInstruction": - return "J"; - case "UnitaryContingencyCallInstruction": - return "R"; - default: - return string.Format("[{0}]", key); - } - } - - private void btnTables_Click(object sender, EventArgs e) - { - //Loop through content containing table(s) under td. - tbResults.Clear(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - // Loop through XML Files - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - FindTables(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - ShowTables(); - } - - private void ShowTables() - { - //throw new NotImplementedException(); - } - - private void FindTables(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - FindTables(MyXMLDoc.DocumentElement, GetProcedureNumber(fileName)); - } - private void FindTables(XmlElement xe, string procNum) - { - FindTableContent(xe, procNum); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - FindTables(xn as XmlElement, procNum); - } - } - - private void FindTableContent(XmlElement xn, string procNum) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - if (!xml.Contains("]+>[\r\n]*", ""); - xmlbase = Regex.Replace(xmlbase, " style=\"\" style=\"", " style=\""); - string pat = " style=\\\"([^\"]+)\\\" style=\\\""; - xmlbase = Regex.Replace(xmlbase, pat, " style=\"$1"); - - XmlDocument xd = new XmlDocument(); - //TODO 20180913 0644 Not XML - if (!xmlbase.Contains("<")) return false; - xd.LoadXml(xmlbase); - return FirstTextIsType1(xd.DocumentElement, typ); - } - private static bool FirstTextIsType1(XmlNode xn, string typ) - { - foreach (XmlNode xc in xn.ChildNodes) - { - if (xc is XmlText) - { - if ((xc as XmlText).Value.Contains(typ)) - return true; - return false; - } - if (xc.Name == "body" || xc.Name == "p" || xc.Name == "li" || xc.Name == "span") - return FirstTextIsType1(xc, typ); - } - return false; - } - private static string GetSectionStyle(XmlNode xn) - { - foreach (XmlNode xc in xn.ChildNodes) - if (xc.Name == "BinaryInstruction" || xc.Name == "Contingency " || xc.Name=="UnitaryContingencyCallInstruction" || countChildNodes(xc)>0) - if(xc.Name != "esinfo") return "Substeps"; - bool hasFreeForm = false; - bool hasSpecificNotes = false; - bool hasUnitary = false; - foreach (XmlNode xc in xn.ChildNodes) - { - if (xc.Name == "NoteInstruction" || xc.Name == "CautionInstruction") - { - if (FirstTextIsType(xc, "NOTE") || FirstTextIsType(xc, "CAUTION") || FirstTextIsType(xc, "WARNING")) - { - hasSpecificNotes = true; - } - else - hasFreeForm = true; - } - if (xc.Name == "UnitaryInstruction") - hasUnitary = true; - } - if (hasFreeForm) return "Free Form"; - if (hasUnitary) return "Step or Free Form"; - return hasSpecificNotes ? "Specific Notes" : "Unknown"; - } - - private static int countChildNodes(XmlNode xn) - { - if (xn.ChildNodes.Count == 0) return 0; - int retval = 0; - foreach (XmlNode xc in xn.ChildNodes) - { - if (xc.Name.EndsWith("Instruction") || xc.Name =="Contingency") retval++; - retval += countChildNodes(xc); - } - //if (retval > 0 && xn.Name == "NoteInstruction") Console.WriteLine("here"); - return retval; - } - - private object GetContainsImage(XmlNode xn) - { - if (xn.InnerXml.Contains("<img ")) return "Image"; - return ""; - } - - private object GetContainsTable(XmlNode xn) - { - if (xn.InnerXml.Contains("<table ")) return "Table"; - return ""; - } - } - public class RegexReplace - { - private string _Pattern; - public string Pattern - { - get { return _Pattern; } - set { _Pattern = value; } - } - private string _Replace; - public string Replace - { - get { return _Replace; } - set { _Replace = value; } - } - private Regex _RegEx; - public Regex RegEx - { - get - { - if (_RegEx == null) - _RegEx = new Regex(Pattern, RegexOptions.Compiled); - return _RegEx; - } - } - public RegexReplace(string pattern, string replace) - { - _Pattern = pattern; - _Replace = replace; - } - public string DoReplace(string str) - { - return RegEx.Replace(str, Replace); - } - } - public class StepLookup : SortedDictionary - { - public StepInfo this[int i] - { - get - { - if (this.ContainsKey(i.ToString())) return base[i.ToString()]; - return null; - } - set - { - if (i > this.Count) - throw new Exception("Gap in Stack"); - if (value == null) - throw new Exception("Null StepInfo"); - //if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution )) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value); - if (this.ContainsKey(i.ToString())) - { - base[i.ToString()] = value; - while (this.ContainsKey((i + 1).ToString())) - base.Remove((base.Count - 1).ToString()); - } - else base.Add(i.ToString(), value); - //ListMySteps("Set ", this); - } - } - public void AddOne(StepInfo previousStep) - { - this[this.Count] = previousStep; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText); - i++; - } - } - } - public class StepText - { - private string _OriginalText; - public string OriginalText - { - get { return _OriginalText; } - set { _OriginalText = value; } - } - private int _Indent=0; - public int Indent - { - get { return _Indent; } - set { _Indent = value; } - } - private string _Tab=string.Empty; - public string Tab - { - get { return _Tab; } - set { _Tab = value; } - } - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - public StepText() - { - } - private static Regex reg_SplitText = new Regex(@"^(([\t ]*)([a-z1-9A-Z][0-9]*[\.\)](?= |[^S0-9])|\*|)( *))((?![0-9]+\.[0-9]+ )[0-9A-Za-z][^\r\n]*)"); - private static Regex reg_SplitText1 = new Regex(@"([\t ]*)([1-9][0-9]*\.[0-9]+(?= *(Manually )?[A-Z]))( *)([^\r\n]+)"); - public StepText(string str) - { - OriginalText = str; - //if (str.Contains("\\u9679?")) - // Console.WriteLine("here"); - if (str.Trim().StartsWith("T.S.")) - { - Tab = ""; - Indent = str.Length - str.TrimStart().Length; - Text = str.Substring(Indent); - } - //if (str.Contains("3.1") || str.Contains("1.1") || str.Contains("Line up the valves for manual operation")) - // Console.WriteLine("here"); - Match m = reg_SplitText.Match(str.Replace("\\u9679?", "*")); - if (m.Success) - { - Tab = m.Groups[3].Value; - Indent = m.Groups[2].Length + Tab.Length + m.Groups[4].Length; - Text = m.Groups[5].Value; - //if (Text.Contains("OR") || Text.Contains("AND")) - // Console.WriteLine("here"); - } - else - { - m = reg_SplitText1.Match(str.Replace("\\u9679?", "*")); - if (m.Success) - { - Tab = m.Groups[1].Value; - Indent = m.Groups[1].Length + Tab.Length + m.Groups[4].Length; - Text = m.Groups[5].Value; - } - else - { - Tab = ""; - Indent = str.Length - str.TrimStart().Length; - Text = str.Substring(Indent); - } - } - //if(Regex.IsMatch(Text,@"^[1-9a-zA-Z][.\)]")) - // Console.WriteLine(Text); - } - public override string ToString() - { - return string.Format("{0} {1} {2}",Indent,Tab,Text); - } - } - public class Node - { - private static SortedList _AllNodes = new SortedList(); - public static SortedList AllNodes - { - get { return Node._AllNodes; } - set { Node._AllNodes = value; } - } - public static void Reset() - { - _AllNodes = new SortedList(); - } - private string _Name; - public string Name - { - get { return _Name; } - set { _Name = value; } - } - private List _Children = new List(); - public List Children - { - get { return _Children; } - set { _Children = value; } - } - private Attributes _Attributes = new Attributes(); - public Attributes Attributes - { - get { return _Attributes; } - set { _Attributes = value; } - } - private bool _HasText = false; - public bool HasText - { - get { return _HasText; } - set { _HasText = value; } - } - public Node(XmlElement xe) - { - _AllNodes.Add(xe.Name, this); - } - public static void Add(XmlElement xe) - { - BuildList(xe); - } - private static void BuildList(XmlElement xe) - { - Node nd; - if (!_AllNodes.ContainsKey(xe.Name)) - nd = new Node(xe); - else - nd = _AllNodes[xe.Name]; - AdjustChildren(nd, xe.ChildNodes); - AdjustAttributes(nd, xe.Attributes); - foreach (XmlNode ch in xe.ChildNodes) - // ChildNodes can contain XmlText as well as XmlElement nodes - if (ch is XmlElement) - BuildList(ch as XmlElement); - } - private static void AdjustAttributes(Node nd, XmlAttributeCollection xmlAttributeCollection) - { - foreach (XmlAttribute xa in xmlAttributeCollection) - AdjustAttribute(nd, xa); - } - private static void AdjustAttribute(Node nd, XmlAttribute xa) - { - nd.Attributes.Add(xa); - } - private static void AdjustChildren(Node nd, XmlNodeList xmlNodeList) - { - foreach (XmlNode ne in xmlNodeList) - { - // XmlNodeList can contain XmlText as well as XmlElement nodes - if (ne is XmlElement) - { - if (!nd.Children.Contains((ne as XmlElement).Name)) - nd.Children.Add((ne as XmlElement).Name); - } - else if (ne is XmlText) - nd.HasText = true; - else - Console.WriteLine("Not Expected {0}", ne.GetType().FullName); - } - } - } - public class Attributes : Dictionary - { - public void Add(XmlAttribute xa) - { - if (!this.ContainsKey(xa.Name)) - base.Add(xa.Name, new Attribute(xa)); - else - { - Attribute att = this[xa.Name]; - att.Count++; - att.MinValue = string.Compare(att.MinValue, xa.Value) > 0 ? xa.Value : att.MinValue; - att.MaxValue = string.Compare(att.MinValue, xa.Value) < 0 ? xa.Value : att.MaxValue; - } - } - } - public class Attribute - { - public Attribute(XmlAttribute xa) - { - _Name = xa.Name; - _MinValue = xa.Value; - _MaxValue = xa.Value; - _Count = 1; - } - private string _Name; - public string Name - { - get { return _Name; } - set { _Name = value; } - } - private string _MinValue; - public string MinValue - { - get { return _MinValue; } - set { _MinValue = value; } - } - private string _MaxValue; - public string MaxValue - { - get { return _MaxValue; } - set { _MaxValue = value; } - } - private int _Count = 0; - public int Count - { - get { return _Count; } - set { _Count = value; } - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.resx b/PROMS/BarakahConvert/XMLConvert/frmConvertXML.resx deleted file mode 100644 index 216d3ddc..00000000 --- a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 25 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/XMLConvert/vlnhtml.cs b/PROMS/BarakahConvert/XMLConvert/vlnhtml.cs deleted file mode 100644 index 41a9e014..00000000 --- a/PROMS/BarakahConvert/XMLConvert/vlnhtml.cs +++ /dev/null @@ -1,742 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Serialization; -using System.ComponentModel; -using System.Xml; -using System.Xml.Schema; -using System.IO; - -namespace XMLConvert -{ - /// - /// Root Node - /// - [XmlRoot("html")] - public class vlnhtml : VlnHtmlContainer - { - } - [TypeConverter(typeof(ExpandableObjectConverter))] - /// - /// Part - /// - public class VlnHtmlPart - { - #region ID - protected string _ID = string.Empty; - [System.ComponentModel.DefaultValueAttribute("")] - [XmlIgnore] - public string ID - { - get { return _ID; } - set { _ID = value; } - } - #endregion - //#region Parent and Containing Svg - //// ToDo: MyParent - //private SvgPartGrouping _MyParent; - //[XmlIgnore()] - //public SvgPartGrouping MyParent - //{ - // get { return _MyParent; } - // set { _MyParent = value; } - //} - //// ToDo: MySvg - //private Svg _MySvg; - //public Svg MySvg - //{ - // get { return _MySvg; } - // set { _MySvg = value; } - //} - //internal void SetParent(SvgPartGrouping myParent) - //{ - // _MyParent = myParent; - // _MySvg = myParent.MySvg == null? MyParent : myParent.MySvg; - //} - //#endregion - #region Dictionary of Parts - internal virtual void AddLookup(Dictionary lookUp) - { - if (_ID != string.Empty && !lookUp.ContainsKey(_ID)) - lookUp.Add(_ID, this); - } - #endregion - } - [Serializable()] - [TypeConverter(typeof(VlnHtmlPartsConverter))] - /// - /// Parts - /// - public class VlnHtmlParts : CollectionBase, ICustomTypeDescriptor - { - /// Notifies when the collection has been modified. - public event EventHandler OnItemsChanged; - - /// Notifies that an item has been added. - public event VlnHtmlPartHandler OnItemAdd; - - /// Notifies that items have been added. - public event VlnHtmlPartHandler OnItemsAdd; - - /// Notifies that an item has been removed. - public event VlnHtmlPartHandler OnItemRemove; - - /// - /// - /// Initializes a new instance of . - /// - /// - public VlnHtmlParts() - { - } - - /// - /// - /// Initializes a new instance of based on another . - /// - /// - /// - /// A from which the contents are copied - /// - public VlnHtmlParts(VlnHtmlParts value) - { - this.AddRange(value); - } - - /// - /// - /// Initializes a new instance of containing any array of objects. - /// - /// - /// - /// A array of objects with which to intialize the collection - /// - public VlnHtmlParts(VlnHtmlPart[] value) - { - this.AddRange(value); - } - - /// - /// Represents the entry at the specified index of the . - /// - /// The zero-based index of the entry to locate in the collection. - /// - /// The entry at the specified index of the collection. - /// - /// is outside the valid range of indexes for the collection. - public VlnHtmlPart this[int index] - { - get { return ((VlnHtmlPart)(List[index])); } - set { List[index] = value; } - } - //#region SetupInheritance - //internal void SetupInheritance(SvgInheritedSettings myParentsSettings) - //{ - // foreach (vlnhtmlpart vlnhtmlpart in List) - // vlnhtmlpart.SetupInheritance(myParentsSettings); - //} - //#endregion - #region Dictionary of Parts - internal void AddLookup(Dictionary lookUp) - { - foreach (VlnHtmlPart vlnhtmlpart in List) - vlnhtmlpart.AddLookup(lookUp); - } - #endregion - internal static void ShowException(Exception ex) - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - for (Exception ex1 = ex; ex1 != null; ex1 = ex1.InnerException) - { - sb.Append(sep + string.Format("ShowException {0} - {1}", ex1.GetType().Name, ex1.Message)); - sep = "\r\n"; - } - Console.WriteLine(sb); - } - /// - /// Adds a with the specified value to the - /// . - /// - /// The to add. - /// - /// The index at which the new element was inserted. - /// - /// - public int Add(VlnHtmlPart value) - { - int ndx = List.Add(value); - if (OnItemAdd != null) { OnItemAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - return ndx; - } - - /// - /// Copies the elements of an array to the end of the . - /// - /// - /// An array of type containing the objects to add to the collection. - /// - /// - /// None. - /// - /// - public void AddRange(VlnHtmlPart[] value) - { - for (int i = 0; i < value.Length; i++) - { - this.Add(value[i]); - } - if (OnItemsAdd != null) { OnItemsAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - - /// - /// - /// Adds the contents of another to the end of the collection. - /// - /// - /// - /// A containing the objects to add to the collection. - /// - /// - /// None. - /// - /// - public void AddRange(VlnHtmlParts value) - { - for (int i = 0; i < value.Count; i++) - { - this.Add(value[i]); - } - if (OnItemsAdd != null) { OnItemsAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - - /// - /// Gets a value indicating whether the - /// contains the specified . - /// - /// The to locate. - /// - /// if the is contained in the collection; - /// otherwise, . - /// - /// - public bool Contains(VlnHtmlPart value) - { - return List.Contains(value); - } - - /// - /// Copies the values to a one-dimensional instance at the - /// specified index. - /// - /// The one-dimensional that is the destination of the values copied from . - /// The index in where copying begins. - /// - /// None. - /// - /// is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . - /// is . - /// is less than 's lowbound. - /// - public void CopyTo(VlnHtmlPart[] array, int index) - { - List.CopyTo(array, index); - } - - /// - /// Returns the index of a in - /// the . - /// - /// The to locate. - /// - /// The index of the of in the - /// , if found; otherwise, -1. - /// - /// - public int IndexOf(VlnHtmlPart value) - { - return List.IndexOf(value); - } - - /// - /// Inserts a into the at the specified index. - /// - /// The zero-based index where should be inserted. - /// The to insert. - /// None. - /// - public void Insert(int index, VlnHtmlPart value) - { - List.Insert(index, value); - if (OnItemAdd != null) { OnItemAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - - /// - /// Removes a specific from the - /// . - /// - /// The to remove from the . - /// None. - /// is not found in the Collection. - public void Remove(VlnHtmlPart value) - { - List.Remove(value); - if (OnItemRemove != null) { OnItemRemove(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - #region ICustomTypeDescriptor impl - public String GetClassName() - { return TypeDescriptor.GetClassName(this, true); } - public AttributeCollection GetAttributes() - { return TypeDescriptor.GetAttributes(this, true); } - public String GetComponentName() - { return TypeDescriptor.GetComponentName(this, true); } - public TypeConverter GetConverter() - { return TypeDescriptor.GetConverter(this, true); } - public EventDescriptor GetDefaultEvent() - { return TypeDescriptor.GetDefaultEvent(this, true); } - public PropertyDescriptor GetDefaultProperty() - { return TypeDescriptor.GetDefaultProperty(this, true); } - public object GetEditor(Type editorBaseType) - { return TypeDescriptor.GetEditor(this, editorBaseType, true); } - public EventDescriptorCollection GetEvents(System.Attribute[] attributes) - { return TypeDescriptor.GetEvents(this, attributes, true); } - public EventDescriptorCollection GetEvents() - { return TypeDescriptor.GetEvents(this, true); } - public object GetPropertyOwner(PropertyDescriptor pd) - { return this; } - /// - /// Called to get the properties of this type. Returns properties with certain - /// attributes. this restriction is not implemented here. - /// - /// - /// - public PropertyDescriptorCollection GetProperties(System.Attribute[] attributes) - { return GetProperties(); } - /// - /// Called to get the properties of this type. - /// - /// - public PropertyDescriptorCollection GetProperties() - { - // Create a collection object to hold property descriptors - PropertyDescriptorCollection pds = new PropertyDescriptorCollection(null); - // Iterate the list - for (int i = 0; i < this.Count; i++) - { - // Create a property descriptor for the item and add to the property descriptor collection - vlnhtmlpartsPropertyDescriptor pd = new vlnhtmlpartsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - - /// Event arguments for the vlnhtmlparts collection class. - public class vlnhtmlpartArgs : EventArgs - { - private VlnHtmlParts t; - - /// Default constructor. - public vlnhtmlpartArgs() - { - t = new VlnHtmlParts(); - } - - /// Initializes with a vlnhtmlpart. - /// Data object. - public vlnhtmlpartArgs(VlnHtmlPart t) - : this() - { - this.t.Add(t); - } - - /// Initializes with a collection of vlnhtmlpart objects. - /// Collection of data. - public vlnhtmlpartArgs(VlnHtmlParts ts) - : this() - { - this.t.AddRange(ts); - } - - /// Initializes with an array of vlnhtmlpart objects. - /// Array of data. - public vlnhtmlpartArgs(VlnHtmlPart[] ts) - : this() - { - this.t.AddRange(ts); - } - - /// Gets or sets the data of this argument. - public VlnHtmlParts vlnhtmlparts - { - get { return t; } - set { t = value; } - } - } - - /// vlnhtmlparts event handler. - public delegate void VlnHtmlPartHandler(object sender, vlnhtmlpartArgs e); - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class vlnhtmlpartsPropertyDescriptor : vlnListPropertyDescriptor - { - private VlnHtmlPart Item { get { return (VlnHtmlPart)_Item; } } - public vlnhtmlpartsPropertyDescriptor(VlnHtmlParts collection, int index) : base(collection, index) { ;} - public override string DisplayName - { get { return Item.GetType().Name; } } - } - #endregion - [Serializable()] - public partial class vlnListPropertyDescriptor : PropertyDescriptor - { - protected object _Item = null; - public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - : base("#" + index.ToString(), null) - { _Item = collection[index]; } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { get { return _Item.GetType(); } } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { get { return false; } } - public override Type PropertyType - { get { return _Item.GetType(); } } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - //public override AttributeCollection Attributes - //{ get { return new AttributeCollection(null); } } - public override string DisplayName - { get { return _Item.ToString(); } } - public override string Description - { get { return _Item.ToString(); } } - public override string Name - { get { return _Item.ToString(); } } - - } // Class - #region Converter - internal class VlnHtmlPartsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is VlnHtmlParts) - { - // Return department and department role separated by comma. - return ((VlnHtmlParts)value).List.Count.ToString() + " SVG Drawing Parts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion - /// SVGParts event handler. - //public delegate void VlnHtmlPartHandler(object sender, VlnHtmlPartArgs e); - //#region Property Descriptor - ///// - ///// Summary description for CollectionPropertyDescriptor. - ///// - //public partial class VlnHtmlPartsPropertyDescriptor : vlnListPropertyDescriptor - //{ - // private VlnHtmlPart Item { get { return (VlnHtmlPart)_Item; } } - // public VlnHtmlPartsPropertyDescriptor(VlnHtmlParts collection, int index) : base(collection, index) { ;} - // public override string DisplayName - // { get { return Item.GetType().Name; } } - //} - //#endregion - //[Serializable()] - //public partial class vlnListPropertyDescriptor : PropertyDescriptor - //{ - // protected object _Item = null; - // public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - // : base("#" + index.ToString(), null) - // { _Item = collection[index]; } - // public override bool CanResetValue(object component) - // { return true; } - // public override Type ComponentType - // { get { return _Item.GetType(); } } - // public override object GetValue(object component) - // { return _Item; } - // public override bool IsReadOnly - // { get { return false; } } - // public override Type PropertyType - // { get { return _Item.GetType(); } } - // public override void ResetValue(object component) - // { ;} - // public override bool ShouldSerializeValue(object component) - // { return true; } - // public override void SetValue(object component, object value) - // { /*_Item = value*/;} - // //public override AttributeCollection Attributes - // //{ get { return new AttributeCollection(null); } } - // public override string DisplayName - // { get { return _Item.ToString(); } } - // public override string Description - // { get { return _Item.ToString(); } } - // public override string Name - // { get { return _Item.ToString(); } } - - //} // Class - //#region Converter - //internal class VlnHtmlPartsConverter : ExpandableObjectConverter - //{ - // public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - // { - // if (destType == typeof(string) && value is VlnHtmlParts) - // { - // // Return department and department role separated by comma. - // return ((VlnHtmlParts)value).List.Count.ToString() + " Vln Html Parts"; - // } - // return base.ConvertTo(context, culture, value, destType); - // } - //} - // } - //#endregion - } - - - /// - /// Hyperrlink - /// - public class vlnhtml_a - { - //url - } - public class vlnhtmlContent : VlnHtmlPart - { - string _text; - [XmlText] - public string Text - { - get { return _text; } - set { _text = value; } - } - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - string _align;// Center Right Justify - [XmlAttribute("align")] - public string Align - { - get { return _align; } - set { _align = value; } - } - } - /// - /// Paragraph - /// - public class vlnhtml_p : vlnhtmlContent - { - } - /// - /// Break - /// - public class vlnhtml_br : VlnHtmlPart - { - } - /// - /// Image - /// - public class vlnhtml_img : VlnHtmlPart - { - string _src;//filename and Path - [XmlAttribute("src")] - public string Src - { - get { return _src; } - set { _src = value; } - } - int _width; - [XmlAttribute("width")] - public int Width - { - get { return _width; } - set { _width = value; } - } - } - /// - /// Container - /// - public class VlnHtmlContainer : VlnHtmlPart - { - VlnHtmlParts _Children = new VlnHtmlParts(); - [XmlElement("ul", typeof(vlnhtml_ul))] - [XmlElement("ol", typeof(vlnhtml_ol))] - [XmlElement("li", typeof(vlnhtml_li))] - [XmlElement("p", typeof(vlnhtml_p))] - [XmlElement("a", typeof(vlnhtml_a))] - [XmlElement("br", typeof(vlnhtml_br))] - [XmlElement("img", typeof(vlnhtml_img))] - [XmlElement("table", typeof(vlnhtml_table))] - internal VlnHtmlParts Children - { - get - { - //if (_Children == null) - // _Children = new VlnHtmlParts(); - return _Children; - } - set { _Children = value; } - } - } - /// - /// Ordered List - /// - public class vlnhtml_ol : VlnHtmlContainer - { - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - } - /// - /// Unordered List - /// - public class vlnhtml_ul : VlnHtmlContainer - { - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - } - /// - /// List Item - /// - public class vlnhtml_li : vlnhtmlContent - { - } - /// - /// Table - /// - public class vlnhtml_table : VlnHtmlContainer - { - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - int _border;// - int _cellspacing; - int _cellpadding; - } - public class vlnhtml_tr : VlnHtmlContainer - { - } - public class vlnhtml_td : VlnHtmlContainer - { - } - public static class HtmlSerializer where T : class - { - public static string StringSerialize(T t) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - using (MemoryStream ms = new MemoryStream()) - { - xs.Serialize(new NonXsiTextWriter(ms, Encoding.UTF8), t); - //xs.Serialize(ms, t); - ms.Position = 0; - StreamReader sr = new StreamReader(ms); - strOutput = sr.ReadToEnd(); - ms.Close(); - } - return strOutput; - } - public static T StringDeserialize(string s) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - UTF8Encoding enc = new UTF8Encoding(); - Byte[] arrBytData = enc.GetBytes(s); - using (MemoryStream ms = new MemoryStream(arrBytData)) - { - t = (T)xs.Deserialize(ms); - } - return t; - } - public static void WriteFile(T t, string fileName) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - using (FileStream fs = new FileStream(fileName, FileMode.Create)) - { - xs.Serialize(new NonXsiTextWriter(fs, Encoding.UTF8), t); - fs.Close(); - } - } - public static T ReadFile(string fileName) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - using (FileStream fs = new FileStream(fileName, FileMode.Open)) - { - t = (T)xs.Deserialize(fs); - } - return t; - } - } - public class NonXsiTextWriter : XmlTextWriter - { - public NonXsiTextWriter(TextWriter w) : base(w) { } - public NonXsiTextWriter(Stream w, Encoding encoding) - : base(w, encoding) - { - this.Formatting = Formatting.Indented; - } - public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { } - bool _skip = false; - public override void WriteStartAttribute(string prefix, string localName, string ns) - { - if ((prefix == "xmlns" && (localName == "xsd" || localName == "xsi")) || // Omits XSD and XSI declarations. - ns == XmlSchema.InstanceNamespace) // Omits all XSI attributes. - { - _skip = true; - return; - } - if (localName == "xlink_href") - base.WriteStartAttribute(prefix, "xlink:href", ns); - else - base.WriteStartAttribute(prefix, localName, ns); - } - public override void WriteString(string text) - { - if (_skip) return; - base.WriteString(text); - } - public override void WriteEndAttribute() - { - if (_skip) - { // Reset the flag, so we keep writing. - _skip = false; - return; - } - base.WriteEndAttribute(); - } - } -} diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.exe.intermediate.manifest b/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.exe.intermediate.manifest deleted file mode 100644 index 9b3e3ba3..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.exe.intermediate.manifest +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.res b/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.res deleted file mode 100644 index 61ec452b..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.res and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/vc80.idb b/PROMS/DSOFramer/DSOFramer/Source2005/Demo/vc80.idb deleted file mode 100644 index f76d5265..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/vc80.idb and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframer.idl b/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframer.idl deleted file mode 100644 index d818958e..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframer.idl +++ /dev/null @@ -1,281 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.IDL - DSO Framer ActiveX Control Type Library - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: You should not attempt to modify this library unless you are - * sure you do not break binary compatibility, or you change all the GUIDs - * listed in version.h so as to build a completely new control. - * - ***************************************************************************/ -#include -#include "..\version.h" - -[ - uuid(DSOFRAMERCTL_TLIB), helpstring(DSOFRAMERCTL_FULLNAME), - version(DSOFRAMERCTL_VERSION), lcid(0x0000), control -] -library DSOFramer -{ - importlib("STDOLE2.TLB"); - - typedef enum dsoBorderStyle - { - dsoBorderNone = 0, - dsoBorderFlat, - dsoBorder3D, - dsoBorder3DThin - } dsoBorderStyle; - - typedef enum dsoShowDialogType - { - dsoDialogNew = 0, - dsoDialogOpen, - dsoDialogSave, - dsoDialogSaveCopy, - dsoDialogPrint, - dsoDialogPageSetup, - dsoDialogProperties - } dsoShowDialogType; - - typedef enum dsoFileCommandType - { - dsoFileNew = 0, - dsoFileOpen, - dsoFileClose, - dsoFileSave, - dsoFileSaveAs, - dsoFilePrint, - dsoFilePageSetup, - dsoFileProperties, - dsoFilePrintPreview - } dsoFileCommandType; - - - [ - uuid(DSOFRAMERCTL_INTERFACE), hidden, version(DSOFRAMERCTL_VERSION), - dual, oleautomation, odl - ] - interface _FramerControl : IDispatch - { - [id(0x00010001), helpstring("Activates the current document object.")] - HRESULT Activate(); - - [propget, id(0x00010002), helpstring("Returns the Automation interface of the document object.")] - HRESULT ActiveDocument([out,retval] IDispatch** ppdisp); - - [id(0x00010003), helpstring("Creates a new document based on the ProgId or Template file provided.")] - HRESULT CreateNew([in] BSTR ProgIdOrTemplate); - - [id(0x00010004), helpstring("Opens a document from a file, URL, or Automation object.")] - HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly, [in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010005), helpstring("Saves the document to specified location or its original location.")] - HRESULT Save([in, optional] VARIANT SaveAsDocument, [in, optional] VARIANT OverwriteExisting, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010008), hidden] - HRESULT _PrintOutOld([in, optional] VARIANT PromptToSelectPrinter); - - [id(0x00010009), helpstring("Closes the currently open document.")] - HRESULT Close(); - - [propput, id(0x0001000A), helpstring("Returns/sets the titlebar caption.")] - HRESULT Caption([in] BSTR bstr); - [propget, id(0x0001000A)] - HRESULT Caption([out,retval] BSTR* pbstr); - - [propput, id(0x0001000B), helpstring("Returns/sets whether the titlebar should be displayed.")] - HRESULT Titlebar([in] VARIANT_BOOL vbool); - [propget, id(0x0001000B)] - HRESULT Titlebar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001000C), helpstring("Returns/sets whether toolbars should be displayed.")] - HRESULT Toolbars([in] VARIANT_BOOL vbool); - [propget, id(0x0001000C)] - HRESULT Toolbars([out,retval] VARIANT_BOOL* pbool); - - [propput, nonbrowsable, id(0x0001000D), helpstring("Returns/sets the controls modal state.")] - HRESULT ModalState([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x0001000D)] - HRESULT ModalState([out,retval] VARIANT_BOOL* pbool); - - [id(0x0001000E), helpstring("Displays a modal dialog of the given type for user action.")] - HRESULT ShowDialog([in] dsoShowDialogType DlgType); - - [propput, id(0x0001000F), helpstring("Returns/sets whether a specific action item is enabled.")] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [in] VARIANT_BOOL vbool); - [propget, id(0x0001000F)] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [out,retval] VARIANT_BOOL* pbool); - - [propput, id(DISPID_BORDERSTYLE), helpstring("Returns/sets the border style for the control.")] - HRESULT BorderStyle([in] dsoBorderStyle style); - [propget, id(DISPID_BORDERSTYLE)] - HRESULT BorderStyle([out, retval] dsoBorderStyle* pstyle); - - [propput, id(DISPID_BORDERCOLOR), helpstring("Returns/sets the border color of the control.")] - HRESULT BorderColor([in] OLE_COLOR clr); - [propget, id(DISPID_BORDERCOLOR)] - HRESULT BorderColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color of the control.")] - HRESULT BackColor([in] OLE_COLOR clr); - [propget, id(DISPID_BACKCOLOR)] - HRESULT BackColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_FORECOLOR), helpstring("Returns/sets the foreground color of the control.")] - HRESULT ForeColor([in]OLE_COLOR clr); - [propget, id(DISPID_FORECOLOR)] - HRESULT ForeColor([out,retval]OLE_COLOR* pclr); - - [propput, id(0x00010010), helpstring("Returns/sets the color of the titlebar.")] - HRESULT TitlebarColor([in] OLE_COLOR clr); - [propget, id(0x00010010)] - HRESULT TitlebarColor([out,retval] OLE_COLOR* pclr); - - [propput, id(0x00010011), helpstring("Returns/sets the color of text for the titlebar.")] - HRESULT TitlebarTextColor([in] OLE_COLOR clr); - [propget, id(0x00010011)] - HRESULT TitlebarTextColor([out,retval] OLE_COLOR* pclr); - - [id(0x00010012), helpstring("Calls IOleCommandTarget::Exec on embedded object.")] - HRESULT ExecOleCommand([in] LONG OLECMDID, [in, optional] VARIANT Options, [in, optional] VARIANT* vInParam, [in, out, optional] VARIANT* vInOutParam); - - [propput, id(0x00010013), helpstring("Returns/sets whether a menu bar should be displayed.")] - HRESULT Menubar([in] VARIANT_BOOL vbool); - [propget, id(0x00010013)] - HRESULT Menubar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x00010014), helpstring("Returns/sets host application name (used in embedding).")] - HRESULT HostName([in] BSTR bstr); - [propget, id(0x00010014)] - HRESULT HostName([out,retval] BSTR* pbstr); - - [propget, id(0x00010015), helpstring("Returns full document path name for object.")] - HRESULT DocumentFullName([out,retval] BSTR* pbstr); - - [id(0x00010016), helpstring("Prints current document to specific printer with settings.")] - HRESULT PrintOut([in, optional] VARIANT PromptUser, [in, optional] VARIANT PrinterName, [in, optional] VARIANT Copies, - [in, optional] VARIANT FromPage, [in, optional] VARIANT ToPage, [in, optional] VARIANT OutputFile); - - [id(0x00010017), helpstring("Starts a print preview (if document supports it).")] - HRESULT PrintPreview(); - - [id(0x00010018), helpstring("Exits a current print preview.")] - HRESULT PrintPreviewExit(); - - [propget, id(0x00010019), helpstring("Returns True/False if file was open read-only, or has not been saved.")] - HRESULT IsReadOnly([out,retval] VARIANT_BOOL* pbool); - - [propget, id(0x0001001A), helpstring("Returns True/False if file has been altered or needs save.")] - HRESULT IsDirty([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001001B), helpstring("Sets lock on the current embed server to keep it running (document must be open first).")] - HRESULT LockServer([in] VARIANT_BOOL vbool); - [propget, id(0x0001001B)] - HRESULT LockServer([out,retval] VARIANT_BOOL* pvbool); - - [id(0x0001001C), nonbrowsable, helpstring("Gets the content of the body of the document (excluding headers/footers).")] - HRESULT GetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [out,retval] VARIANT *pvResults); - - [id(0x0001001D), nonbrowsable, helpstring("Sets the content of the body of the document.")] - HRESULT SetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [in] VARIANT DataByteArray); - - [propput, id(0x0001001E), helpstring("Allows host to set policy on activation behavior.")] - HRESULT ActivationPolicy([in] enum dsoActivationPolicy lPolicy); - [propget, id(0x0001001E)] - HRESULT ActivationPolicy([out,retval] enum dsoActivationPolicy *plPolicy); - - [propput, id(0x0001001F), helpstring("Allows host to set policy on use of the frame hook.")] - HRESULT FrameHookPolicy([in] enum dsoFrameHookPolicy lPolicy); - [propget, id(0x0001001F)] - HRESULT FrameHookPolicy([out,retval] enum dsoFrameHookPolicy *plPolicy); - - [propput, id(0x00010020), helpstring("Gets/sets whether control should try to handle menu accelerators or pass to host window.")] - HRESULT MenuAccelerators([in] VARIANT_BOOL vbool); - [propget, id(0x00010020)] - HRESULT MenuAccelerators([out,retval] VARIANT_BOOL* pvbool); - - [propput, nonbrowsable, id(0x00010021), helpstring("Gets/sets whether control events are raised.")] - HRESULT EventsEnabled([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x00010021)] - HRESULT EventsEnabled([out,retval] VARIANT_BOOL* pvbool); - - [propget, id(0x00010022), helpstring("Returns just the document name (excluding path).")] - HRESULT DocumentName([out,retval] BSTR* pbstr); - }; - - [ - uuid(DSOFRAMERCTL_DISPEVTS), hidden - ] - dispinterface _DFramerCtlEvents - { - properties: - methods: - [id(DSOF_DISPID_FILECMD), helpstring("Called when File menu item is selected by user (may be canceled).")] - HRESULT OnFileCommand([in] dsoFileCommandType Item, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_DOCOPEN), helpstring("Called when document is opened or new document added.")] - HRESULT OnDocumentOpened([in] BSTR File, [in] IDispatch* Document); - - [id(DSOF_DISPID_DOCCLOSE), helpstring("Called when document is closed.")] - HRESULT OnDocumentClosed(); - - [id(DSOF_DISPID_ACTIVATE), helpstring("Called when component gains/loses activation.")] - HRESULT OnActivationChange([in] VARIANT_BOOL fGoingActive); - - [id(DSOF_DISPID_BDOCCLOSE), helpstring("Called before document is closed (may be canceled).")] - HRESULT BeforeDocumentClosed([in] IDispatch* Document, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_BDOCSAVE), helpstring("Called before document is saved (may be canceled).")] - HRESULT BeforeDocumentSaved([in] IDispatch* Document, [in] BSTR Location, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_ENDPREVIEW), helpstring("Called when print preview is closed.")] - HRESULT OnPrintPreviewExit(); - - [id(DSOF_DISPID_SAVECOMPLETE), helpstring("Called when save is successful.")] - HRESULT OnSaveCompleted([in] IDispatch* Document, [in] BSTR DocName, [in] BSTR FullFileLocation); - - }; - - [ - uuid(DSOFRAMERCTL_CLSID), - helpstring(DSOFRAMERCTL_SHORTNAME), control - ] - coclass FramerControl - { - [default] interface _FramerControl; - [default, source] dispinterface _DFramerCtlEvents; - }; - - - typedef enum dsoFrameHookPolicy - { - dsoNormalBehavior = 0, - dsoSetOnFirstOpen, - dsoResetNow, - dsoDisableHook = 0xFFFFFFFF - } dsoFrameHookPolicy; - - typedef enum dsoActivationPolicy - { - dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x01, - dsoCompDeactivateOnLostFocus = 0x02, - dsoIPDeactivateOnCompDeactive = 0x04 - } dsoActivationPolicy; - -}; - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.c b/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.c deleted file mode 100644 index 2de84f74..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.c +++ /dev/null @@ -1,88 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 6.00.0366 */ -/* at Tue Aug 25 13:23:33 2009 - */ -/* Compiler settings for .\Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_DSOFramer,0x00460180,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, IID__FramerControl,0x00460181,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, DIID__DFramerCtlEvents,0x00460185,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(CLSID, CLSID_FramerControl,0x00460182,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.h b/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.h deleted file mode 100644 index c58c2796..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.h +++ /dev/null @@ -1,1601 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 6.00.0366 */ -/* at Tue Aug 25 13:23:33 2009 - */ -/* Compiler settings for .\Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - - -#ifndef __dsoframerlib_h__ -#define __dsoframerlib_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef ___FramerControl_FWD_DEFINED__ -#define ___FramerControl_FWD_DEFINED__ -typedef interface _FramerControl _FramerControl; -#endif /* ___FramerControl_FWD_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_FWD_DEFINED__ -#define ___DFramerCtlEvents_FWD_DEFINED__ -typedef interface _DFramerCtlEvents _DFramerCtlEvents; -#endif /* ___DFramerCtlEvents_FWD_DEFINED__ */ - - -#ifndef __FramerControl_FWD_DEFINED__ -#define __FramerControl_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class FramerControl FramerControl; -#else -typedef struct FramerControl FramerControl; -#endif /* __cplusplus */ - -#endif /* __FramerControl_FWD_DEFINED__ */ - - -#ifdef __cplusplus -extern "C"{ -#endif - -void * __RPC_USER MIDL_user_allocate(size_t); -void __RPC_USER MIDL_user_free( void * ); - - -#ifndef __DSOFramer_LIBRARY_DEFINED__ -#define __DSOFramer_LIBRARY_DEFINED__ - -/* library DSOFramer */ -/* [control][lcid][version][helpstring][uuid] */ - -typedef -enum dsoBorderStyle - { dsoBorderNone = 0, - dsoBorderFlat = dsoBorderNone + 1, - dsoBorder3D = dsoBorderFlat + 1, - dsoBorder3DThin = dsoBorder3D + 1 - } dsoBorderStyle; - -typedef -enum dsoShowDialogType - { dsoDialogNew = 0, - dsoDialogOpen = dsoDialogNew + 1, - dsoDialogSave = dsoDialogOpen + 1, - dsoDialogSaveCopy = dsoDialogSave + 1, - dsoDialogPrint = dsoDialogSaveCopy + 1, - dsoDialogPageSetup = dsoDialogPrint + 1, - dsoDialogProperties = dsoDialogPageSetup + 1 - } dsoShowDialogType; - -typedef -enum dsoFileCommandType - { dsoFileNew = 0, - dsoFileOpen = dsoFileNew + 1, - dsoFileClose = dsoFileOpen + 1, - dsoFileSave = dsoFileClose + 1, - dsoFileSaveAs = dsoFileSave + 1, - dsoFilePrint = dsoFileSaveAs + 1, - dsoFilePageSetup = dsoFilePrint + 1, - dsoFileProperties = dsoFilePageSetup + 1, - dsoFilePrintPreview = dsoFileProperties + 1 - } dsoFileCommandType; - -typedef -enum dsoFrameHookPolicy - { dsoNormalBehavior = 0, - dsoSetOnFirstOpen = dsoNormalBehavior + 1, - dsoResetNow = dsoSetOnFirstOpen + 1, - dsoDisableHook = 0xffffffff - } dsoFrameHookPolicy; - -typedef -enum dsoActivationPolicy - { dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x1, - dsoCompDeactivateOnLostFocus = 0x2, - dsoIPDeactivateOnCompDeactive = 0x4 - } dsoActivationPolicy; - - -DEFINE_GUID(LIBID_DSOFramer,0x00460180,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#ifndef ___FramerControl_INTERFACE_DEFINED__ -#define ___FramerControl_INTERFACE_DEFINED__ - -/* interface _FramerControl */ -/* [object][oleautomation][dual][version][hidden][uuid] */ - - -DEFINE_GUID(IID__FramerControl,0x00460181,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460181-9E5E-11d5-B7C8-B8269041DD57") - _FramerControl : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveDocument( - /* [retval][out] */ IDispatch **ppdisp) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateNew( - /* [in] */ BSTR ProgIdOrTemplate) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE _PrintOutOld( - /* [optional][in] */ VARIANT PromptToSelectPrinter) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Titlebar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Titlebar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Toolbars( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Toolbars( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_ModalState( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_ModalState( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowDialog( - /* [in] */ dsoShowDialogType DlgType) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderStyle( - /* [in] */ dsoBorderStyle style) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderStyle( - /* [retval][out] */ dsoBorderStyle *pstyle) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BackColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BackColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ForeColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ForeColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarTextColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarTextColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecOleCommand( - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Menubar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Menubar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_HostName( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_HostName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentFullName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintOut( - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreview( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreviewExit( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsReadOnly( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsDirty( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LockServer( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_LockServer( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE GetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE SetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ActivationPolicy( - /* [in] */ enum dsoActivationPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ActivationPolicy( - /* [retval][out] */ enum dsoActivationPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FrameHookPolicy( - /* [in] */ enum dsoFrameHookPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_FrameHookPolicy( - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MenuAccelerators( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_MenuAccelerators( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_EventsEnabled( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_EventsEnabled( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentName( - /* [retval][out] */ BSTR *pbstr) = 0; - - }; - -#else /* C style interface */ - - typedef struct _FramerControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _FramerControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _FramerControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _FramerControl * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _FramerControl * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _FramerControl * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveDocument )( - _FramerControl * This, - /* [retval][out] */ IDispatch **ppdisp); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateNew )( - _FramerControl * This, - /* [in] */ BSTR ProgIdOrTemplate); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( - _FramerControl * This, - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( - _FramerControl * This, - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *_PrintOutOld )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptToSelectPrinter); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Close )( - _FramerControl * This); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Titlebar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Titlebar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Toolbars )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Toolbars )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ModalState )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModalState )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowDialog )( - _FramerControl * This, - /* [in] */ dsoShowDialogType DlgType); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderStyle )( - _FramerControl * This, - /* [in] */ dsoBorderStyle style); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderStyle )( - _FramerControl * This, - /* [retval][out] */ dsoBorderStyle *pstyle); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BackColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BackColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ForeColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ForeColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarTextColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarTextColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecOleCommand )( - _FramerControl * This, - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Menubar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Menubar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HostName )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentFullName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintOut )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreview )( - _FramerControl * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreviewExit )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsReadOnly )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDirty )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LockServer )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockServer )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActivationPolicy )( - _FramerControl * This, - /* [in] */ enum dsoActivationPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActivationPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoActivationPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FrameHookPolicy )( - _FramerControl * This, - /* [in] */ enum dsoFrameHookPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FrameHookPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MenuAccelerators )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MenuAccelerators )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EventsEnabled )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventsEnabled )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - END_INTERFACE - } _FramerControlVtbl; - - interface _FramerControl - { - CONST_VTBL struct _FramerControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _FramerControl_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define _FramerControl_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define _FramerControl_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define _FramerControl_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define _FramerControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define _FramerControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define _FramerControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define _FramerControl_Activate(This) \ - (This)->lpVtbl -> Activate(This) - -#define _FramerControl_get_ActiveDocument(This,ppdisp) \ - (This)->lpVtbl -> get_ActiveDocument(This,ppdisp) - -#define _FramerControl_CreateNew(This,ProgIdOrTemplate) \ - (This)->lpVtbl -> CreateNew(This,ProgIdOrTemplate) - -#define _FramerControl_Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) \ - (This)->lpVtbl -> Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) - -#define _FramerControl_Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) \ - (This)->lpVtbl -> Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) - -#define _FramerControl__PrintOutOld(This,PromptToSelectPrinter) \ - (This)->lpVtbl -> _PrintOutOld(This,PromptToSelectPrinter) - -#define _FramerControl_Close(This) \ - (This)->lpVtbl -> Close(This) - -#define _FramerControl_put_Caption(This,bstr) \ - (This)->lpVtbl -> put_Caption(This,bstr) - -#define _FramerControl_get_Caption(This,pbstr) \ - (This)->lpVtbl -> get_Caption(This,pbstr) - -#define _FramerControl_put_Titlebar(This,vbool) \ - (This)->lpVtbl -> put_Titlebar(This,vbool) - -#define _FramerControl_get_Titlebar(This,pbool) \ - (This)->lpVtbl -> get_Titlebar(This,pbool) - -#define _FramerControl_put_Toolbars(This,vbool) \ - (This)->lpVtbl -> put_Toolbars(This,vbool) - -#define _FramerControl_get_Toolbars(This,pbool) \ - (This)->lpVtbl -> get_Toolbars(This,pbool) - -#define _FramerControl_put_ModalState(This,vbool) \ - (This)->lpVtbl -> put_ModalState(This,vbool) - -#define _FramerControl_get_ModalState(This,pbool) \ - (This)->lpVtbl -> get_ModalState(This,pbool) - -#define _FramerControl_ShowDialog(This,DlgType) \ - (This)->lpVtbl -> ShowDialog(This,DlgType) - -#define _FramerControl_put_EnableFileCommand(This,Item,vbool) \ - (This)->lpVtbl -> put_EnableFileCommand(This,Item,vbool) - -#define _FramerControl_get_EnableFileCommand(This,Item,pbool) \ - (This)->lpVtbl -> get_EnableFileCommand(This,Item,pbool) - -#define _FramerControl_put_BorderStyle(This,style) \ - (This)->lpVtbl -> put_BorderStyle(This,style) - -#define _FramerControl_get_BorderStyle(This,pstyle) \ - (This)->lpVtbl -> get_BorderStyle(This,pstyle) - -#define _FramerControl_put_BorderColor(This,clr) \ - (This)->lpVtbl -> put_BorderColor(This,clr) - -#define _FramerControl_get_BorderColor(This,pclr) \ - (This)->lpVtbl -> get_BorderColor(This,pclr) - -#define _FramerControl_put_BackColor(This,clr) \ - (This)->lpVtbl -> put_BackColor(This,clr) - -#define _FramerControl_get_BackColor(This,pclr) \ - (This)->lpVtbl -> get_BackColor(This,pclr) - -#define _FramerControl_put_ForeColor(This,clr) \ - (This)->lpVtbl -> put_ForeColor(This,clr) - -#define _FramerControl_get_ForeColor(This,pclr) \ - (This)->lpVtbl -> get_ForeColor(This,pclr) - -#define _FramerControl_put_TitlebarColor(This,clr) \ - (This)->lpVtbl -> put_TitlebarColor(This,clr) - -#define _FramerControl_get_TitlebarColor(This,pclr) \ - (This)->lpVtbl -> get_TitlebarColor(This,pclr) - -#define _FramerControl_put_TitlebarTextColor(This,clr) \ - (This)->lpVtbl -> put_TitlebarTextColor(This,clr) - -#define _FramerControl_get_TitlebarTextColor(This,pclr) \ - (This)->lpVtbl -> get_TitlebarTextColor(This,pclr) - -#define _FramerControl_ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) \ - (This)->lpVtbl -> ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) - -#define _FramerControl_put_Menubar(This,vbool) \ - (This)->lpVtbl -> put_Menubar(This,vbool) - -#define _FramerControl_get_Menubar(This,pbool) \ - (This)->lpVtbl -> get_Menubar(This,pbool) - -#define _FramerControl_put_HostName(This,bstr) \ - (This)->lpVtbl -> put_HostName(This,bstr) - -#define _FramerControl_get_HostName(This,pbstr) \ - (This)->lpVtbl -> get_HostName(This,pbstr) - -#define _FramerControl_get_DocumentFullName(This,pbstr) \ - (This)->lpVtbl -> get_DocumentFullName(This,pbstr) - -#define _FramerControl_PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) \ - (This)->lpVtbl -> PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) - -#define _FramerControl_PrintPreview(This) \ - (This)->lpVtbl -> PrintPreview(This) - -#define _FramerControl_PrintPreviewExit(This) \ - (This)->lpVtbl -> PrintPreviewExit(This) - -#define _FramerControl_get_IsReadOnly(This,pbool) \ - (This)->lpVtbl -> get_IsReadOnly(This,pbool) - -#define _FramerControl_get_IsDirty(This,pbool) \ - (This)->lpVtbl -> get_IsDirty(This,pbool) - -#define _FramerControl_put_LockServer(This,vbool) \ - (This)->lpVtbl -> put_LockServer(This,vbool) - -#define _FramerControl_get_LockServer(This,pvbool) \ - (This)->lpVtbl -> get_LockServer(This,pvbool) - -#define _FramerControl_GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) \ - (This)->lpVtbl -> GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) - -#define _FramerControl_SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) \ - (This)->lpVtbl -> SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) - -#define _FramerControl_put_ActivationPolicy(This,lPolicy) \ - (This)->lpVtbl -> put_ActivationPolicy(This,lPolicy) - -#define _FramerControl_get_ActivationPolicy(This,plPolicy) \ - (This)->lpVtbl -> get_ActivationPolicy(This,plPolicy) - -#define _FramerControl_put_FrameHookPolicy(This,lPolicy) \ - (This)->lpVtbl -> put_FrameHookPolicy(This,lPolicy) - -#define _FramerControl_get_FrameHookPolicy(This,plPolicy) \ - (This)->lpVtbl -> get_FrameHookPolicy(This,plPolicy) - -#define _FramerControl_put_MenuAccelerators(This,vbool) \ - (This)->lpVtbl -> put_MenuAccelerators(This,vbool) - -#define _FramerControl_get_MenuAccelerators(This,pvbool) \ - (This)->lpVtbl -> get_MenuAccelerators(This,pvbool) - -#define _FramerControl_put_EventsEnabled(This,vbool) \ - (This)->lpVtbl -> put_EventsEnabled(This,vbool) - -#define _FramerControl_get_EventsEnabled(This,pvbool) \ - (This)->lpVtbl -> get_EventsEnabled(This,pvbool) - -#define _FramerControl_get_DocumentName(This,pbstr) \ - (This)->lpVtbl -> get_DocumentName(This,pbstr) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Activate_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_Activate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ActiveDocument_Proxy( - _FramerControl * This, - /* [retval][out] */ IDispatch **ppdisp); - - -void __RPC_STUB _FramerControl_get_ActiveDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_CreateNew_Proxy( - _FramerControl * This, - /* [in] */ BSTR ProgIdOrTemplate); - - -void __RPC_STUB _FramerControl_CreateNew_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Open_Proxy( - _FramerControl * This, - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - -void __RPC_STUB _FramerControl_Open_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Save_Proxy( - _FramerControl * This, - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - -void __RPC_STUB _FramerControl_Save_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [hidden][id] */ HRESULT STDMETHODCALLTYPE _FramerControl__PrintOutOld_Proxy( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptToSelectPrinter); - - -void __RPC_STUB _FramerControl__PrintOutOld_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Close_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_Close_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Caption_Proxy( - _FramerControl * This, - /* [in] */ BSTR bstr); - - -void __RPC_STUB _FramerControl_put_Caption_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Caption_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_Caption_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Titlebar_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_Titlebar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Titlebar_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_Titlebar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Toolbars_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_Toolbars_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Toolbars_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_Toolbars_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_ModalState_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_ModalState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ModalState_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_ModalState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_ShowDialog_Proxy( - _FramerControl * This, - /* [in] */ dsoShowDialogType DlgType); - - -void __RPC_STUB _FramerControl_ShowDialog_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_EnableFileCommand_Proxy( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_EnableFileCommand_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_EnableFileCommand_Proxy( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_EnableFileCommand_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_BorderStyle_Proxy( - _FramerControl * This, - /* [in] */ dsoBorderStyle style); - - -void __RPC_STUB _FramerControl_put_BorderStyle_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_BorderStyle_Proxy( - _FramerControl * This, - /* [retval][out] */ dsoBorderStyle *pstyle); - - -void __RPC_STUB _FramerControl_get_BorderStyle_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_BorderColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_BorderColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_BorderColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_BorderColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_BackColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_BackColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_BackColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_BackColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_ForeColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_ForeColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ForeColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_ForeColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_TitlebarColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_TitlebarColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_TitlebarColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_TitlebarColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_TitlebarTextColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_TitlebarTextColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_TitlebarTextColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_TitlebarTextColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_ExecOleCommand_Proxy( - _FramerControl * This, - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam); - - -void __RPC_STUB _FramerControl_ExecOleCommand_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Menubar_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_Menubar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Menubar_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_Menubar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_HostName_Proxy( - _FramerControl * This, - /* [in] */ BSTR bstr); - - -void __RPC_STUB _FramerControl_put_HostName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_HostName_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_HostName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_DocumentFullName_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_DocumentFullName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_PrintOut_Proxy( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile); - - -void __RPC_STUB _FramerControl_PrintOut_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_PrintPreview_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_PrintPreview_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_PrintPreviewExit_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_PrintPreviewExit_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_IsReadOnly_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_IsReadOnly_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_IsDirty_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_IsDirty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_LockServer_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_LockServer_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_LockServer_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - -void __RPC_STUB _FramerControl_get_LockServer_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_GetDataObjectContent_Proxy( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults); - - -void __RPC_STUB _FramerControl_GetDataObjectContent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_SetDataObjectContent_Proxy( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray); - - -void __RPC_STUB _FramerControl_SetDataObjectContent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_ActivationPolicy_Proxy( - _FramerControl * This, - /* [in] */ enum dsoActivationPolicy lPolicy); - - -void __RPC_STUB _FramerControl_put_ActivationPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ActivationPolicy_Proxy( - _FramerControl * This, - /* [retval][out] */ enum dsoActivationPolicy *plPolicy); - - -void __RPC_STUB _FramerControl_get_ActivationPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_FrameHookPolicy_Proxy( - _FramerControl * This, - /* [in] */ enum dsoFrameHookPolicy lPolicy); - - -void __RPC_STUB _FramerControl_put_FrameHookPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_FrameHookPolicy_Proxy( - _FramerControl * This, - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy); - - -void __RPC_STUB _FramerControl_get_FrameHookPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_MenuAccelerators_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_MenuAccelerators_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_MenuAccelerators_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - -void __RPC_STUB _FramerControl_get_MenuAccelerators_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_EventsEnabled_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_EventsEnabled_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_EventsEnabled_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - -void __RPC_STUB _FramerControl_get_EventsEnabled_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_DocumentName_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_DocumentName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* ___FramerControl_INTERFACE_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ -#define ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface _DFramerCtlEvents */ -/* [hidden][uuid] */ - - -DEFINE_GUID(DIID__DFramerCtlEvents,0x00460185,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460185-9E5E-11d5-B7C8-B8269041DD57") - _DFramerCtlEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct _DFramerCtlEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _DFramerCtlEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _DFramerCtlEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _DFramerCtlEvents * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _DFramerCtlEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _DFramerCtlEvents * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - END_INTERFACE - } _DFramerCtlEventsVtbl; - - interface _DFramerCtlEvents - { - CONST_VTBL struct _DFramerCtlEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _DFramerCtlEvents_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define _DFramerCtlEvents_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define _DFramerCtlEvents_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define _DFramerCtlEvents_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define _DFramerCtlEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define _DFramerCtlEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define _DFramerCtlEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ */ - - -DEFINE_GUID(CLSID_FramerControl,0x00460182,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#ifdef __cplusplus - -class DECLSPEC_UUID("00460182-9E5E-11d5-B7C8-B8269041DD57") -FramerControl; -#endif -#endif /* __DSOFramer_LIBRARY_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dso.ico b/PROMS/DSOFramer/DSOFramer/Source2005/Res/dso.ico deleted file mode 100644 index 4dc671e5..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dso.ico and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dsoframer.rc b/PROMS/DSOFramer/DSOFramer/Source2005/Res/dsoframer.rc deleted file mode 100644 index ef7828e4..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dsoframer.rc +++ /dev/null @@ -1,154 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" -#include "..\version.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// TYPELIB -// -#ifdef _DEBUG -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Debug\\dsoframer.tlb" -#else -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Release\\dsoframer.tlb" -#endif // _DEBUG - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,DSOFRAMERCTL_VERSION_BUILD,0 - PRODUCTVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", "UNSUPPORTED BY MICROSOFT\0" - VALUE "CompanyName", "Your Company\0" - VALUE "FileDescription", "Your Company's Office Framer Control Sample\0" - VALUE "FileVersion", DSOFRAMERCTL_VERSIONSTRFULL "\0" - VALUE "OriginalFilename", "dsoframer.ocx\0" - VALUE "ProductName", "DSOFRAMER\0" - VALUE "ProductVersion", DSOFRAMERCTL_VERSIONSTR "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_TOOLBOX BITMAP DISCARDABLE "toolbox.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SMALLOFFDOC ICON DISCARDABLE "dso.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - RES_DSO_E_UNKNOWN "An unknown problem has occurred." - RES_DSO_E_INVALIDPROGID "The ProgID/Template could not be found or is not associated with a COM server." - RES_DSO_E_INVALIDSERVER "The associated COM server does not support ActiveX Document embedding." - RES_DSO_E_COMMANDNOTSUPPORTED - "The command is not supported by the document server." - RES_DSO_E_DOCUMENTREADONLY - "Unable to perform action because document was opened in read-only mode." - RES_DSO_E_REQUIRESMSDAIPP - "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." - RES_DSO_E_DOCUMENTNOTOPEN "No document is open to perform the operation requested." - RES_DSO_E_INMODALSTATE "Cannot access document when in modal condition." - RES_DSO_E_NOTBEENSAVED "Cannot Save file without a file path." - RES_DSO_E_FRAMEHOOKFAILED "Unable to set frame hook for the parent window." -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/resource.h b/PROMS/DSOFramer/DSOFramer/Source2005/Res/resource.h deleted file mode 100644 index b9060358..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Res/resource.h +++ /dev/null @@ -1,39 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by dsoframer.rc -// -#define IDR_TYPELIB 1 -#define RES_DSO_E_UNKNOWN 1 -#define RES_DSO_E_INVALIDPROGID 2 -#define RES_DSO_E_INVALIDSERVER 3 -#define RES_DSO_E_COMMANDNOTSUPPORTED 4 -#define RES_DSO_E_DOCUMENTREADONLY 5 -#define RES_DSO_E_REQUIRESMSDAIPP 6 -#define RES_DSO_E_DOCUMENTNOTOPEN 7 -#define RES_DSO_E_INMODALSTATE 8 -#define RES_DSO_E_NOTBEENSAVED 9 -#define RES_DSO_E_FRAMEHOOKFAILED 10 -#define IDB_TOOLBOX 102 -#define IDB_TOOLBAR 103 -#define IDR_BINDMENU 104 -#define IDI_SMALLOFFDOC 105 -#define MNU_NEW 40001 -#define MNU_OPEN 40002 -#define MNU_CLOSE 40003 -#define MNU_SAVE 40004 -#define MNU_SAVEAS 40005 -#define MNU_PGSETUP 40006 -#define MNU_PRINT 40007 -#define MNU_PROPS 40008 -#define MNU_PRINTPV 40009 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 107 -#define _APS_NEXT_COMMAND_VALUE 40011 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/toolbox.bmp b/PROMS/DSOFramer/DSOFramer/Source2005/Res/toolbox.bmp deleted file mode 100644 index e0e7d4d3..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Res/toolbox.bmp and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/classfactory.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/classfactory.cpp deleted file mode 100644 index ad99d1a0..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/classfactory.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/*************************************************************************** - * CLASSFACTORY.CPP - * - * CDsoFramerClassFactory: The Class Factroy for the control. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory - IClassFactory Implementation -// -// This is a fairly simple CF. We don't provide support for licensing -// in this sample because it is just a sample. If licensing is important -// you should change the class to support IClassFactory2. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::QueryInterface -// -STDMETHODIMP CDsoFramerClassFactory::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoFramerClassFactory::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - if ((IID_IUnknown == riid) || (IID_IClassFactory == riid)) - { - SAFE_SET_INTERFACE(*ppv, (IClassFactory*)this); - return S_OK; - } - - *ppv = NULL; - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::AddRef -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::AddRef(void) -{ - TRACE1("CDsoFramerClassFactory::AddRef - %d\n", m_cRef+1); - return ++m_cRef; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::Release -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::Release(void) -{ - TRACE1("CDsoFramerClassFactory::Release - %d\n", m_cRef-1); - if (0 != --m_cRef) return m_cRef; - - ODS("CDsoFramerClassFactory delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete this; - return 0; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::CreateInstance -// -// Creates an instance of our control. -// -STDMETHODIMP CDsoFramerClassFactory::CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerControl* pocx; - IUnknown* pnkInternal; - - ODS("CDsoFramerClassFactory::CreateInstance\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); *ppv = NULL; - - // Aggregation requires you ask for (internal) IUnknown - if ((punk) && (riid != IID_IUnknown)) - return E_INVALIDARG; - - // Create a new instance of the control... - pocx = new CDsoFramerControl(punk); - CHECK_NULL_RETURN(pocx, E_OUTOFMEMORY); - - // Grab the internal IUnknown to use for the QI (you don't agg in CF:CreateInstance)... - pnkInternal = (IUnknown*)&(pocx->m_xInternalUnknown); - - // Initialize the control (windows, etc.) and QI for requested interface... - if (SUCCEEDED(hr = pocx->InitializeNewInstance()) && - SUCCEEDED(hr = pnkInternal->QueryInterface(riid, ppv))) - { - InterlockedIncrement((LPLONG)&v_cLocks); // on success, bump up the lock count... - } - else {delete pocx; *ppv = NULL;} // else cleanup the object - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::LockServer -// -// Keeps the server loaded in memory. -// -STDMETHODIMP CDsoFramerClassFactory::LockServer(BOOL fLock) -{ - TRACE1("CDsoFramerClassFactory::LockServer - %d\n", fLock); - if (fLock) InterlockedIncrement((LPLONG)&v_cLocks); - else InterlockedDecrement((LPLONG)&v_cLocks); - return S_OK; -} - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofauto.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofauto.cpp deleted file mode 100644 index a7268452..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofauto.cpp +++ /dev/null @@ -1,1321 +0,0 @@ -/*************************************************************************** - * DSOFAUTO.CPP - * - * CDsoFramerControl: Automation interface for Binder Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - _FramerControl Implementation -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Activate -// -// Activate the current embedded document (i.e, forward focus). -// -STDMETHODIMP CDsoFramerControl::Activate() -{ - HRESULT hr; - ODS("CDsoFramerControl::Activate\n"); - - if (m_fInControlActivate) - return S_FALSE; - - // Don't allow recursion of this function or we could get stuck in - // loop trying to constantly grab focus. - m_fInControlActivate = TRUE; - - // All we need to do is grab focus. This will tell the host to - // UI activate our OCX, set focus to our window, and set this control - // as the active component with the hook manager. - hr = UIActivate(TRUE); - - // Invalidate windows to update painting... - if (SUCCEEDED(hr)) - InvalidateAllChildWindows(m_hwnd); - - m_fInControlActivate = FALSE; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_ActiveDocument -// -// Returns the automation object currently embedded. -// -// Since we only support a single instance at a time, it might have been -// better to call this property Object or simply Document, but VB reserves -// the first name for use by the control extender, and IE reserves the second -// in its extender, so we decided on the "Office sounding" name. ;-) -// -STDMETHODIMP CDsoFramerControl::get_ActiveDocument(IDispatch** ppdisp) -{ - HRESULT hr = DSO_E_DOCUMENTNOTOPEN; - IUnknown* punk; - - ODS("CDsoFramerControl::get_ActiveDocument\n"); - CHECK_NULL_RETURN(ppdisp, E_POINTER); *ppdisp = NULL; - - // Get IDispatch from open document object. - if ((m_pDocObjFrame) && (punk = (IUnknown*)(m_pDocObjFrame->GetActiveObject()))) - { - // Cannot access object if in print preview.. - if (m_pDocObjFrame->InPrintPreview()) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Ask ip active object for IDispatch interface. If it is not supported on - // active object interface, try to get it from OLE object iface... - if (FAILED(hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp)) && - (punk = (IUnknown*)(m_pDocObjFrame->GetOleObject()))) - { - hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp); - } - ASSERT(SUCCEEDED(hr)); - } - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ExecOleCommand -// -// Allows caller to pass commands to embedded object via IOleCommandTarget and -// gives access to a few extra commands to extend functionality for certain object -// types (not all objects may support all commands). -// -STDMETHODIMP CDsoFramerControl::ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr = E_INVALIDARG; - DWORD dwOptions = (DWORD)LONG_FROM_VARIANT(Options, 0); - - TRACE1("CDsoFramerControl::DoOleCommand(%d)\n", OLECMDID); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Handle some custom commands that don't need doc open to call... - switch (OLECMDID) - { - case OLECMDID_RESETFRAMEHOOK: - { - LONG lhwnd = (DWORD)LONG_FROM_VARIANT(*vInParam, 0); - return ResetFrameHook((HWND)lhwnd); - } - case OLECMDID_LOCKSERVER: - if (BOOL_FROM_VARIANT(Options, TRUE) == FALSE) - return put_LockServer(VARIANT_FALSE); - } - - // The rest require a doc object loaded first... - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - switch (OLECMDID) - { - case OLECMDID_GETDATAFORMAT: - // If requesting special data get... - hr = m_pDocObjFrame->HrGetDataFromObject(vInParam, vInOutParam); - break; - - case OLECMDID_SETDATAFORMAT: - // If requesting special data set... - hr = m_pDocObjFrame->HrSetDataInObject(vInParam, vInOutParam, BOOL_FROM_VARIANT(Options, TRUE)); - break; - - case OLECMDID_LOCKSERVER: // optional lock on server... - if (BOOL_FROM_VARIANT(Options, FALSE)) - hr = put_LockServer(VARIANT_TRUE); - break; - - case OLECMDID_NOTIFYACTIVE: - if (vInParam) // Force notify server that it should be active... - { - m_pDocObjFrame->OnNotifyAppActivate(BOOL_FROM_VARIANT(*vInParam, FALSE), 0); - hr = S_OK; - } - break; - - default: - // Do normal IOleCommandTarget call on object... - - // If options was not passed as long, but as bool, we expect the caller meant to - // specify if user should be prompted or not, so update the options to allow the - // assuption to still work as expected (this is for compatibility)... - if ((dwOptions == 0) && ((DsoPVarFromPVarRef(&Options)->vt & 0xFF) == VT_BOOL)) - dwOptions = (BOOL_FROM_VARIANT(Options, FALSE) ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT); - - // Ask object server to do the command... - hr = m_pDocObjFrame->DoOleCommand(OLECMDID, dwOptions, vInParam, vInOutParam); - } - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::CreateNew -// -// Creates a new document object based on the passed in ProgID or Template. -// ProgID should map to the "document" object, such as "Word.Document", -// "Excel.Sheet", "PowerPoint.Slide", etc. A Template name should be full -// path to the file, whether local, UNC, or HTTP path. No relative paths. -// -STDMETHODIMP CDsoFramerControl::CreateNew(BSTR ProgIdOrTemplate) -{ - HRESULT hr; - CLSID clsid; - HCURSOR hCur; - IStorage *pstgTemplate = NULL; - LPWSTR pwszTempFile = NULL; - - TRACE1("CDsoFramerControl::CreateNew(%S)\n", ProgIdOrTemplate); - - // Check the string to make sure a valid item is passed... - if (!(ProgIdOrTemplate) || (SysStringLen(ProgIdOrTemplate) < 4)) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Make sure any open document is closed first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - if (!(m_pDocObjFrame)) return E_OUTOFMEMORY; - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // If the string passed looks like a URL, it is a web template. We need - // to download it to temp location and use for new object... - if (LooksLikeHTTP(ProgIdOrTemplate) && - GetTempPathForURLDownload(ProgIdOrTemplate, &pwszTempFile)) - { - // Ask URLMON to download the file... - if (FAILED(hr = URLDownloadFile(NULL, ProgIdOrTemplate, pwszTempFile))) - { - DsoMemFree(pwszTempFile); pwszTempFile = NULL; - goto error_out; - } - - // If that worked, switch out the name of the template to local file... - ProgIdOrTemplate = SysAllocString(pwszTempFile); - } - - // If the string is path to file, then it must be a template. It must be - // a storage file with CLSID associated with it, like any Office templates - // (.dot,.xlt,.pot,.vst,etc.), and path must be fully qualified... - if (LooksLikeUNC(ProgIdOrTemplate) || LooksLikeLocalFile(ProgIdOrTemplate)) - { - if ((hr = StgIsStorageFile(ProgIdOrTemplate)) != S_OK) - { - hr = (FAILED(hr) ? hr : STG_E_NOTFILEBASEDSTORAGE); - goto error_out; - } - - // Open the template for read access only... - hr = StgOpenStorage(ProgIdOrTemplate, NULL, - (STGM_READ | STGM_SHARE_DENY_WRITE | STGM_TRANSACTED), - NULL, 0, &pstgTemplate); - GOTO_ON_FAILURE(hr, error_out); - - // We get the CLSID from the template... - hr = ReadClassStg(pstgTemplate, &clsid); - if (FAILED(hr) || (clsid == GUID_NULL)) - { - hr = (FAILED(hr) ? hr : STG_E_OLDFORMAT); - goto error_out; - } - // Otherwise the string passed is assumed a ProgID... - } - else if (FAILED(CLSIDFromProgID(ProgIdOrTemplate, &clsid))) - { - hr = DSO_E_INVALIDPROGID; - goto error_out; - } - - // If we are here, we must have a valid CLSID for the object... - ASSERT(clsid != GUID_NULL); - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) {hr = DSO_E_FRAMEHOOKFAILED; goto error_out;} - } - - SEH_TRY - - // If we are loading a template, init the storage before the create... - if (pstgTemplate) - { - hr = m_pDocObjFrame->CreateDocObject(pstgTemplate); - } - else - { - // Create a new doc object and IP activate... - hr = m_pDocObjFrame->CreateDocObject(clsid); - } - - // If the call worked, we can activate it... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { -error_out: - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = NULL; - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - - SAFE_RELEASE_INTERFACE(pstgTemplate); - - // Delete the temp file used in the URL download (if any)... - if (pwszTempFile) - { - FPerformShellOp(FO_DELETE, pwszTempFile, NULL); - DsoMemFree(pwszTempFile); - SysFreeString(ProgIdOrTemplate); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Open -// -// Creates a document object based on a file or URL. This simulates an -// "open", but preserves the correct OLE embedding activation required -// by ActiveX Documents. Opening directly from a file is not recommended. -// We keep a lock on the original file (unless opened read-only) so the -// user cannot tell we don't have the file "open". -// -// The alternate ProgID allows us to open a file that is not associated -// with an DocObject server (like *.asp) with the server specified. Also -// the username/password are for web access (if Document is a URL). -// -STDMETHODIMP CDsoFramerControl::Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword) -{ - HRESULT hr; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(Document); - LPWSTR pwszAltProgId = LPWSTR_FROM_VARIANT(ProgId); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOpenReadOnly = BOOL_FROM_VARIANT(ReadOnly, FALSE); - CLSID clsidAlt = GUID_NULL; - HCURSOR hCur; - IUnknown* punk = NULL; - - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, 0, 10000}; - - TRACE1("CDsoFramerControl::Open(%S)\n", pwszDocument); - - // We must have either a string (file path or URL) or an object to open from... - if (!(pwszDocument) || (*pwszDocument == L'\0')) - { - if (!(pwszDocument) && ((punk = PUNK_FROM_VARIANT(Document)) == NULL)) - return E_INVALIDARG; - } - - // If the user passed the ProgId, find the alternative CLSID for server... - if ((pwszAltProgId) && FAILED(CLSIDFromProgID(pwszAltProgId, &clsidAlt))) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // OK. If here, all the parameters look good and it is time to try and open - // the document object. Start by closing any existing document first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - if (!(m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite))) - return E_OUTOFMEMORY; - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // Setup the bind options based on read-only flag.... - bopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | (fOpenReadOnly ? STGM_READ : STGM_READWRITE)); - - SEH_TRY - - // Normally user gives a string that is path to file... - if (pwszDocument) - { - // Check if we are opening from a URL, and load that way... - if (LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromURL(pwszDocument, clsidAlt, &bopts, pwszUserName, pwszPassword); - } - // Otherwise, check if it is a local file and open that... - else if (FFileExists(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromFile(pwszDocument, clsidAlt, &bopts); - } - else hr = E_INVALIDARG; - } - else if (punk) - { - // If we have an object to load from, try loading it direct... - hr = m_pDocObjFrame->CreateFromRunningObject(punk, NULL, &bopts); - } - else hr = E_UNEXPECTED; // Unhandled load type?? - - // If successful, we can activate the object... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Save -// -// Saves the current object. The optional SaveAs paramter lets the same -// function act as a SaveAs method. -// -STDMETHODIMP CDsoFramerControl::Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword) -{ - HCURSOR hCur; - HRESULT hr = S_FALSE; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(SaveAsDocument); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOverwrite = BOOL_FROM_VARIANT(OverwriteExisting, FALSE); - - TRACE1("CDsoFramerControl::Save(%S)\n", pwszDocument); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If user passed a value for SaveAs, it must be a valid string... - if (!(PARAM_IS_MISSING(&SaveAsDocument)) && - ((pwszDocument == NULL) || (*pwszDocument == L'\0'))) - return E_INVALIDARG; - - // Raise the BeforeDocumentSaved event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - RaiseAutomationEvent(DSOF_DISPID_BDOCSAVE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - - // Setting Cancel param will abort the save... - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - } - - // Now do the save... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Determine if they want to save to a URL... - if ((pwszDocument) && LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->SaveToURL(pwszDocument, fOverwrite, pwszUserName, pwszPassword); - } - else if (pwszDocument) - { - // Save to file (local or UNC)... - hr = m_pDocObjFrame->SaveToFile(pwszDocument, fOverwrite); - } - else - { - // Save back to open location... - hr = m_pDocObjFrame->Save(); - } - - SEH_EXCEPT(hr) - - // If save was successful... - if (SUCCEEDED(hr)) - { - // Raise the SaveComplete event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceDocName()); - rgargs[0].vt = VT_BSTR; rgargs[0].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceName()); - RaiseAutomationEvent(DSOF_DISPID_SAVECOMPLETE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - } - - // Redraw the caption as needed... - RedrawCaption(); - } - - SetCursor(hCur); - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Close -// -// Closes the current object. -// -STDMETHODIMP CDsoFramerControl::Close() -{ - ODS("CDsoFramerControl::Close\n"); - - CDsoDocObject* pdframe = m_pDocObjFrame; - if (pdframe) - { - // Fire the BeforeDocumentClosed event to give host chance to cancel... - VARIANT rgargs[2]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[1].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[1].pdispVal)); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - // Setting Cancel param should abort the close... - RaiseAutomationEvent(DSOF_DISPID_BDOCCLOSE, 2, rgargs); - VariantClear(&rgargs[1]); - - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - - // If not canceled, clear the member variable then call close on doc frame... - m_pDocObjFrame = NULL; - - SEH_TRY - pdframe->Close(); - SEH_EXCEPT_NULL - delete pdframe; - - // Notify host that item is now closed... - RaiseAutomationEvent(DSOF_DISPID_DOCCLOSE, 0, NULL); - } - - // Redraw the caption as needed... - RedrawCaption(); - EnableDropFile(TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Caption/get_Caption) -// -// Allows you to set a custom cation for the titlebar. -// -STDMETHODIMP CDsoFramerControl::put_Caption(BSTR bstr) -{ - // Free exsiting caption (if any) and save new one (always dirties control)... - SAFE_FREEBSTR(m_bstrCustomCaption); - - // Set the new one (if provided)... - if ((bstr) && (SysStringLen(bstr) > 0)) - m_bstrCustomCaption = SysAllocString(bstr); - - ViewChanged(); - m_fDirty = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Caption(BSTR* pbstr) -{ - if (pbstr) *pbstr = (m_bstrCustomCaption ? - SysAllocString(m_bstrCustomCaption) : - SysAllocString(L"Office Framer Control")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Titlebar/get_Titlebar) -// -// True/False. Should we display the titlebar or not? -// -STDMETHODIMP CDsoFramerControl::put_Titlebar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Titlebar(%d)\n", vbool); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowTitlebar != (WORD)(BOOL)vbool) - { - m_fShowTitlebar = (BOOL)vbool; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Titlebar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Titlebar\n"); - if (pbool) *pbool = (m_fShowTitlebar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Toolbars/get_Toolbars) -// -// True/False. Should we display toolbars or not? -// -STDMETHODIMP CDsoFramerControl::put_Toolbars(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Toolbars(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle toolbars... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowToolbars != (WORD)(BOOL)vbool) - { - m_fShowToolbars = (BOOL)vbool; - m_fDirty = TRUE; - - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyChangeToolState(m_fShowToolbars); - - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Toolbars(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Toolbars\n"); - if (pbool) *pbool = (m_fShowToolbars ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_ModalState/get_ModalState) -// -// True/False. Disables the active object (if any) thereby setting it -// up to behave "modal". Any time a dialog or other blocking window -// on the same thread is called, the developer should set this to True -// to let the IP object know it should stay modal in the background. -// Set it back to False when the dialog is removed. -// -// Technically, this should be a counter to allow for nested modal states. -// However, we thought that might be confusing to some VB/Web developers -// and since this is only a sample, made it a Boolean property. -// -STDMETHODIMP CDsoFramerControl::put_ModalState(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_ModalState(%d)\n", vbool); - - // you can't force modal state change unless active... - if ((m_fNoInteractive) || (!m_fComponentActive)) - return ProvideErrorInfo(E_ACCESSDENIED); - - if (m_fModalState != (WORD)(BOOL)vbool) - UpdateModalState((vbool != VARIANT_FALSE), TRUE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ModalState(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_ModalState\n"); - if (pbool) *pbool = ((m_fModalState) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ShowDialog -// -// Uses IOleCommandTarget to get the embedded object to display one of -// these standard dialogs for the user. -// -STDMETHODIMP CDsoFramerControl::ShowDialog(dsoShowDialogType DlgType) -{ - HRESULT hr = E_ACCESSDENIED; - - TRACE1("CDsoFramerControl::ShowDialog(%d)\n", DlgType); - if ((DlgType < dsoFileNew) || (DlgType > dsoDialogProperties)) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // The first three dialog types we handle... - if (DlgType < dsoDialogSaveCopy) - { - hr = DoDialogAction(DlgType); - } - // The others are provided by the server via IOleCommandTarget... - else if (m_pDocObjFrame) - { - DWORD dwOleCmd; - switch (DlgType) - { - case dsoDialogSaveCopy: dwOleCmd = OLECMDID_SAVECOPYAS; break; - case dsoDialogPageSetup: dwOleCmd = OLECMDID_PAGESETUP; break; - case dsoDialogProperties: dwOleCmd = OLECMDID_PROPERTIES; break; - default: dwOleCmd = OLECMDID_PRINT; - } - hr = m_pDocObjFrame->DoOleCommand(dwOleCmd, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - return ProvideErrorInfo(hr); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_EnableFileCommand/get_EnableFileCommand) -// -// True/False. This allows the developer to disable certain menu/toolbar -// items that are considered "file-level" -- New, Save, Print, etc. -// -// We use the Item parameter to set a bit flag which is used when -// displaying the menu to enable/disable the item. The OnFileCommand -// event will not fire for disabled commands. -// -STDMETHODIMP CDsoFramerControl::put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool) -{ - TRACE2("CDsoFramerControl::put_EnableFileCommand(%d, %d)\n", Item, vbool); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - // You cannot access menu when in a modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // We keep bit flags for menu state. Just set the bit and a update - // the embedded object as needed. User will see change next time menu is shown... - UINT code = (1 << Item); - if (vbool == 0) m_wFileMenuFlags &= ~(code); - else m_wFileMenuFlags |= code; - - if (m_pDocObjFrame) // This should update toolbar icon (if server supports it) - m_pDocObjFrame->DoOleCommand(OLECMDID_UPDATECOMMANDS, 0, NULL, NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool) -{ - TRACE1("CDsoFramerControl::get_EnableFileCommand(%d)\n", Item); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - UINT code = (1 << Item); - if (pbool) *pbool = ((m_wFileMenuFlags & code) ? VARIANT_TRUE : VARIANT_FALSE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_BorderStyle/get_BorderStyle) -// -// Change the border style for the control. -// -STDMETHODIMP CDsoFramerControl::put_BorderStyle(dsoBorderStyle style) -{ - ODS("CDsoFramerControl::put_BorderStyle\n"); - - if ((style < dsoBorderNone) || (style > dsoBorder3DThin)) - return E_INVALIDARG; - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fBorderStyle != (DWORD)style) - { - m_fBorderStyle = style; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderStyle(dsoBorderStyle* pstyle) -{ - ODS("CDsoFramerControl::get_BorderStyle\n"); - if (pstyle) *pstyle = (dsoBorderStyle)m_fBorderStyle; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// Control Color Properties... -// -// -STDMETHODIMP CDsoFramerControl::put_BorderColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BorderColor\n"); - if (m_clrBorderColor != clr) - { - m_clrBorderColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBorderColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_BackColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BackColor\n"); - if (m_clrBackColor != clr) - { - m_clrBackColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BackColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBackColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_ForeColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_ForeColor\n"); - if (m_clrForeColor != clr) - { - m_clrForeColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ForeColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrForeColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_TitlebarColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarColor\n"); - if (m_clrTBarColor != clr) - { - m_clrTBarColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarColor; return S_OK;} - - -STDMETHODIMP CDsoFramerControl::put_TitlebarTextColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarTextColor\n"); - if (m_clrTBarTextColor != clr) - { - m_clrTBarTextColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarTextColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarTextColor; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Menubar/get_Menubar) -// -// True/False. Should we display menu bar? -// -STDMETHODIMP CDsoFramerControl::put_Menubar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Menubar(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle menu bar... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowMenuBar != (WORD)(BOOL)vbool) - { - m_fShowMenuBar = (BOOL)vbool; - m_fDirty = TRUE; - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Menubar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Menubar\n"); - if (pbool) *pbool = (m_fShowMenuBar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_HostName/get_HostName) -// -// String setting used for host application name (used in embedding) -// -STDMETHODIMP CDsoFramerControl::put_HostName(BSTR bstr) -{ - TRACE1("CDsoFramerControl::put_HostName(%S)\n", bstr); - SAFE_FREESTRING(m_pwszHostName); - - if ((bstr) && (SysStringLen(bstr) > 0)) - m_pwszHostName = DsoCopyString(bstr); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_HostName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_HostName\n"); - if (pbstr) - *pbstr = SysAllocString((m_pwszHostName ? m_pwszHostName : L"DsoFramerControl")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentFullName -// -// Gets FullName of embedded source file (where default save will save to). -// -STDMETHODIMP CDsoFramerControl::get_DocumentFullName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentFullName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentName -// -// Gets just the file name of embedded source file. -// -STDMETHODIMP CDsoFramerControl::get_DocumentName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source doc name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceDocName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsReadOnly -// -// Returns if file open read-only. -// -STDMETHODIMP CDsoFramerControl::get_IsReadOnly(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsReadOnly\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsReadOnly() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsDirty -// -// Returns TRUE if doc object says it has changes. -// -STDMETHODIMP CDsoFramerControl::get_IsDirty(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsDirty\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsDirty() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::LockServer -// -// Allows host to temporarily lock the current document server running, -// so that when closing and reopening files using the same server doesn't -// suffer startup/shutdown penelty of the server going away between calls. -// -STDMETHODIMP CDsoFramerControl::put_LockServer(VARIANT_BOOL vbool) -{ - BOOL fLock = (vbool != VARIANT_FALSE); - TRACE1("CDsoFramerControl::put_LockServer(%d)\n", (DWORD)vbool); - - // We must have a server open to set a lock... - if ((fLock) && (m_pDocObjFrame == NULL)) - return ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN); - - return SetTempServerLock(fLock); -} - -STDMETHODIMP CDsoFramerControl::get_LockServer(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_LockServer\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (VARIANT_BOOL)((m_pServerLock) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to get data from document in clipboard format but without -// using the clipboard (instead it uses IDataObject). The server has to -// support the request format to return the data. Data is returned as byte array. -// -// NOTE: This only gets the document body content, not the entire document. If -// you want the entire document, use the Save method with temp filename to save to. -// -STDMETHODIMP CDsoFramerControl::GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults) -{ - ODS("CDsoFramerControl::GetDataObjectContent()\n"); - CHECK_NULL_RETURN(pvResults, E_POINTER); VariantInit(pvResults); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrGetDataFromObject(&ClipFormatNameOrNumber, pvResults); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to set data into the document body (similar to a paste, but -// without using the clipboard). You must supply the format name or number and -// the data in a byte array format. -// -STDMETHODIMP CDsoFramerControl::SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray) -{ - ODS("CDsoFramerControl::SetDataObjectContent()\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrSetDataInObject(&ClipFormatNameOrNumber, &DataByteArray, TRUE); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_ActivationPolicy -// -// Allows caller to set policy for how activation changes affect the embedded -// object. This is actually a bit flag, so user can OR settings. -// -STDMETHODIMP CDsoFramerControl::put_ActivationPolicy(dsoActivationPolicy lPolicy) -{ - TRACE1("CDsoFramerControl::put_ActivationPolicy(%d)\n", lPolicy); - if (m_pDocObjFrame) return E_ACCESSDENIED; - - if ((lPolicy < dsoDefaultBehavior) || (lPolicy > 0x0F)) - return E_INVALIDARG; - - m_lActivationPolicy = lPolicy; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ActivationPolicy(dsoActivationPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoActivationPolicy)m_lActivationPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_FrameHookPolicy -// -// Allows caller to set policy for the frame hook. -// -STDMETHODIMP CDsoFramerControl::put_FrameHookPolicy(dsoFrameHookPolicy lPolicy) -{ - HRESULT hr = E_ACCESSDENIED; - TRACE1("CDsoFramerControl::put_FrameHookPolicy(%d)\n", lPolicy); - - switch (lPolicy) - { - case dsoDisableHook: - if (m_pHookManager) break; - // else fallthrough... - - case dsoNormalBehavior: - case dsoSetOnFirstOpen: - m_lHookPolicy = lPolicy; hr = S_OK; - break; - - case dsoResetNow: - if (!FRunningInDesignMode()) - hr = ResetFrameHook(0); - break; - - default: - hr = E_INVALIDARG; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoFrameHookPolicy)m_lHookPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_MenuAccelerators -// -// Sets flag to determine if control should try to handle keys for menu -// shortcuts when the menus are displayed. -// -STDMETHODIMP CDsoFramerControl::put_MenuAccelerators(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_MenuAccelerators\n"); - m_fDisableMenuAccel = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_MenuAccelerators(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_MenuAccelerators\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fDisableMenuAccel ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_EventsEnabled -// -// Sets flag to determine if events are frozen or not. -// -STDMETHODIMP CDsoFramerControl::put_EventsEnabled(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_EventsEnabled\n"); - m_fFreezeEvents = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EventsEnabled(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_EventsEnabled\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fFreezeEvents ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - IDispatch Implementation -// - -//////////////////////////////////////////////////////////////////////// -// Control's IDispatch Functions -// -// These are largely standard and just forward calls to the functions -// above. The only interesting thing here is the "hack" in Invoke to -// tell VB/IE that the control is always "Enabled". -// -STDMETHODIMP CDsoFramerControl::GetTypeInfoCount(UINT* pctinfo) -{if (pctinfo) *pctinfo = 1; return S_OK;} - -STDMETHODIMP CDsoFramerControl::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) -{ - HRESULT hr = S_OK; - - ODS("CDsoFramerControl::GetTypeInfo\n"); - CHECK_NULL_RETURN(ppTInfo, E_POINTER); *ppTInfo = NULL; - - // We only support default interface late bound... - CHECK_NULL_RETURN((iTInfo == 0), DISP_E_BADINDEX); - - // Load the type lib if we don't have the information already. - if (NULL == m_ptiDispType) - { - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, - v_hModule, IID__FramerControl, &m_ptiDispType); - } - - // Return interface with ref count (if we have it, otherwise error)... - SAFE_SET_INTERFACE(*ppTInfo, m_ptiDispType); - return hr; -} - -STDMETHODIMP CDsoFramerControl::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) -{ - HRESULT hr; - ITypeInfo *pti; - - ODS("CDsoFramerControl::GetIDsOfNames\n"); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Ask OLE to translate the name... - hr = pti->GetIDsOfNames(rgszNames, cNames, rgDispId); - pti->Release(); - return hr; -} - -STDMETHODIMP CDsoFramerControl::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) -{ - HRESULT hr; - ITypeInfo *pti;; - - // VB loves to check for this property (Enabled) during design time. - // We don't implement it for this control, but we'll return TRUE to - // to let it know if is enabled and don't bother with call to ITypeInfo... - if ((dispIdMember == DISPID_ENABLED) && (wFlags & DISPATCH_PROPERTYGET)) - { - if (pVarResult) // We are always enabled... - {pVarResult->vt = VT_BOOL; pVarResult->boolVal = VARIANT_TRUE; } - return S_OK; - } - - TRACE1("CDsoFramerControl::Invoke(dispid = %d)\n", dispIdMember); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Store pExcepInfo (to fill-in disp excepinfo if error occurs)... - m_pDispExcep = pExcepInfo; - - // Call the method using TypeInfo (OLE will call v-table method for us)... - hr = pti->Invoke((PVOID)this, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - - m_pDispExcep = NULL; // Don't need this anymore... - pti->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ProvideErrorInfo -// -// Fills in custom error information (as needed). -// -STDMETHODIMP CDsoFramerControl::ProvideErrorInfo(HRESULT hres) -{ - // Don't need to do anything on success... - if ((hres == S_OK) || SUCCEEDED(hres)) - return hres; - - // Fill in the error information as needed... - return DsoReportError(hres, NULL, m_pDispExcep); -} diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofcontrol.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofcontrol.cpp deleted file mode 100644 index 17bd4094..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofcontrol.cpp +++ /dev/null @@ -1,4313 +0,0 @@ -/*************************************************************************** - * DSOFCONTROL.CPP - * - * CDsoFramerControl: The Base Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - The Main Control Class -// -// Serves as a base for the ActiveX Document site object which will do -// the actual embedding. -// -CDsoFramerControl::CDsoFramerControl(LPUNKNOWN punk) -{ - ODS("CDsoFramerControl::CDsoFramerControl\n"); - m_pOuterUnknown = ((punk) ? punk : (IUnknown*)&m_xInternalUnknown); -} - -CDsoFramerControl::~CDsoFramerControl(void) -{ - ODS("CDsoFramerControl::~CDsoFramerControl\n"); - - SAFE_RELEASE_INTERFACE(m_ptiDispType); - SAFE_RELEASE_INTERFACE(m_pClientSite); - SAFE_RELEASE_INTERFACE(m_pControlSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(m_pInPlaceUIWindow); - SAFE_RELEASE_INTERFACE(m_pViewAdviseSink); - SAFE_RELEASE_INTERFACE(m_pOleAdviseHolder); - SAFE_RELEASE_INTERFACE(m_pDataAdviseHolder); - SAFE_RELEASE_INTERFACE(m_dispEvents); - SAFE_RELEASE_INTERFACE(m_pOleStorage); - SAFE_FREESTRING(m_pwszHostName); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InitializeNewInstance -// -// Sets up the inital state for the control. Any other member variable -// not set here will be NULL/FALSE thanks to zero-init in MemAlloc. -// -STDMETHODIMP CDsoFramerControl::InitializeNewInstance() -{ - m_clrBorderColor = 0x80000010; // System Button Shadow Color - m_clrBackColor = 0x80000005; // System Window Background Color - m_clrForeColor = 0x80000008; // System Window Text Color - m_clrTBarColor = 0x8000000D; // System Highlight Color - m_clrTBarTextColor = 0x8000000E; // System Highlight Text Color - m_fBorderStyle = dsoBorderFlat; - m_fShowTitlebar = TRUE; - m_fShowToolbars = TRUE; - m_fShowMenuBar = TRUE; - m_wFileMenuFlags = 0xFFFF; // All items are "enabled" by default - m_Size.cx = 240; - m_Size.cy = 240; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InPlaceActivate -// -// Does all the work in-place activating and/or ui activating the -// control when asked to do so. Sets up the main control window, the -// needed interfaces, and (if not in design) subclasses the main top-level -// window we can monitor messages that must be forwarded to an ip active -// DocObject when we have one loaded. -// -STDMETHODIMP CDsoFramerControl::InPlaceActivate(LONG lVerb) -{ - HRESULT hr; - SIZEL sizel; - - TRACE1("CDsoFramerControl::InPlaceActivate - %d\n", lVerb); - - // if we don't have a client site, then there's not much to do. - if (!m_pClientSite) return S_OK; - - // get an InPlace site pointer. - if (NULL == m_pInPlaceSite) - { - hr = m_pClientSite->QueryInterface(IID_IOleInPlaceSite, (void **)&m_pInPlaceSite); - RETURN_ON_FAILURE(hr); - } - - // if we're not already active, go and do it. - if (!m_fInPlaceActive) - { - OLEINPLACEFRAMEINFO InPlaceFrameInfo; - RECT rcPos, rcClip; - - hr = m_pInPlaceSite->CanInPlaceActivate(); - if (hr != S_OK){ if (!FAILED(hr)) hr = E_FAIL; goto cleanup;} - - // if we are here, then we have permission to go in-place active. - // now, announce our intentions to actually go ahead and do this. - hr = m_pInPlaceSite->OnInPlaceActivate(); - GOTO_ON_FAILURE(hr, cleanup); - - // if we're here, we're ready to go in-place active. we just need - // to set up some flags, and then create the window [if we have one] - m_fInPlaceActive = TRUE; - - // we need to get some information about our location in the parent - // window, as well as some information about the parent - hr = m_pInPlaceSite->GetWindow(&m_hwndParent); - if (FAILED(hr) || !IsWindow(m_hwndParent)) - { - hr = OLE_E_INVALIDHWND; - goto cleanup; - } - - InPlaceFrameInfo.cb = sizeof(OLEINPLACEFRAMEINFO); - hr = m_pInPlaceSite->GetWindowContext(&m_pInPlaceFrame, &m_pInPlaceUIWindow, &rcPos, &rcClip, &InPlaceFrameInfo); - GOTO_ON_FAILURE(hr, cleanup); - - // make sure we'll display ourselves in the correct location with the correct size - sizel.cx = rcPos.right - rcPos.left; - sizel.cy = rcPos.bottom - rcPos.top; - m_Size = sizel; - - m_xOleInplaceObject.SetObjectRects(&rcPos, &rcClip); - - // finally, create our window if we have to! - if (NULL == m_hwnd) - { - WNDCLASS wndclass; - - EnterCriticalSection(&v_csecThreadSynch); - - // if class info has not yet been registered, need to do that now... - if (GetClassInfo(v_hModule, "DSOFramerOCXWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoFramerControl::ControlWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerOCXWnd"; - RegisterClass(&wndclass); - } - - // create the window with the extent size and position... - m_hwnd = CreateWindowEx(0, "DSOFramerOCXWnd", NULL, - WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE, - rcPos.left, rcPos.top, m_Size.cx, m_Size.cy, - m_hwndParent, NULL, v_hModule, NULL); - - if (m_hwnd) SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - LeaveCriticalSection(&v_csecThreadSynch); - - if (!m_hwnd) {hr = E_FAIL; goto cleanup;} - } - - // finally, tell the host of this - m_pClientSite->ShowObject(); - } - - // if we're not inplace visible yet, do so now. - if (!m_fInPlaceVisible) - SetInPlaceVisible(TRUE); - - - // if we were asked to UIActivate, and we currently are not, do so! - if ((lVerb == OLEIVERB_PRIMARY || - lVerb == OLEIVERB_UIACTIVATE) && (!m_fUIActive)) - { - // It is not typical to UI activate ocx during design mode, but if it happens and host - // has not customized the hook policy, let's switch to delay set so that we don't - // accidently hook the VS/VB IDE designer window. - if (FRunningInDesignMode() && (m_lHookPolicy == 0)) - m_lHookPolicy = dsoSetOnFirstOpen; - - // if we don't have it already, hook top-level parent window when we go - // ui active; this is needed to track WM_ACTIVATEAPP and other critical messages - // needed by ole docobjs.... - if ((m_pHookManager == NULL) && FUseFrameHook() && !FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) - { - ODS(" ** UIActivate FAILED (DSO_E_FRAMEHOOKFAILED)\n"); - return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - } - - // Now UI activate the control for the host. This implies taking focus and - // setting up the control as the current active object... - hr = UIActivate(FALSE); - - } - - // Setup drop file support (but only when there is no current embedding)... - if (m_pDocObjFrame == NULL) - EnableDropFile(TRUE); - - return S_OK; // be-de-be-de-be-de that's all folks! - -cleanup: - // something catastrophic happened [or, at least something bad]. - // die a horrible fiery mangled painful death... - TRACE1(" *** InPlaceActivate FAILED (hr=0x%X) ***\n", hr); - m_fInPlaceActive = FALSE; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UIActivate -// -// Make sure our control is UI Active and set as ActiveObject for host. -// -STDMETHODIMP CDsoFramerControl::UIActivate(BOOL fForceUIActive) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::UIActivate(fForceUIActive=%d)\n", fForceUIActive); - - // We can't do anything if we aren't inplace active and visible! - if (!(m_fInPlaceActive) || !(m_fInPlaceVisible)) - return E_UNEXPECTED; - - // If we are not already UI active or are being asked to force it, do the call - if ((!(m_fUIActive) || (fForceUIActive)) && (m_pInPlaceSite)) - { - m_fUIActive = TRUE; - - // inform the container of our intent - hr = m_pInPlaceSite->OnUIActivate(); - - if (SUCCEEDED(hr) || (fForceUIActive)) - { - // take the focus [which is what UI Activation is all about !] - SetFocus(m_hwnd); - - // set ourselves up in the host. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - // we have to explicitly say we don't wany any border space. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetBorderSpace(NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetBorderSpace(NULL); - - // Ensure docobj component state is active as well... - if (!m_fComponentActive) - { - // Tell manager we are the active component now... - if (m_pHookManager) m_pHookManager->SetActiveComponent(m_hwnd); - else OnComponentActivationChange(TRUE); - } - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetInPlaceVisible -// -// Make sure our control is visible or not (does not actually take ui -// focus, that should be done in InPlaceActivate). -// -STDMETHODIMP_(void) CDsoFramerControl::SetInPlaceVisible(BOOL fShow) -{ - BOOL fVisible; - m_fInPlaceVisible = fShow; - - // don't do anything if we don't have a window. otherwise, set it - if (m_hwnd) - { - fVisible = IsWindowVisible(m_hwnd); - - if (fVisible && !fShow) - ShowWindow(m_hwnd, SW_HIDE); - else if (!fVisible && fShow) - ShowWindow(m_hwnd, SW_SHOWNA); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDraw -// -// Drawing is largely limited to border and titlebar, except when in -// design mode. We don't do any background painting to avoid paint problems -// when we have an ui active DocObject. It should do any painting for us. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - COLORREF clrBackground, clrForeground, clrBorder, clrT; - HBRUSH hbshBackground, hbshBorder; - HFONT hfontText, hfontOld; - HPALETTE hpal, hpalOld; - LOGFONT lfText = {-11,0,0,0,FW_NORMAL,0,0,0,0,0,0,0,FF_SWISS, "Tahoma"}; - RECT rc, rcT; - int iTxtMode, iMapMode; - - // Copy out the bounding rect... - CopyRect(&rc, prcBounds); - - // On 256 color systems, we may need a palette... - if ((GetDeviceCaps(hdcDraw, RASTERCAPS) & RC_PALETTE) && - ((GetDeviceCaps(hdcDraw, BITSPIXEL) * GetDeviceCaps(hdcDraw, PLANES)) == 8)) - { - hpal = CreateHalftonePalette(hdcDraw); - hpalOld = SelectPalette(hdcDraw, hpal, TRUE); - RealizePalette(hdcDraw); - } - else hpal = NULL; - - // Translate the OLE_COLOR values to a matching COLORREF in palette... - OleTranslateColor(m_clrBackColor, hpal, &clrBackground); - OleTranslateColor(m_clrForeColor, hpal, &clrForeground); - OleTranslateColor(m_clrBorderColor, hpal, &clrBorder); - - // Create the resources we need for drawing and setting up the DC... - hbshBackground = CreateSolidBrush(clrBackground); - hbshBorder = CreateSolidBrush(clrBorder); - - hfontText = CreateFontIndirect(&lfText); - hfontOld = (HFONT)SelectObject(hdcDraw, hfontText); - iTxtMode = SetBkMode(hdcDraw, TRANSPARENT); - iMapMode = SetMapMode(hdcDraw, MM_TEXT); - - // Based on the choosen border style, draw the border and deflate the - // drawing rect accordingly... - switch (m_fBorderStyle) - { - case 1: - { - HBRUSH hbT = GetSysColorBrush(COLOR_BTNFACE); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbT); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - } - break; - - case 2: - DrawEdge(hdcDraw, &rc, EDGE_SUNKEN, BF_RECT); - InflateRect(&rc, -2, -2); - break; - - case 3: - DrawEdge(hdcDraw, &rc, BDR_SUNKENOUTER, BF_RECT); - InflateRect(&rc, -1, -1); - break; - - //default: no border... - } - - // Draw the titlebar if visible... - if (m_fShowTitlebar) - { - COLORREF clrTitlebar, clrTitlebarText; - HBRUSH hbshTitlebar, hbshT; - LPWSTR pwszDCaption = NULL; - LPWSTR pwszROCaption = NULL; - LPWSTR pwszCaption = ((m_bstrCustomCaption) ? - m_bstrCustomCaption : L"KB311765: Office Framer Control Sample"); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - - OleTranslateColor(m_clrTBarColor, hpal, &clrTitlebar); - OleTranslateColor(m_clrTBarTextColor, hpal, &clrTitlebarText); - - hbshTitlebar = CreateSolidBrush(clrTitlebar); - FillRect(hdcDraw, &rcT, hbshTitlebar); - - DrawIconEx(hdcDraw, rcT.left+2, rcT.top+2, v_icoOffDocIcon, 16, 16, 0, NULL, DI_NORMAL); - - clrT = SetTextColor(hdcDraw, clrTitlebarText); - rcT.left += 22; - - // If we have an embedded object, check to see if it is an open doc and - // append the name to the titlebar. Also append "Read-Only" string if file - // was open in read-only mode. - if (m_pDocObjFrame) - { - if ((pwszDCaption = (LPWSTR)m_pDocObjFrame->GetSourceDocName()) != NULL) - { - LPCWSTR pwszCat[2] = {L" - ", pwszDCaption}; - pwszDCaption = DsoCopyStringCatEx(pwszCaption, 2, pwszCat); - pwszCaption = pwszDCaption; - } - - if (m_pDocObjFrame->IsReadOnly()) - { - pwszROCaption = DsoCopyStringCat(pwszCaption, L" (Read-Only)"); - pwszCaption = pwszROCaption; - } - } - - // Draw out the custom titlebar caption in Unicode if on NT/XP OS, since - // a custom caption may have non-ANSI characters... - FDrawText(hdcDraw, pwszCaption, &rcT, DT_VCENTER|DT_SINGLELINE); - - // Cleanup temp strings... - if (pwszROCaption) DsoMemFree(pwszROCaption); - if (pwszDCaption) DsoMemFree(pwszDCaption); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - rcT.top = rcT.bottom - 1; - - hbshT = GetSysColorBrush(COLOR_BTNSHADOW); - FillRect(hdcDraw, &rcT, hbshT); - - SetTextColor(hdcDraw, clrT); - DeleteObject(hbshTitlebar); - } - - // Draw menu bar if visible... - if (m_fShowMenuBar) - { - GetSizeRectForMenuBar(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - - // When in design mode, we just draw placeholder... - if (FRunningInDesignMode()) - { - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Menu Bar", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - else - { - HMENU hCurMenu; - CHAR szbuf[DSO_MAX_MENUNAME_LENGTH]; - UINT i, yTop, yBottom, xLast, xNext; - SIZE ptMItem; RECT rcMDraw; - BOOL fSelected; - DWORD dwDTFlags = (DT_SINGLELINE | DT_VCENTER); - - // Get the current menu and setup to draw the number of items in it... - if (hCurMenu = GetActivePopupMenu()) - { - yTop = rcT.top + 3; yBottom = rcT.bottom - 3; xLast = rcT.left + 2; - if (hCurMenu == m_hmenuFilePopup) - { m_cMenuItems = 1; } - else - { - if ((m_cMenuItems = (USHORT)GetMenuItemCount(hCurMenu)) > DSO_MAX_MENUITEMS) - m_cMenuItems = DSO_MAX_MENUITEMS; - } - - // If we are on an OS that supports it, hide the prefix when we are not UI active - // or if the host has disabled menu accelerators for this instance... - if (v_fWindows2KPlus && (!(m_fUIActive) || (m_fDisableMenuAccel))) - dwDTFlags |= DT_HIDEPREFIX; - - // For each item in the menu, get the menu name and draw it to the - // menu bar. We need to calculate the size taken by the font used and - // store the information in an array used by mouse move handler to - // determine which menu item the user is over... - for (i = 0; i < m_cMenuItems; i++) - { - szbuf[0] = '\0'; - if (i == 0) lstrcpy(szbuf, "&File"); - else GetMenuString(hCurMenu, i, szbuf, DSO_MAX_MENUNAME_LENGTH, MF_BYPOSITION); - - GetTextExtentPoint32(hdcDraw, szbuf, lstrlen(szbuf), &ptMItem); - xNext = (xLast + ptMItem.cx + 2); - if (xNext > (UINT)(rcT.right)){ m_cMenuItems = (USHORT)i; break; } - SetRect(&rcMDraw, xLast, yTop, xNext, yBottom); - - if (fOptimize) - CopyRect(&m_rgrcMenuItems[i], &rcMDraw); - - // If user is over this particular item, we draw it as selected... - fSelected = ((m_wSelMenuItem) && (i == (UINT)(m_wSelMenuItem - 1))); - if (fSelected) - { - FillRect(hdcDraw, &rcMDraw, GetSysColorBrush(COLOR_HIGHLIGHT)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_HIGHLIGHTTEXT)); - } - rcMDraw.left += 4; - DrawText(hdcDraw, szbuf, lstrlen(szbuf), &rcMDraw, dwDTFlags); - - if (fSelected) - SetTextColor(hdcDraw, clrT); - - xLast = xNext + 2; - } - } - } - rcT.top = rcT.bottom - 1; // Draw a line to separate menu from workspace... - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNSHADOW)); - } - - - // Fill in the background (but only if there is no active object)... - if (!m_pDocObjFrame) - { - GetSizeRectForDocument(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, hbshBackground); - - // When in design mode, we do a little extra stuff to help the - // developer visualize some of the control settings (toolbars, - // foreground color, etc.)... - if (FRunningInDesignMode()) - { - if (m_fShowToolbars) - { - rcT.bottom = rcT.top + 25; - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Toolbar Space", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - - GetSizeRectForDocument(prcBounds, &rcT); - rcT.top = rcT.top + 25; - } - - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "ActiveX Document Object", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } - else if ((m_pDocObjFrame) && (!m_fAppActive || !m_fComponentActive) && (FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange())) - { - // In the case we have more than one component, and this component is - // has an object but is not ui active we draw a bitmap representation - // of the obect to fill the area. This gives the user a sense the object - // is there but in background, and can click to reactivate... - GetSizeRectForDocument(prcBounds, &rcT); - - if (m_hbmDeactive) - { - HDC hdcT = CreateCompatibleDC(hdcDraw); - HBITMAP bmpOld = (HBITMAP)SelectObject(hdcT, m_hbmDeactive); - BITMAP bm; - - if (GetObject(m_hbmDeactive, sizeof(BITMAP), &bm)) - { - StretchBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), - hdcT, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY); - } - else - { - BitBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), hdcT, 0,0, SRCCOPY); - } - - SelectObject(hdcT, bmpOld); - DeleteDC(hdcT); - } - else if (!m_fInDocumentLoad) - { - FillRect(hdcDraw, &rcT, hbshBackground); - rcT.top = ((rc.bottom - rc.top) / 2); - clrT = SetTextColor(hdcDraw, clrForeground); - DrawText(hdcDraw, "Unable to display inactive document. Click here to reactivate the object.", -1, &rcT, DT_WORDBREAK | DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } // else The docobj draws the rest... - - // Cleanup the hDC as required... - DeleteObject(hbshBackground); - DeleteObject(hbshBorder); - - SelectObject(hdcDraw, hfontOld); - DeleteObject(hfontText); - - if (hpal) - { - SelectPalette(hdcDraw, hpalOld, TRUE); - DeleteObject(hpal); - } - - SetBkMode(hdcDraw, iTxtMode); - SetMapMode(hdcDraw, iMapMode); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDestroyWindow -// -// When the window closes make sure the object closes and release the -// subclass we have on the parent's top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDestroyWindow() -{ - ODS("CDsoFramerControl::OnDestroyWindow\n"); - - if (m_pDocObjFrame) - Close(); - - if (m_pHookManager) - { - m_pHookManager->DetachComponent(m_hwnd); - m_pHookManager = NULL; - } - - m_hwnd = NULL; - - if (m_pServerLock) - SetTempServerLock(FALSE); - - if (m_hbmDeactive) - { - DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - - if (m_hmenuFilePopup) - { - DestroyMenu(m_hmenuFilePopup); - m_hmenuFilePopup = NULL; - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnResize -// -// Resize the window and notify the doc site. -// -STDMETHODIMP_(void) CDsoFramerControl::OnResize() -{ - RECT rcPlace; - ODS("CDsoFramerControl::OnResize\n"); - if (m_pDocObjFrame) - { - if (FChangeObjActiveOnFocusChange() && (!m_fUIActive)) - UIActivate(FALSE); - - GetSizeRectForDocument(NULL, &rcPlace); - m_pDocObjFrame->OnNotifySizeChange(&rcPlace); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMouseMove -// -// We watch for mouse movement on menu bar (when visible). -// -STDMETHODIMP_(void) CDsoFramerControl::OnMouseMove(UINT x, UINT y) -{ - // TRACE2("CDsoFramerControl::OnMouseMove(%d, %d)\n", x, y); - // TRACE3(" fAppActive=%d, fUIActive=%d, fCompActive=%d\n", m_fAppActive, m_fUIActive, m_fComponentActive); - // TRACE2(" fModalState=%d, fNoInteractive=%d\n", m_fModalState, m_fNoInteractive); - - // When we are in mouse move, watch for menu selection. Only need to - // do this if bar is visible and we are not in modal state... - if ((m_fShowMenuBar) && (m_fComponentActive) && (m_fUIActive) && (m_fAppActive) && - (!m_fModalState) && (!m_fNoInteractive)) - { - UINT item; - POINT pt; pt.x = x; pt.y = y; - - // If we already have item selected, check to see if we are still - // over it. If so, we can exit now. If not, we sould unselect it. - if (m_wSelMenuItem) - { - item = m_wSelMenuItem - 1; - if (PtInRect(&m_rgrcMenuItems[item], pt)) - return; - - ReleaseCapture(); m_wSelMenuItem = 0; - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - } - - // Now loop through the menu items and see if mouse is over them. - // If it is, we set a mouse capture and draw item as selected... - for (item = 0; item < m_cMenuItems; item++) - { - if (PtInRect(&m_rgrcMenuItems[item], pt)) - { - SetCapture(m_hwnd); - m_wSelMenuItem = (USHORT)(item + 1); - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - break; - } - } - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnButtonDown -// -// We watch for mouse button down events when the titlebar is visible -// so we can drop down our popup menu if the user clicks around the -// area of the file icon. This is our workaround for menu merging. -// -STDMETHODIMP_(void) CDsoFramerControl::OnButtonDown(UINT x, UINT y) -{ - HMENU hCurMenu = NULL; - RECT rc; - - // Don't do anything if we are in modal state... - if (m_fModalState) return; - - // We don't handle commands when m_fNoInteractive is set, except for the - // condition where we are in print preview and want to display custom menu - // item to end the preview. Office apps have toolbar button to do this, but - // we will provide this option just in case user needs it to exit preview mode... - if (m_fNoInteractive) - { - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // Create a temp popup menu. We do this on fly to save resources since - // this is only needed in rare cases... - if ((m_fShowTitlebar) && ((x < 22) && (y < 22))) - { - hCurMenu = CreatePopupMenu(); - if (hCurMenu) - { - // Add the command to the menu... - AppendMenu(hCurMenu, MF_STRING, MNU_PRINTPV, "E&xit Preview"); - // Display the menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - // Cleanup... - DestroyMenu(hCurMenu); - hCurMenu = NULL; - } - } - } - - // Otherwise we do nothing when m_fNoInteractive == TRUE. - return; - } - - // We know we must be app active if user clicked on control... - if (!m_fAppActive) m_fAppActive = TRUE; - - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // If the caption is showing, we are not modal, and user clicked in the - // area around the office doc icon, show the popup menu... - if ((m_fShowTitlebar) && (!m_fShowMenuBar) && ((x < 22) && (y < 22))) - { - // This will get the File menu or the merged menu based on current state... - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) - { - // We'll place it right below the titlebar just like sys menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - } - } - else if ((m_fShowMenuBar) && (m_wSelMenuItem)) - { - POINT pt; - UINT item = m_wSelMenuItem - 1; - - // If we are over a visible menu bar item, find the right popup - // menu for the item using the selitem as an index... - if (item == 0) - { hCurMenu = m_hmenuFilePopup; } - else - { - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) hCurMenu = GetSubMenu(hCurMenu, item); - } - - // Map the location to display the popup into screen points... - pt.x = m_rgrcMenuItems[item].left; - pt.y = m_rgrcMenuItems[item].bottom; - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&pt, 1); - - HWND hwndCurFocus = GetFocus(); - m_fInFocusChange = TRUE; - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(m_hwnd); - - // Display the menu... - TrackPopupMenu(hCurMenu, 0, pt.x, pt.y, 0, m_hwnd, NULL); - - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(hwndCurFocus); - m_fInFocusChange = FALSE; - - // When user clicks off, we will resolve the mouse location to - // our control coordinates and call mousemove to free/reset selection... - if (GetCursorPos(&pt)) - { - RECT rcMenu; GetSizeRectForMenuBar(NULL, &rcMenu); - MapWindowPoints(HWND_DESKTOP, m_hwnd, (POINT*)&pt, 1); - if (!PtInRect(&rcMenu, pt)) {pt.x = 0; pt.y = 0;} - } - else {pt.x = 0; pt.y = 0;} - OnMouseMove(pt.x, pt.y); - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMenuMessage -// -// We should get these messages when we are displaying the popup menu. -// The "File" menu is ours, but the popup may have other menus copied -// from the merged menu set by the ui active docobject, so we need to -// forward those messages (as needed) to the right window handler. -// -// In addition, code is added to enable/disable File menu items based -// on flags set by developer in EnableFileCommand, and/or call the -// correct function if one of those commands was selected by user. -// -STDMETHODIMP_(void) CDsoFramerControl::OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam) -{ - HMENU hmenu, hmenuMerged = NULL; - BOOL fAlwaysSendMessage = FALSE; - HWND hwndObjectMenu = NULL; - - if (m_pDocObjFrame) - { - hwndObjectMenu = m_pDocObjFrame->GetMenuHWND(); - hmenuMerged = m_pDocObjFrame->GetMergedMenu(); - } - - switch (msg) - { - case WM_INITMENU: m_fObjectMenu = FALSE; //fall through... - case WM_ENTERIDLE: fAlwaysSendMessage = TRUE; - break; - - case WM_MENUSELECT: - if ((lParam == 0) && (HIWORD(wParam) == 0xFFFF)) - fAlwaysSendMessage = TRUE; - break; - - case WM_INITMENUPOPUP: - hmenu = (HMENU)wParam; - m_fObjectMenu = ((hmenu != m_hmenuFilePopup) && (hmenu != hmenuMerged)); - - if ((!m_fObjectMenu) && (hmenu == m_hmenuFilePopup)) - { - EnableMenuItem(hmenu, MNU_NEW, MF_BYCOMMAND | ((m_wFileMenuFlags & 1) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_OPEN, MF_BYCOMMAND | ((m_wFileMenuFlags & 2) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_CLOSE, MF_BYCOMMAND | (((m_wFileMenuFlags & 4) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVE, MF_BYCOMMAND | (((m_wFileMenuFlags & 8) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVEAS, MF_BYCOMMAND | (((m_wFileMenuFlags & 16) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PGSETUP, MF_BYCOMMAND | (((m_wFileMenuFlags & 64) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINTPV, MF_BYCOMMAND | (((m_wFileMenuFlags & 256) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINT, MF_BYCOMMAND | (((m_wFileMenuFlags & 32) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PROPS, MF_BYCOMMAND | (((m_wFileMenuFlags & 128) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - } - break; - - case WM_COMMAND: - // We handle one special case for print preview exit, but otherwise - // we need to either forward to the merged menu handler (if enabled), - // or handle command through an asynchronous callback... - if ((m_fNoInteractive) && (LOWORD(wParam) == MNU_PRINTPV)) - { - PrintPreviewExit(); - } - else if ((m_fObjectMenu) && (hwndObjectMenu)) - { - PostMessage(hwndObjectMenu, msg, wParam, lParam); - } - else - { - DWORD dwCmd = 0; - switch ((int)LOWORD(wParam)) - { - case MNU_NEW: dwCmd = OLECMDID_NEW; break; - case MNU_OPEN: dwCmd = OLECMDID_OPEN; break; - case MNU_SAVE: dwCmd = OLECMDID_SAVE; break; - case MNU_SAVEAS: dwCmd = OLECMDID_SAVEAS; break; - case MNU_PGSETUP: dwCmd = OLECMDID_PAGESETUP; break; - case MNU_PRINT: dwCmd = OLECMDID_PRINT; break; - case MNU_PROPS: dwCmd = OLECMDID_PROPERTIES; break; - case MNU_PRINTPV: dwCmd = OLECMDID_PRINTPREVIEW; break; - } - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, dwCmd, 0); - } - - return; // we just return - } - - if ((hwndObjectMenu) && ((m_fObjectMenu) || (fAlwaysSendMessage))) - SendMessage(hwndObjectMenu, msg, wParam, lParam); - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnToolbarAction -// -// Does an associated OLECMDID action and raises the OnFileCommand event -// for developer to override as needed. The name comes from the fact that -// most Office servers will call this (via IOleCommandTarget) when user -// clicks on a toolbar button for file-command item. It also serves for -// our menu commands to keep the code consistant. Both menu and toolbar -// call this method asynchronously (via PostMessage) to avoid blocking the -// remote docobject server. -// -STDMETHODIMP_(void) CDsoFramerControl::OnToolbarAction(DWORD cmd) -{ - ODS("CDsoFramerControl::OnToolbarAction\n"); - HRESULT hr = S_OK; - VARIANT_BOOL wCancelAction = VARIANT_FALSE; - VARIANT rgargs[2]; - VARIANT vtT = {0}; - - // We don't reenter if in a modal state already... - if (m_fModalState) return; - - // If not interactive, we cannot run command... - if (m_fNoInteractive) - { - // unless we are in preview, in which case we can force exit - // and then run command after preview completes... - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - PrintPreviewExit(); - if (cmd != OLECMDID_PRINTPREVIEW) - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, cmd, 0); - } - return; - } - - // We will do a default action by default, but give developer a chance - // to override in OnFileCommand event... - rgargs[0].vt = VT_BOOL|VT_BYREF; - rgargs[0].pboolVal = &wCancelAction; - - // Map the OLECMDID to one of our values... - rgargs[1].vt = VT_I4; - switch (cmd) - { - case OLECMDID_NEW: rgargs[1].lVal = dsoFileNew; break; - case OLECMDID_OPEN: rgargs[1].lVal = dsoFileOpen; break; - case OLECMDID_SAVE: rgargs[1].lVal = dsoFileSave; break; - case OLECMDID_SAVEAS: rgargs[1].lVal = dsoFileSaveAs; break; - case OLECMDID_PRINT: rgargs[1].lVal = dsoFilePrint; break; - case OLECMDID_PAGESETUP: rgargs[1].lVal = dsoFilePageSetup; break; - case OLECMDID_PROPERTIES: rgargs[1].lVal = dsoFileProperties; break; - case OLECMDID_PRINTPREVIEW: rgargs[1].lVal = dsoFilePrintPreview; break; - default: rgargs[1].lVal = dsoFileClose; - } - - // Only do action if item is enabled... - if ((1 << rgargs[1].lVal) & m_wFileMenuFlags) - { - // Let control developer handle the event first... - hr = RaiseAutomationEvent(DSOF_DISPID_FILECMD, 2, rgargs); - TRACE1("Disp event returned 0x%X \n", hr); - - // If the event was canceled (or event handler threw an - // unhandled error from user code), bail out now... - if ((wCancelAction) || (hr == DISP_E_EXCEPTION)) - return; - - // Do the action based on the event... - switch (rgargs[1].lVal) - { - case dsoFileClose: hr = Close(); break; - case dsoFilePrint: hr = ShowDialog(dsoDialogPrint); break; - case dsoFilePageSetup: hr = ShowDialog(dsoDialogPageSetup); break; - case dsoFileProperties: hr = ShowDialog(dsoDialogProperties); break; - case dsoFilePrintPreview: hr = PrintPreview(); break; - - case dsoFileSave: - hr = Save(vtT, vtT, vtT, vtT); - if ((hr != DSO_E_DOCUMENTREADONLY) && - (hr != DSO_E_NOTBEENSAVED)) - break; // fall through to SaveAs if file is read-only or never been saved... - - default: - hr = DoDialogAction( - (rgargs[1].lVal == dsoFileNew) ? dsoDialogNew : - (rgargs[1].lVal == dsoFileOpen) ? dsoDialogOpen : dsoDialogSave); - } - - // Display error information to user if we failed... - if (FAILED(hr) && (hr != E_ABORT)) - FAlertUser(hr, NULL); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FAlertUser -// -// Display an error alert to the user based on failed HRESULT. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FAlertUser(HRESULT hr, LPWSTR pwsFileName) -{ - LPSTR pszError = NULL; - LPSTR pszTitle = NULL; - DWORD dwFlags = MB_ICONINFORMATION|MB_SETFOREGROUND; - - switch (hr) - { - case STG_E_ACCESSDENIED: - case STG_E_SHAREVIOLATION: - case STG_E_LOCKVIOLATION: - case MK_E_CANTOPENFILE: - case E_ACCESSDENIED: - pszError = "Unable to Open/Save the file selected due to security permissions or a share violation."; - pszTitle = "Access Denied"; - break; - - case DSO_E_DOCUMENTNOTOPEN: - pszError = "The operation could not be performed because no document is currently open."; - pszTitle = "Unable to Perform Command"; - break; - - case DSO_E_DOCUMENTREADONLY: - pszError = "The operation could not be performed because the document was opened read-only."; - pszTitle = "Unable to Update Document"; - break; - - case CO_E_MSI_ERROR: - case DSO_E_INVALIDSERVER: - case DSO_E_INVALIDPROGID: - case STG_E_NOTFILEBASEDSTORAGE: - pszError = "There is no ActiveX Document server currently registered or installed for the item selected. " - "It cannot be loaded into the control."; - pszTitle = "Unable to Insert Document"; - break; - - case DSO_E_INMODALSTATE: - MessageBeep(0); - return FALSE; // Unable to alert user if in a modal condition! - - case DSO_E_COMMANDNOTSUPPORTED: - pszError = "This operation could not be performed because the document server " - "does not support the command, or it is disabled when embedded."; - pszTitle = "Command Not Supported"; - break; - - case STG_E_TOOMANYOPENFILES: - pszError = "You can only open one document at a time. Please choose a single file to open."; - pszTitle = "Command Not Supported"; - break; - - case DSO_E_REQUIRESMSDAIPP: - pszError = "You cannot open/save to a web folder unless MDAC 2.5 is installed. The operation cannot be performed."; - pszTitle = "Unable to Gain Write Access for URL"; - break; - - default: - pszError = "The program encountered an error trying to perform the command. " - "If the problem persists, contact the program vendor for a possible solution."; - pszTitle = "Command Error"; - dwFlags = MB_ICONHAND|MB_SETFOREGROUND; - } - - MessageBox(m_hwnd, pszError, pszTitle, dwFlags); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::EnableDropFile -// -// Decide when to allow file drop for open. -// -STDMETHODIMP_(void) CDsoFramerControl::EnableDropFile(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::EnableDropFile(%d)\n", fEnable); - DragAcceptFiles(m_hwnd, fEnable); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDropFile -// -// Open file dropped by user on the control. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDropFile(HDROP hdrpFile) -{ - DWORD cbItems; - CHAR szFileDrop[MAX_PATH]; - VARIANT vtFile; - - ODS("CDsoFramerControl::OnDropFile()\n"); - cbItems = DragQueryFile(hdrpFile, 0xFFFFFFFF, NULL, 0); - if (cbItems == 0) - return; - - if (cbItems > 1) - { - FAlertUser(STG_E_TOOMANYOPENFILES, NULL); - return; - } - - szFileDrop[0] = 0; - vtFile.vt = VT_BSTR; - - if (DragQueryFile(hdrpFile, 0, szFileDrop, MAX_PATH) && - (vtFile.bstrVal = DsoConvertToBSTR(szFileDrop))) - { - HRESULT hr; - VARIANT vtMissing; - vtMissing.vt = VT_ERROR; - vtMissing.scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vtFile, vtMissing, vtMissing, vtMissing, vtMissing); - if (FAILED(hr)) FAlertUser(hr, vtFile.bstrVal); - - VariantClear(&vtFile); - } - - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnTimer -// -// Timer event fired. -// -STDMETHODIMP_(void) CDsoFramerControl::OnTimer(UINT id) -{ - // TRACE1("CDsoFramerControl::OnTimer(%d)\n", id); - switch (id) - { - case SYNCPAINT_TIMER_ID: - { - DWORD dwTick = GetTickCount(); - if ((dwTick - m_uiSyncPaint) > 300) - { - ODS("CDsoFramerControl::OnSyncPaint() Invalidate\n"); - KillTimer(m_hwnd, SYNCPAINT_TIMER_ID); - m_fSyncPaintTimer = FALSE; - InvalidateAllChildWindows(m_hwnd); - } - } - break; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSyncPaint -// -// Notifies redraw is needed b/c of external window movement. -// -STDMETHODIMP_(void) CDsoFramerControl::OnSyncPaint() -{ - // ODS("CDsoFramerControl::OnSyncPaint()\n"); - m_uiSyncPaint = GetTickCount(); - if ((!m_fSyncPaintTimer) && (!m_fAppActive)) - { - SetTimer(m_hwnd, SYNCPAINT_TIMER_ID, 50, NULL); - m_fSyncPaintTimer = TRUE; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnForegroundCompChange -// -// Shows/Hide embedding when window goes foreground/background active. -// -STDMETHODIMP_(void) CDsoFramerControl::OnForegroundCompChange(BOOL fCompActive) -{ - ODS("CDsoFramerControl::OnForegroundCompChange\n"); - if (m_pDocObjFrame) - { - HWND hwndEmbed = m_pDocObjFrame->GetDocWindow(); - - if (fCompActive) - { - // Make sure embed window is visible when active... - if (!IsWindowVisible(hwndEmbed)) - ShowWindow(hwndEmbed, SW_SHOW); - - if (m_hbmDeactive) DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - else if ((FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange()) && (m_hbmDeactive == NULL)) - { - // The default behavior on app deactive is to grap bitmap of active object before - // telling it we lost app activation. This allows us to draw the last state of the - // object while it is deactive. There is now an option to avoid this and keep object - // UI active while app deactive, but it may not work for all DocObj servers. - m_hbmDeactive = DsoGetBitmapFromWindow(hwndEmbed); - ShowWindow(hwndEmbed, SW_HIDE); - } - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnAppActivationChange -// -// Notifes embedded object when the host app gains/loses foreground status -// as the active application. This notification is critical to DocObjects since -// it is the primary means for the host and server to synch which top-level -// frame window (the host or the server's native main window) should be on the -// z-order stack for the shared thread input state. Thus allowing dialogs and tool -// windows to appear the correct order when displayed. -// -STDMETHODIMP_(void) CDsoFramerControl::OnAppActivationChange(BOOL fAppActive, DWORD dwThreadID) -{ - TRACE2("CDsoFramerControl::OnAppActivationChange(fAppActive=%d, tid=0x%X)\n", fAppActive, dwThreadID); - m_fAppActive = fAppActive; - - if ((m_pDocObjFrame) && (m_fComponentActive)) - { - // Create/Free bitmap for background appearance.. - OnForegroundCompChange(fAppActive); - - // Notify it that it should be app active ofr deactive... - m_pDocObjFrame->OnNotifyAppActivate(fAppActive, (dwThreadID ? dwThreadID : GetCurrentThreadId())); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnComponentActivationChange -// -// Handles showing/hiding doc object during activation state changes. -// This is needed to properly handle focus changes when more than one -// instance of the control is running on the same top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnComponentActivationChange(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::OnComponentActivationChange(fActive=%d)\n", fActivate); - - if (fActivate) - { - // Set us active if we currently are not and raise activation change event... - if (!m_fComponentActive) - { - m_fComponentActive = TRUE; - OnForegroundCompChange(TRUE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - // Notify the embedded object... - if (m_pDocObjFrame) - { - // Determine if we should restore from IP deactivation... - if (FIPDeactivateOnCompChange() && !(m_pDocObjFrame->IsIPActive())) - { - m_pDocObjFrame->IPActivateView(); - OnForegroundCompChange(TRUE); - } - } - } - else - { - - // Inform embedded object we lost activation... - if (m_pDocObjFrame) - { - // If we are in print preview, we need to exit in case other control will - // end up talking to same OLE server... - if (m_pDocObjFrame->InPrintPreview()) - { - PrintPreviewExit(); - UpdateWindow(m_hwnd); - } - - // Provide control host option to IP deactive view when another framer control - // takes primary focus. This helps certain resource problems if you a lot of controls - // all IP active at the same time. This should not normally be used. - if (FIPDeactivateOnCompChange() && m_pDocObjFrame->IsIPActive()) - { - OnForegroundCompChange(FALSE); - m_pDocObjFrame->IPDeactivateView(); - } - - } - - // Change the current activation state and raise event... - if (m_fComponentActive) - { - m_fComponentActive = FALSE; - OnForegroundCompChange(FALSE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnCtrlFocusChange -// -// Checks if window (or one of its children) is getting or losing focus so -// that can notify both the host and embed server using OnUIFocusChange. -// -STDMETHODIMP_(void) CDsoFramerControl::OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd) -{ - TRACE2("CDsoFramerControl::OnCtrlFocusChange(fCtlGotFocus=%d, hwndCurFocus=%x)\n", fCtlGotFocus, hFocusWnd); - if (!(m_fInFocusChange) && ((fCtlGotFocus) || !IsWindowChild(m_hwnd, hFocusWnd))) - { - OnUIFocusChange(fCtlGotFocus); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnUIFocusChange -// -// Selectively handle focus changes to make sure both host and ui -// active docobject are in synch. -// -STDMETHODIMP_(void) CDsoFramerControl::OnUIFocusChange(BOOL fUIActive) -{ - BOOL fFocusUpdated = FALSE; - TRACE1("CDsoFramerControl::OnUIFocusChange(fUIActive=%d)\n", fUIActive); - - // We shouldn't try to do focus change when modal... - if ((m_fModalState) || (m_fInFocusChange)) - { - ODS(" -- Got focus while modal or in change (do nothing) --\n"); - return; - } - - // When IP active, notify the control host of focus change... - if ((m_fInPlaceActive) && (m_pControlSite)) - { - - // Set flag to prevent recursion during focus changes... - m_fInFocusChange = TRUE; - - if (fUIActive) // If we got focus... - { - // Notify host we have focus (we only need - // to do this if we are not already UI Active)... - if (!(m_fHasFocus)) - { - ODS(" -- Tell host app we should have focus --\n"); - m_fHasFocus = (fFocusUpdated = TRUE); - m_pControlSite->OnFocus(TRUE); - } - - // Let the hook manager know that this control is the active object... - if (m_pHookManager) - m_pHookManager->SetActiveComponent(m_hwnd); - - // If so configured, force component to show up active... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component active on focus gain --\n"); - OnComponentActivationChange(TRUE); - } - - // If we have an active document, forward the focus... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(TRUE); - - } - else // else we lost focus... - { - - // When we lose focus, only notify host if we lost to window - // that does not belong to us... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(FALSE); - - // If so configured, force component loss on focus loss... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component deactive on focus loss --\n"); - OnComponentActivationChange(FALSE); - m_fActivateOnStatus = TRUE; - } - - // If we are UI active still, we need to tell host that we lost - // focus and are now UI deactive. - if (m_fHasFocus) - { - ODS(" -- Notify host of lost focus (ie, UI deactivate us) --\n"); - m_fHasFocus = FALSE; fFocusUpdated = TRUE; - m_pControlSite->OnFocus(FALSE); - } - } - - // Clear focus change flag... - m_fInFocusChange = FALSE; - - // Redraw menu bar in case of state change - if ((fFocusUpdated) && (m_fShowMenuBar)) - { - RECT rc; GetSizeRectForMenuBar(NULL, &rc); - InvalidateRect(m_hwnd, &rc, TRUE); - } - } - - return; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateModalState -// -// Called either by developer (ModalState property) or by the embedded -// DocObject to notify host (VB/IE) that we are modal. -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject) -{ - TRACE2("CDsoFramerControl::UpdateModalState(AllowModeless=%d, NotifyIP=%d)\n", fModeless, fNotifyIPObject); - if (fModeless == (int)m_fModalState) - { - IOleInPlaceActiveObject* pipao; - - m_fModalState = !(fModeless); - ODS("Modal state changed\n"); - - // Excel doesn't like us to notify the host of changes in modality - // if it is the one who initialied the call. So, we check the - // NotifyIPObj flag and only notify host when the IPObj is not the caller... - if ((fNotifyIPObject) && (m_pInPlaceFrame)) - m_pInPlaceFrame->EnableModeless(fModeless); - - // Again, if IPObj is not the caller and we have Ipobj, let it know - // of the change in modal state... - if ((fNotifyIPObject) && (m_pDocObjFrame) && - (pipao = m_pDocObjFrame->GetActiveObject())) - pipao->EnableModeless(fModeless); - - // Post notification of return from modal... - if (fModeless) - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_RETURNFROMMODAL, (LPARAM)TRUE); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateInteractiveState -// -// Called when interactivity changes (mostly due to print preview). -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateInteractiveState(BOOL fActive) -{ - if (fActive) - { - m_fNoInteractive = FALSE; - if (m_fShowMenuPrev) put_Menubar(VARIANT_TRUE); - if (!m_fShowToolsPrev) put_Toolbars(VARIANT_FALSE); - - // Notify control host that preview mode has ended... - RaiseAutomationEvent(DSOF_DISPID_ENDPREVIEW, 0, NULL); - } - else - { - m_fShowMenuPrev = m_fShowMenuBar; - m_fShowToolsPrev = m_fShowToolbars; - if (m_fShowMenuBar) put_Menubar(VARIANT_FALSE); - if (!m_fShowToolbars) put_Toolbars(VARIANT_TRUE); - m_fNoInteractive = TRUE; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnPaletteChanged -// -// This method is also called from the subclassed parent. Per docobject -// spec, a ui active object should get first chance of any palette updates. -// -STDMETHODIMP_(void) CDsoFramerControl::OnPaletteChanged(HWND hwndPalChg) -{ - ODS("CDsoFramerControl::OnPaletteChanged\n"); - if (m_pDocObjFrame) m_pDocObjFrame->OnNotifyPaletteChanged(hwndPalChg); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSysCommandMenu -// -// Checks for menu shortcut keys when ui active. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::OnSysCommandMenu(CHAR ch) -{ - if (m_fUIActive) - { - TRACE1("CDsoFramerControl::OnSysCommandMenu(%d)\n", (DWORD)ch); - return TRUE; - } - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetActivePopupMenu -// -// Constructs our popup menu and returns the handle. The menu can be -// either the File menu by itself (no docobj is open) or the merged -// menu as a popup. -// -STDMETHODIMP_(HMENU) CDsoFramerControl::GetActivePopupMenu() -{ - HMENU hPopup, hMergedMenu, hServerMenu; - - // If we haven't made a File menu yet, make it. Here is where you might - // want to add custom items if you have other file-level commands you would - // the control to support. These are the basics... - if (!m_hmenuFilePopup) - { - m_hmenuFilePopup = CreatePopupMenu(); m_cMenuItems = 0; - if (!m_hmenuFilePopup) return NULL; - - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_NEW, "&New...\tCtrl+N"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_OPEN, "&Open...\tCtrl+O"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_CLOSE, "&Close"); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVE, "&Save\tCtrl+S"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVEAS, "Save &As..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PGSETUP, "Page Set&up..."); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINTPV, "Print Pre&view"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINT, "&Print..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PROPS, "Propert&ies"); - } - - // If we have a docobj and it has a merged menu, then lets return a - // merged menu between the docobj and our file menu... - if ((m_pDocObjFrame) && (m_pDocObjFrame->GetMenuHWND())) - { - // We only need to create the merged copy once. - if (!(hMergedMenu = m_pDocObjFrame->GetMergedMenu())) - { - hMergedMenu = CreatePopupMenu(); m_cMenuItems = 0; - if ((hMergedMenu) && (hServerMenu = (m_pDocObjFrame->GetActiveMenu()))) - { - CHAR szbuf[MAX_PATH]; - HMENU hT; - CHAR *pch; - - InsertMenu(hMergedMenu, 0, MF_BYPOSITION|MF_POPUP, (UINT)m_hmenuFilePopup, "&File"); - m_rgchMenuAccel[0] = 'f'; - - int cbMenuCnt = GetMenuItemCount(hServerMenu); - if (cbMenuCnt > DSO_MAX_MENUITEMS) cbMenuCnt = DSO_MAX_MENUITEMS; - - for (int i = 0; i < cbMenuCnt; i++) - { - hT = GetSubMenu(hServerMenu, i); - if (hT) - { - szbuf[0] = '\0'; - GetMenuString(hServerMenu, i, szbuf, MAX_PATH, MF_BYPOSITION); - InsertMenu(hMergedMenu, (i + 1), MF_BYPOSITION|MF_POPUP, (UINT)hT, szbuf); - - pch = szbuf; - while (*pch && (*pch++ != '&')) - ; - m_rgchMenuAccel[i + 1] = (CHAR)((*pch) ? ASCII_LOWERCASE(*pch) : 0xFF); - } - } - - if (cbMenuCnt < DSO_MAX_MENUITEMS) - m_rgchMenuAccel[cbMenuCnt + 1] = 0x00; - - m_pDocObjFrame->SetMergedMenu(hMergedMenu); - } - } - - hPopup = hMergedMenu; - } - else - { - hPopup = m_hmenuFilePopup; - m_rgchMenuAccel[0] = 'f'; - m_rgchMenuAccel[1] = 0; - } - - return hPopup; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FRunningInDesignMode -// -// Determines if we are in design mode. Called when painting the control -// and when deciding whether to subclass the parent. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FRunningInDesignMode() -{ - IDispatch *pdisp; - - // We must have a control site. - CHECK_NULL_RETURN(m_pClientSite, FALSE); - - // If we have done this before, we don't need to keep doing it unless - // the host has notified us of the state change (see our code in - // XOleControl::OnAmbientPropertyChange)... - if ((!m_fModeFlagValid) && - SUCCEEDED(m_pClientSite->QueryInterface(IID_IDispatch, (void **)&pdisp))) - { - VARIANT vtUserMode; - m_fDesignMode = FALSE; // assume run mode - - if (SUCCEEDED(DsoDispatchInvoke(pdisp, NULL, - DISPID_AMBIENT_USERMODE, DISPATCH_PROPERTYGET, 0, NULL, &vtUserMode))) - { - // UserMode is True when control is in Run mode, False when in design. - // We assume run mode, so we only care to set the flag if in design. - m_fDesignMode = !(BOOL_FROM_VARIANT(vtUserMode, TRUE)); - VariantClear(&vtUserMode); - } - - m_fModeFlagValid = TRUE; - // Release the IDispatch pointer... - pdisp->Release(); - } - - return m_fDesignMode; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InvalidateAllChildWindows -// -// Invalidate all child windows attached to the window passed. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindows(HWND hwnd) -{ - ODS("CDsoFramerControl::InvalidateAllChildWindows()\n"); - return EnumChildWindows(hwnd, InvalidateAllChildWindowsCallback, 0); -} - -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam) -{ - RECT rc; - GetClientRect(hwnd, &rc); - InvalidateRect(hwnd, &rc, TRUE); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseAutomationEvent -// -// Raises automation events to host application. -// -STDMETHODIMP CDsoFramerControl::RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs) -{ - HRESULT hr = ((m_fModalState) ? DISP_E_EXCEPTION : S_FALSE); - TRACE1("CDsoFramerControl::RaiseAutomationEvent(%d)\n", did); - - // We should only raise event if we have sink, not already in a event, and - // we are not in modal condition with respect to the remote server... - if ((m_dispEvents) && (!m_fFreezeEvents) && (!m_fModalState)) - { - m_fFreezeEvents = TRUE; - hr = DsoDispatchInvoke(m_dispEvents, NULL, did, 0, cargs, pvtargs, NULL); - m_fFreezeEvents = FALSE; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::DoDialogAction -// -// A very simple implementation of a New/Open/Save dialogs to serve as -// default actions in case developer does not override these "File" -// commands in OnFileCommand. -// -STDMETHODIMP CDsoFramerControl::DoDialogAction(dsoShowDialogType item) -{ - HRESULT hr = S_FALSE; - BSTR bstr; - BOOL fReadOnly; - VARIANT vT[3]; - - static const WCHAR v_wszFileFilter[] = - L"Microsoft Office Files\0*.doc;*.docx;*.docm;*.rtf;*.xls;*.xlsx;*.xlsm;*.csv;*.ppt;*.pptx;*.pptm;*.mpp;*.vsd;*.vdx\0" - L"Microsoft Word Files\0*.doc;*.docx;*.docm;*.rtf\0" - L"Microsoft Excel Files\0*.xls;*.xlsx;*.xlsm;*.csv\0" - L"Microsoft PowerPoint Files\0*.ppt;*.pptx;*.pptm\0" - L"Microsoft Project Files\0*.mpp\0" - L"Microsoft Visio Files\0*.vsd;*.vdx\0" - L"All Files (*.*)\0*.*\0\0"; - - // Switch on the action type... - switch (item) - { - case dsoDialogOpen: // Get file from user and call Open... - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_FILEMUSTEXIST|OFN_EXPLORER), - v_wszFileFilter, 1, NULL, NULL, FALSE, &bstr, &fReadOnly))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = (fReadOnly ? VARIANT_TRUE : VARIANT_FALSE); - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vT[0], vT[1], vT[2], vT[2], vT[2]); - SysFreeString(bstr); - } - break; - - case dsoDialogSave: // Get file from user and call Save... - { - LPWSTR pwszSaveType = NULL; - LPWSTR pwszDefExt = NULL; - - if (m_pDocObjFrame) - m_pDocObjFrame->GetDocumentTypeAndFileExtension(&pwszSaveType, &pwszDefExt); - - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXPLORER), - ((pwszSaveType) ? pwszSaveType : v_wszFileFilter), 1, pwszDefExt, NULL, TRUE, &bstr, NULL))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = VARIANT_TRUE; - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Save(vT[0], vT[1], vT[2], vT[2]); - SysFreeString(bstr); - } - - if (pwszSaveType) DsoMemFree(pwszSaveType); - if (pwszDefExt) DsoMemFree(pwszDefExt); - } - break; - - case dsoDialogNew: // Get either ProgID or File to create new object from... - if (SUCCEEDED(DsoGetOleInsertObjectFromUser(m_hwnd, L"Insert New Document Object", - (IOF_SELECTCREATENEW | IOF_DISABLELINK | IOF_DISABLEDISPLAYASICON | IOF_HIDECHANGEICON), - TRUE, FALSE, &bstr, NULL))) - { - hr = CreateNew(bstr); - SysFreeString(bstr); - } - break; - - default: MessageBeep(0); - } - - return hr; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetTempServerLock -// -// Sets up lock of OLE server to make unload and new load of files faster -// and to avoid race conditions on reload of file. -// -STDMETHODIMP CDsoFramerControl::SetTempServerLock(BOOL fLock) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::SetTempServerLock(%d)\n", fLock); - - if (fLock) - { - CLSID *pclsid; - - // First get the the CLSID of the current loaded object... - pclsid = m_pDocObjFrame->GetServerCLSID(); - - // If we already have a lock, determine if user is asking us to lock - // the same server (we only lock once for a given server type)... - if (m_pServerLock) - { - if (*(m_pServerLock->GetServerCLSID()) == *pclsid) - return S_FALSE; - - // If the current document is from a different server, free the old lock... - hr = SetTempServerLock(FALSE); - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - } - - // To lock the server, just make a dummy OLE object and don't ever site it... - m_pServerLock = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - hr = ((m_pServerLock) ? m_pServerLock->CreateDocObject(*pclsid) : E_OUTOFMEMORY); - if (SUCCEEDED(hr)) - { - hr = m_pServerLock->SetRunningServerLock(TRUE); - - // If we lock Excel, it steals focus from this host to the lock object, so we - // need to take it back so the real object isn't mixed up state... - if (SUCCEEDED(hr) && (m_pServerLock->IsExcelObject()) && (m_fAppActive)) - { - OnAppActivationChange(TRUE, 0); - } - } - else - { - delete m_pServerLock; - m_pServerLock = NULL; - } - - } - else if (m_pServerLock) - { - SEH_TRY - hr = m_pServerLock->SetRunningServerLock(FALSE); - hr = m_pServerLock->Close(); - SEH_EXCEPT(hr) - - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - delete m_pServerLock; - m_pServerLock = NULL; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ResetFrameHook -// -// Allows host to reset the frame hook. -// -STDMETHODIMP CDsoFramerControl::ResetFrameHook(HWND hwndFrameWindow) -{ - DWORD dwProcessId; - TRACE1("CDsoFramerControl::ResetFrameHook(%d)\n", hwndFrameWindow); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Verify that hwnd passed is a valid window handle and belogs to same thread - // as the control for parenting purposes... - if ((hwndFrameWindow) && (!IsWindow(hwndFrameWindow) || - (GetWindowThreadProcessId(hwndFrameWindow, &dwProcessId), dwProcessId != GetCurrentProcessId()))) - return E_INVALIDARG; - - // We must have a window already created for this to work... - if ((m_hwnd == NULL) || !IsWindow(m_hwnd) || - (m_hwndParent == NULL) || !IsWindow(m_hwndParent)) - return E_ACCESSDENIED; - - // Detach from the current window (removing that hook if this is the last component)... - if (m_pHookManager) - { - HRESULT hr = m_pHookManager->DetachComponent(m_hwnd); - if (FAILED(hr)) return hr; - m_pHookManager = NULL; - } - - // Now attach to the new parent window (or reattach based on the parent from our window)... - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl((hwndFrameWindow ? hwndFrameWindow : m_hwndParent), m_hwnd); - if (m_pHookManager == NULL) return E_FAIL; - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseActivationEvent -// -// Called to raise component change event on activation switch. -// -STDMETHODIMP_(void) CDsoFramerControl::RaiseActivationEvent(BOOL fActive) -{ - VARIANT rgargs[1]; rgargs[0].vt = VT_BOOL; - rgargs[0].boolVal = (fActive ? VARIANT_TRUE : VARIANT_FALSE); - RaiseAutomationEvent(DSOF_DISPID_ACTIVATE, 1, rgargs); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ControlWindowProc -// -// The window proc for our control. -// -STDMETHODIMP_(LRESULT) CDsoFramerControl::ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFramerControl* pCtl = (CDsoFramerControl*)GetWindowLong(hwnd, GWL_USERDATA); - if (pCtl) - { - switch (msg) - { - case WM_PAINT: - { - // call the OnDraw routine. - PAINTSTRUCT ps; - RECT rc; - HDC hdc; - hdc = BeginPaint(hwnd, &ps); - GetClientRect(hwnd, &rc); - pCtl->OnDraw(DVASPECT_CONTENT, hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - break; - - case WM_SIZE: - pCtl->OnResize(); - break; - - case WM_DESTROY: - pCtl->OnDestroyWindow(); - SetWindowLong(hwnd, GWL_USERDATA, 0); - break; - - case WM_SETFOCUS: - case WM_KILLFOCUS: - pCtl->OnCtrlFocusChange((BOOL)(msg == WM_SETFOCUS), (HWND)wParam); - break; - - case WM_MOUSEMOVE: - pCtl->OnMouseMove(LOWORD(lParam), HIWORD(lParam)); - break; - - case WM_LBUTTONDOWN: - pCtl->OnButtonDown(LOWORD(lParam), HIWORD(lParam)); - break; - - case DSO_WM_ASYNCH_OLECOMMAND: - ODS(" -- Got DSO_WM_ASYNCH_OLECOMMAND -- \n"); - pCtl->OnToolbarAction((DWORD)wParam); - break; - - case DSO_WM_ASYNCH_STATECHANGE: - TRACE1(" -- Got DSO_WM_ASYNCH_STATECHANGE %d --\n", wParam); - { - BOOL fCondition = (lParam != 0); - switch (wParam) - { - case DSO_STATE_MODAL: - pCtl->UpdateModalState(fCondition, FALSE); - break; - case DSO_STATE_ACTIVATION: - pCtl->RaiseActivationEvent(fCondition); - break; - case DSO_STATE_INTERACTIVE: - pCtl->UpdateInteractiveState(fCondition); - break; - case DSO_STATE_RETURNFROMMODAL: - { - if ((pCtl->m_fModalState == FALSE) && - (pCtl->m_fAppActive)) - { - pCtl->OnUIFocusChange(TRUE); - } - } - break; - - default: - ODS(" -- Unknown State Change!! --\n"); - break; - } - } - break; - - case DSO_WM_HOOK_NOTIFY_COMPACTIVE: - pCtl->OnComponentActivationChange((BOOL)wParam); - wParam = lParam; lParam = 0; - // falls through with wParam swapped... - - case DSO_WM_HOOK_NOTIFY_APPACTIVATE: - pCtl->OnAppActivationChange((BOOL)wParam, (DWORD)lParam); - break; - - case DSO_WM_HOOK_NOTIFY_SYNCPAINT: - pCtl->OnSyncPaint(); - break; - - case DSO_WM_HOOK_NOTIFY_PALETTECHANGE: - pCtl->OnPaletteChanged((HWND)wParam); - break; - - case WM_ENABLE: - pCtl->OnWindowEnable((BOOL)wParam); - break; - - case WM_MENUSELECT: - case WM_DRAWITEM: - case WM_MEASUREITEM: - case WM_ENTERIDLE: - case WM_INITMENU: - case WM_INITMENUPOPUP: - case WM_COMMAND: - pCtl->OnMenuMessage(msg, wParam, lParam); - break; - - case WM_DROPFILES: - pCtl->OnDropFile((HDROP)wParam); - break; - - case WM_TIMER: - pCtl->OnTimer((UINT)wParam); - break; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if (pCtl->m_xDsoDocObjectSite.SysMenuCommand((UINT)lParam) == S_OK) - { - ODS(" -- Eat SC_KeyMenu message --\n"); - return 1; - } - } - // fall through to defwinproc... - - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - - } - - return (LRESULT)0; - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - -//////////////////////////////////////////////////////////////////////// -// -// OCX Interfaces for CDsoFramerControl -// -// NOTE: The automation interfaces are implemented in dsofauto.cpp. -// The interfaces that follow are largely the interfaces used by the -// OCX host for normal control containment. -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XInternalUnknown -- Internal IUnknown interface -// !!! Controls lifetime of CDsoFramerControl !!! -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoFramerControl::XInternalUnknown::QueryInterface(REFIID riid, void** ppv) -{ - // ODS("CDsoFramerControl::InternalQueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if ((IID_IDispatch == riid) || (IID__FramerControl == riid)) - { - *ppv = (_FramerControl*)pThis; - } - else if (IID_IOleObject == riid) - { - *ppv = (IOleObject*)&(pThis->m_xOleObject); - } - else if (IID_IOleControl == riid) - { - *ppv = (IOleControl*)&(pThis->m_xOleControl); - } - else if (IID_IPersistPropertyBag == riid) - { - *ppv = (IPersistPropertyBag*)&(pThis->m_xPersistPropertyBag); - } - else if ((IID_IPersistStreamInit == riid) || (IID_IPersistStream == riid) || (IID_IPersist == riid)) - { - *ppv = (IPersistStreamInit*)&(pThis->m_xPersistStreamInit); - } - else if ((IID_IOleInPlaceObject == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceObject*)&(pThis->m_xOleInplaceObject); - } - else if (IID_IOleInPlaceActiveObject == riid) - { - *ppv = (IOleInPlaceActiveObject*)&(pThis->m_xOleInplaceActiveObject); - } - else if ((IID_IViewObjectEx == riid) || (IID_IViewObject == riid) || (IID_IViewObject2 == riid)) - { - *ppv = (IViewObjectEx*)&(pThis->m_xViewObjectEx); - } - else if (IID_IDataObject == riid) - { - *ppv = (IDataObject*)&(pThis->m_xDataObject); - } - else if (IID_ISupportErrorInfo == riid) - { - *ppv = (ISupportErrorInfo*)&(pThis->m_xSupportErrorInfo); - } - else if (IID_IProvideClassInfo == riid) - { - *ppv = (IProvideClassInfo*)&(pThis->m_xProvideClassInfo); - } - else if (IID_IConnectionPointContainer == riid) - { - *ppv = (IConnectionPointContainer*)&(pThis->m_xConnectionPointContainer); - } - else if (IID_IConnectionPoint == riid) - { - *ppv = (IConnectionPoint*)&(pThis->m_xConnectionPoint); - } - else if (IID_IEnumConnectionPoints == riid) - { - *ppv = (IEnumConnectionPoints*)&(pThis->m_xEnumConnectionPoints); - } - else if (IID_IPersistStorage == riid) - { - *ppv = (IPersistStorage*)&(pThis->m_xPersistStorage); - } - else if (IID_IObjectSafety == riid) - { - *ppv = (IObjectSafety*)&(pThis->m_xObjectSafety); - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&(pThis->m_xOleCommandTarget); - } - else if ((IID_IDsoDocObjectSite == riid) || (IID_IServiceProvider == riid)) - { - *ppv = (IDsoDocObjectSite*)&(pThis->m_xDsoDocObjectSite); - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) // AddRef those interfaces we will return... - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::AddRef(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalAddRef - %d\n", (pThis->m_cRef + 1)); - return ++(pThis->m_cRef); -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::Release(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalRelease - %d\n", (pThis->m_cRef - 1)); - if (0 != --(pThis->m_cRef)) return (pThis->m_cRef); - ODS("CDsoFramerControl delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete pThis; return 0; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStreamInit -- IPersistStreamInit Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP Load(LPSTREAM pStm); -// STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); -// STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); -// STDMETHODIMP InitNew(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStreamInit) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - - -#define STREAMHDR_SIGNATURE_OLD 0x1234ABCD // Signature to identify our format (avoid crashes!) -#define STREAMHDR_SIGNATURE_NEW 0xD501D501 // Signature to identify our format (avoid crashes!) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Load(LPSTREAM pStm) -{ - HRESULT hr; - DWORD dwSig, dwT; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Load\n"); - - // look for our header structure, so we can verify stream validity. - hr = pStm->Read(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if ((dwSig != STREAMHDR_SIGNATURE_NEW) && - (dwSig != STREAMHDR_SIGNATURE_OLD)) - return E_UNEXPECTED; - - // we like the stream. let's go load in our two properties. - hr = pStm->Read(&(pThis->m_Size), sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - DsoHimetricToPixels(&(pThis->m_Size.cx), &(pThis->m_Size.cy)); - - hr = pStm->Read(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fBorderStyle = LOBYTE(LOWORD(dwT)); - pThis->m_fShowMenuBar = HIBYTE(LOWORD(dwT)); - pThis->m_fShowToolbars = LOBYTE(HIWORD(dwT)); - pThis->m_fShowTitlebar = HIBYTE(HIWORD(dwT)); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - LPWSTR pwsz = (LPWSTR)DsoMemAlloc(dwT+2); - if (pwsz) - { - hr = pStm->Read(pwsz, dwT, NULL); - if (SUCCEEDED(hr)) - pThis->m_bstrCustomCaption = SysAllocString(pwsz); - } - DsoMemFree(pwsz); - } - - // Read in new properties for 1.3 version control... - if (dwSig == STREAMHDR_SIGNATURE_NEW) - { - DWORD dwValue; - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_lActivationPolicy = LOWORD(dwValue); - pThis->m_lHookPolicy = HIWORD(dwValue); - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fDisableMenuAccel = LOBYTE(LOWORD(dwT)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) -{ - HRESULT hr; - DWORD dwT, dwSig = STREAMHDR_SIGNATURE_NEW; - SIZEL slSize; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Save\n"); - - // first thing to do is write out our stream sig... - hr = pStm->Write(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // the only properties we're currently persisting here are the size - // properties for this control. make sure we do that in HiMetric - slSize = pThis->m_Size; - DsoPixelsToHimetric(&(slSize.cx), &(slSize.cy)); - - hr = pStm->Write(&slSize, sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG( - MAKEWORD((BYTE)(pThis->m_fBorderStyle), (BYTE)(pThis->m_fShowMenuBar)), - MAKEWORD((BYTE)(pThis->m_fShowToolbars), (BYTE)(pThis->m_fShowTitlebar))); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = 0; - if (pThis->m_bstrCustomCaption) - dwT = SysStringByteLen(pThis->m_bstrCustomCaption); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - hr = pStm->Write(pThis->m_bstrCustomCaption, dwT, NULL); - RETURN_ON_FAILURE(hr); - } - - // Version 1.3 added properties... - dwT = (DWORD)MAKELONG((WORD)(pThis->m_lActivationPolicy), (WORD)(pThis->m_lHookPolicy)); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG(MAKEWORD((BYTE)(pThis->m_fDisableMenuAccel), 0), 0); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // clear out dirty flag and notify that we're done with save. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetSizeMax(ULARGE_INTEGER *pcbSize) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetSizeMax\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::InitNew(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::InitNew\n"); - // If we are new control, we are dirty by default... - pThis->m_fDirty = TRUE; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistPropertyBag -- IPersistPropertyBag Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP InitNew(); -// STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); -// STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistPropertyBag) - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistPropertyBag::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::InitNew() -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::InitNew\n"); - return pThis->m_xPersistStreamInit.InitNew(); -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog) -{ - VARIANT v; - HRESULT hr; - SIZEL sl = {5000, 3000}; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Load\n"); - - v.vt = VT_I4; - v.lVal = 0; - - hr = pPropBag->Read(L"_ExtentX", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cx = v.lVal;} - - v.lVal = 0; - hr = pPropBag->Read(L"_ExtentY", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cy = v.lVal;} - - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - pThis->m_Size = sl; - - hr = pPropBag->Read(L"Titlebar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowTitlebar = v.boolVal;} - - hr = pPropBag->Read(L"Toolbars", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowToolbars = v.boolVal;} - - hr = pPropBag->Read(L"BorderStyle", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fBorderStyle = v.lVal;} - - hr = pPropBag->Read(L"BorderColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBorderColor = v.lVal;} - - hr = pPropBag->Read(L"BackColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBackColor = v.lVal;} - - hr = pPropBag->Read(L"ForeColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrForeColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarTextColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarTextColor = v.lVal;} - - hr = pPropBag->Read(L"Caption", &v, pErrorLog); - if (SUCCEEDED(hr)) - { - LPWSTR pwsz = LPWSTR_FROM_VARIANT(v); - if (pwsz) pThis->m_bstrCustomCaption = SysAllocString(pwsz); - VariantClear(&v); - } - - pThis->m_fShowMenuBar = FALSE; - hr = pPropBag->Read(L"Menubar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowMenuBar = BOOL_FROM_VARIANT(v, FALSE);} - - hr = pPropBag->Read(L"ActivationPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lActivationPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"FrameHookPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lHookPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"MenuAccelerators", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fDisableMenuAccel = !BOOL_FROM_VARIANT(v, TRUE);} - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) -{ - HRESULT hr; - VARIANT v; - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Save\n"); - - sl = pThis->m_Size; - DsoPixelsToHimetric(&(sl.cx), &(sl.cy)); - - v.vt = VT_I4; v.lVal = sl.cx; - hr = pPropBag->Write(L"_ExtentX", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = sl.cy; - hr = pPropBag->Write(L"_ExtentY", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBorderColor; - hr = pPropBag->Write(L"BorderColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBackColor; - hr = pPropBag->Write(L"BackColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrForeColor; - hr = pPropBag->Write(L"ForeColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarColor; - hr = pPropBag->Write(L"TitlebarColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarTextColor; - hr = pPropBag->Write(L"TitlebarTextColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_fBorderStyle; - hr = pPropBag->Write(L"BorderStyle", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowTitlebar; - hr = pPropBag->Write(L"Titlebar", &v); - RETURN_ON_FAILURE(hr); - - v.boolVal = pThis->m_fShowToolbars; - hr = pPropBag->Write(L"Toolbars", &v); - RETURN_ON_FAILURE(hr); - - if (pThis->m_bstrCustomCaption) - { - v.vt = VT_BSTR; v.bstrVal = pThis->m_bstrCustomCaption; - hr = pPropBag->Write(L"Caption", &v); - RETURN_ON_FAILURE(hr); - } - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowMenuBar; - hr = pPropBag->Write(L"Menubar", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lActivationPolicy; - hr = pPropBag->Write(L"ActivationPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lHookPolicy; - hr = pPropBag->Write(L"FrameHookPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = !(pThis->m_fDisableMenuAccel); - hr = pPropBag->Write(L"MenuAccelerators", &v); - RETURN_ON_FAILURE(hr); - - // now clear the dirty flag and send out notification - // that we're done. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStorage -- IPersistStorage Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP InitNew(LPSTORAGE pStg); -// STDMETHODIMP Load(LPSTORAGE pStg); -// STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); -// STDMETHODIMP SaveCompleted(LPSTORAGE pStg); -// STDMETHODIMP HandsOffStorage(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStorage) - -STDMETHODIMP CDsoFramerControl::XPersistStorage::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStorage::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::InitNew(LPSTORAGE pStg) -{ - HRESULT hr; - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::InitNew\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pThis->m_xPersistStreamInit.InitNew(); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Load(LPSTORAGE pStg) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Load\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Load(pstm); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Save(LPSTORAGE pStg, BOOL fSameAsLoad) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Save\n"); - - if (fSameAsLoad) - { - if ((pThis->m_pOleStorage == NULL) || - ((pStg) && (pStg != pThis->m_pOleStorage))) - { - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); - } - - CHECK_NULL_RETURN(pThis->m_pOleStorage, E_POINTER); - pStg = pThis->m_pOleStorage; - } - - CHECK_NULL_RETURN(pStg, E_POINTER); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (hr == STG_E_FILENOTFOUND) - hr = pStg->CreateStream(L"DsoFrameCtlContents", dwStmMode, 0, 0, &pstm); - - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Save(pstm, FALSE); - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::SaveCompleted(LPSTORAGE pStg) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::SaveCompleted\n"); - pThis->m_fDirty = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::HandsOffStorage(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::HandsOffStorage\n"); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleObject -- IOleObject Implementation -// -// STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); -// STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); -// STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); -// STDMETHODIMP Close(DWORD dwSaveOption); -// STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); -// STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); -// STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); -// STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); -// STDMETHODIMP EnumVerbs(IEnumOleVerb **ppEnumOleVerb); -// STDMETHODIMP Update(); -// STDMETHODIMP IsUpToDate(); -// STDMETHODIMP GetUserClassID(CLSID *pClsid); -// STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); -// STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); -// STDMETHODIMP Unadvise(DWORD dwConnection); -// STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); -// STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); -// STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleObject) - -STDMETHODIMP CDsoFramerControl::XOleObject::SetClientSite(IOleClientSite *pClientSite) -{ - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetClientSite\n"); - - SAFE_RELEASE_INTERFACE(pThis->m_pClientSite); - SAFE_RELEASE_INTERFACE(pThis->m_pControlSite); - - // store away the new client site - pThis->m_pClientSite = pClientSite; - - // if we've actually got one, then get some other interfaces we want to keep - // around, and keep a handle on it - if (pClientSite) - { - pClientSite->AddRef(); - pClientSite->QueryInterface(IID_IOleControlSite, (void **)&(pThis->m_pControlSite)); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClientSite(IOleClientSite **ppClientSite) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetClientSite\n"); - if (ppClientSite) { SAFE_SET_INTERFACE(*ppClientSite, pThis->m_pClientSite); } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetHostNames(LPCOLESTR /*szContainerApp*/, LPCOLESTR /*szContainerObj*/) -{ - ODS("CDsoFramerControl::XOleObject::SetHostNames\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Close(DWORD dwSaveOption) -{ - HRESULT hr; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Close\n"); - - if (pThis->m_fInPlaceActive) - { - hr = pThis->m_xOleInplaceObject.InPlaceDeactivate(); - RETURN_ON_FAILURE(hr); - } - - // handle the save flag. - if ((pThis->m_fDirty) && (pThis->m_pClientSite) && - (dwSaveOption == OLECLOSE_SAVEIFDIRTY || - dwSaveOption == OLECLOSE_PROMPTSAVE)) - { - pThis->m_pClientSite->SaveObject(); - } - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnClose(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk) -{ - ODS("CDsoFramerControl::XOleObject::SetMoniker\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk) -{ - ODS("CDsoFramerControl::XOleObject::GetMoniker\n"); - if (ppmk) *ppmk = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved) -{ - ODS("CDsoFramerControl::XOleObject::InitFromData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClipboardData(DWORD /*dwReserved*/, IDataObject **ppDataObject) -{ - ODS("CDsoFramerControl::XOleObject::GetClipboardData\n"); - if (ppDataObject) *ppDataObject = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::DoVerb\n"); - - switch (iVerb) - { - case OLEIVERB_PRIMARY: - case OLEIVERB_SHOW: - case OLEIVERB_INPLACEACTIVATE: - case OLEIVERB_UIACTIVATE: - return pThis->InPlaceActivate(iVerb); - - case OLEIVERB_HIDE: - pThis->m_xOleInplaceObject.UIDeactivate(); - if (pThis->m_fInPlaceVisible) - pThis->SetInPlaceVisible(FALSE); - return S_OK; - } - - return OLEOBJ_S_INVALIDVERB; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumVerbs(IEnumOLEVERB **ppEnumOleVerb) -{ - ODS("CDsoFramerControl::XOleObject::EnumVerbs\n"); - return OleRegEnumVerbs(CLSID_FramerControl, ppEnumOleVerb); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Update() -{ - ODS("CDsoFramerControl::XOleObject::Update\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::IsUpToDate() -{ - ODS("CDsoFramerControl::XOleObject::IsUpToDate\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserClassID(CLSID *pClsid) -{ - ODS("CDsoFramerControl::XOleObject::GetUserClassID\n"); - if (pClsid) *pClsid = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType) -{ - ODS("CDsoFramerControl::XOleObject::GetUserType\n"); - return OleRegGetUserType(CLSID_FramerControl, dwFormOfType, pszUserType); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - sl = *psizel; - - // we don't support any other aspects. - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // change the units to pixels, and resize the control. - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - - // if the size already matches the extents, then don't do anything - // and don't mark the control dirty. - if (sl.cx != pThis->m_Size.cx || sl.cy != pThis->m_Size.cy) - { - pThis->m_Size = sl; - pThis->m_fDirty = TRUE; // changing size should dirty - - if (pThis->m_fInPlaceActive) - { - RECT rect; - - // Use OnPosRectChange for older OCX containters and Access - // who just refuses to get with the times (like me )... - GetWindowRect(pThis->m_hwnd, &rect); - MapWindowPoints(NULL, pThis->m_hwndParent, (LPPOINT)&rect, 2); - rect.right = rect.left + sl.cx; - rect.bottom = rect.top + sl.cy; - pThis->m_pInPlaceSite->OnPosRectChange(&rect); - - // Resize the window based on the new size... - SetWindowPos(pThis->m_hwnd, NULL, 0, 0, sl.cx, sl.cy, - SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - } - else pThis->ViewChanged(); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - *psizel = pThis->m_Size; - DsoPixelsToHimetric(&(psizel->cx), &(psizel->cy)); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Advise\n"); - - if (NULL == pThis->m_pOleAdviseHolder) - { - if (FAILED(CreateOleAdviseHolder(&(pThis->m_pOleAdviseHolder)))) - return E_FAIL; - } - return pThis->m_pOleAdviseHolder->Advise(pAdvSink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Unadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Unadvise\n"); - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pOleAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumAdvise(IEnumSTATDATA **ppenumAdvise) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::EnumAdvise\n"); - - CHECK_NULL_RETURN(ppenumAdvise, E_POINTER); - *ppenumAdvise = NULL; - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, E_FAIL); - return pThis->m_pOleAdviseHolder->EnumAdvise(ppenumAdvise); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus) -{ - ODS("CDsoFramerControl::XOleObject::GetMiscStatus\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pdwStatus) - *pdwStatus = OLEMISC_SETCLIENTSITEFIRST | - OLEMISC_ACTIVATEWHENVISIBLE | - OLEMISC_RECOMPOSEONRESIZE | - OLEMISC_CANTLINKINSIDE | - OLEMISC_INSIDEOUT; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetColorScheme(LOGPALETTE *pLogpal) -{ - ODS("CDsoFramerControl::XOleObject::SetColorScheme\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleControl -- IOleControl Implementation -// -// STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); -// STDMETHODIMP OnMnemonic(LPMSG pMsg); -// STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); -// STDMETHODIMP FreezeEvents(BOOL bFreeze); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleControl) - -STDMETHODIMP CDsoFramerControl::XOleControl::GetControlInfo(CONTROLINFO* pCI) -{ - ODS("CDsoFramerControl::XOleControl::GetControlInfo\n"); - CHECK_NULL_RETURN(pCI, E_POINTER); - pCI->hAccel = NULL; pCI->cAccel = 0; pCI->dwFlags = 0; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnMnemonic(LPMSG pMsg) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnMnemonic\n"); - return pThis->InPlaceActivate(OLEIVERB_UIACTIVATE); -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnAmbientPropertyChange(DISPID dispID) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnAmbientPropertyChange\n"); - - // We keep track of state changes in design/run modes... - if (dispID == DISPID_AMBIENT_USERMODE || dispID == DISPID_UNKNOWN) - pThis->m_fModeFlagValid = FALSE; - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::FreezeEvents(BOOL bFreeze) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - TRACE1("CDsoFramerControl::XOleControl::FreezeEvents = %s\n", (bFreeze ? "TRUE" : "FALSE")); - pThis->m_fFreezeEvents = bFreeze; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceObject -- IOleInplaceObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP InPlaceDeactivate(); -// STDMETHODIMP UIDeactivate(); -// STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); -// STDMETHODIMP ReactivateAndUndo(); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::GetWindow\n"); - if (!(pThis->m_fInPlaceActive)) return E_FAIL; - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate\n"); - - // if we're not in-place active yet, then this is easy. - if (!(pThis->m_fInPlaceActive)) - return S_OK; - - // transition from UIActive back to active - if (pThis->m_fUIActive) - UIDeactivate(); - - // tell the host we're going away - pThis->m_pInPlaceSite->OnInPlaceDeactivate(); - - pThis->m_fInPlaceActive = FALSE; - pThis->m_fInPlaceVisible = FALSE; - - // if we have a window, tell it to go away. - if (pThis->m_hwnd) - {DestroyWindow(pThis->m_hwnd); pThis->m_hwnd = NULL;} - - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceUIWindow); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::UIDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::UIDeactivate\n"); - - // if we're not UIActive, not much to do. - if (!(pThis->m_fUIActive)) - return S_OK; - - pThis->m_fUIActive = FALSE; - - // notify frame windows, if appropriate, that we're no longer ui-active. - if (pThis->m_pInPlaceUIWindow) - pThis->m_pInPlaceUIWindow->SetActiveObject(NULL, NULL); - - if (pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetActiveObject(NULL, NULL); - - pThis->OnUIFocusChange(FALSE); - - // we don't need to explicitly release the focus here since somebody - // else grabbing the focus is what is likely to cause us to get lose it - pThis->m_pInPlaceSite->OnUIDeactivate(FALSE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) -{ - RECT rcIXect; - - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::SetObjectRects\n"); - - // move our window to the new location and handle clipping. - if (pThis->m_hwnd) - { - // if asked to clip the window, we'll use a clip region... - if ((lprcClipRect) && (IntersectRect(&rcIXect, lprcPosRect, lprcClipRect)) && - (!EqualRect(&rcIXect, lprcPosRect))) - { - OffsetRect(&rcIXect, -(lprcPosRect->left), -(lprcPosRect->top)); - SetWindowRgn(pThis->m_hwnd, CreateRectRgnIndirect(&rcIXect), TRUE); - pThis->m_fUsingWindowRgn = TRUE; - } - else if (pThis->m_fUsingWindowRgn) - { - SetWindowRgn(pThis->m_hwnd, NULL, TRUE); - pThis->m_fUsingWindowRgn = FALSE; - } - - // set our control's location, but don't change it's size at all - // [people for whom zooming is important should set that up here] - SetWindowPos(pThis->m_hwnd, NULL, lprcPosRect->left, lprcPosRect->top, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); - } - - // save out our current location. - pThis->m_rcLocation = *lprcPosRect; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo() -{ - ODS("CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceActiveObject -- IOleInplaceActiveObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); -// STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); -// STDMETHODIMP OnDocWindowActivate(BOOL fActivate); -// STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceActiveObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - ODS("CDsoFramerControl::XOleInplaceActiveObject::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator -// -// We handle certain keys as accelerators, but only if host does not -// implement it itself, and only when no document is open. The reason -// why is due to two factors: -// -// (1) When an out-of-proc AxDoc server is embedded and has focus, -// its thread (not ours) gets the accel keys. Word/PPT will treat -// these for us and contact us through IOleCommandTarget, so -// we don't want to handle them if AxDoc is handling them for us. -// -// (2) We cannot know if a given host uses the same accel keys for -// other tasks, and we don't want to impose ours on a host. By -// explicitly asking host to handle it first, we should be able -// to avoid any conflicts, and give developer a change to override -// our handler as needed. -// -static short _SpecialKeyState() -{ - BOOL bShift = (GetKeyState(VK_SHIFT) < 0); - BOOL bCtrl = (GetKeyState(VK_CONTROL) < 0); - BOOL bAlt = (GetKeyState(VK_MENU) < 0); - return (short)(bShift + (bCtrl << 1) + (bAlt << 2)); -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(LPMSG lpmsg) -{ - HRESULT hr = S_FALSE; - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - CHECK_NULL_RETURN(lpmsg, E_POINTER); - TRACE2("CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(msg=%d, wparam=%d)\n", lpmsg->message, lpmsg->wParam); - - // Forward it back to the site for processing on its side... - if (pThis->m_pControlSite) - { - hr = pThis->m_pControlSite->TranslateAccelerator(lpmsg, _SpecialKeyState()); - if (hr == S_OK) return S_OK; // If site handled it, nothing else we need to do.. - } - - if ((GetKeyState(VK_CONTROL) < 0) && (!(pThis->m_fModalState)) && - (lpmsg->message == WM_KEYUP) && (!(pThis->m_pDocObjFrame))) - { - TRACE1(" Handle Accelerator? (%d)\n", lpmsg->wParam); - switch (lpmsg->wParam) // Looking for Ctrl+N and Ctrl+O keys... - { - case 0x4E: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_NEW, 0); hr = S_OK; break; - case 0x4F: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_OPEN, 0); hr = S_OK; break; - case 0x53: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_SAVE, 0); hr = S_OK; break; - } - } - - // we didn't want it. - return hr; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate - %d\n", fActivate); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate(BOOL fActivate) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate - %d\n", fActivate); - - if (pThis->m_fUIActive && fActivate && pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetBorderSpace(NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(%d)\n", fEnable); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XViewObjectEx -- IViewObjectEx Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); -// STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); -// STDMETHODIMP Unfreeze(DWORD dwFreeze); -// STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdvSink); -// STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdvSink); -// STDMETHODIMP GetExtent(DWORD dwAspect, DWORD lindex, DVTARGETDEVICE ptd, LPSIZEL lpsizel); -// STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); -// STDMETHODIMP GetViewStatus(DWORD* pdwStatus); -// STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ViewObjectEx) - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue) -{ - RECT rc; - int iMode = 0; - POINT pVp = {0,0}; - POINT pW = {0,0}; - BOOL fOptimize = FALSE; - BOOL fMetafile = FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::Draw\n"); - - if (!((dwDrawAspect == DVASPECT_CONTENT) || - (dwDrawAspect == DVASPECT_OPAQUE))) - return DV_E_DVASPECT; - - SaveDC(hdcDraw); - - // first, have to do a little bit to support printing. - if (GetDeviceCaps(hdcDraw, TECHNOLOGY) == DT_METAFILE) - { - // We are dealing with a metafile. - fMetafile = TRUE; - } -/* - // check to see if we have any flags passed in the pvAspect parameter. - if (pvAspect && ((DVASPECTINFO *)pvAspect)->cb == sizeof(DVASPECTINFO)) - fOptimize = (((DVASPECTINFO *)pvAspect)->dwFlags & DVASPECTINFOFLAG_CANOPTIMIZE) ? TRUE : FALSE; -*/ - // Get the draw rect, if they didn't give us one, just copy over ours - memcpy(&rc, ((prcBounds) ? (RECT*)prcBounds : &(pThis->m_rcLocation)), sizeof(RECT)); - - if (!fMetafile) - { - LPtoDP(hdcDraw, (POINT*)&rc, 2); - SetViewportOrgEx(hdcDraw, 0, 0, &pVp); - SetWindowOrgEx(hdcDraw, 0, 0, &pW); - iMode = SetMapMode(hdcDraw, MM_TEXT); - } - - // prcWBounds is NULL and not used if we are not dealing with a metafile. - // For metafiles, we pass on rc as *prcBounds, we should also include prcWBounds - pThis->OnDraw(dwDrawAspect, hdcDraw, &rc, (RECT*)prcWBounds, hicTargetDevice, fOptimize); - - // clean up the DC when we're done with it, if appropriate. - if (!fMetafile) - { - SetViewportOrgEx(hdcDraw, pVp.x, pVp.y, NULL); - SetWindowOrgEx(hdcDraw, pW.x, pW.y, NULL); - SetMapMode(hdcDraw, iMode); - } - - RestoreDC(hdcDraw, -1); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetColorSet\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Freeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Unfreeze(DWORD dwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Unfreeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::SetAdvise\n"); - - // if it's not a content aspect, we don't support it. - if (!(dwAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // set up some flags [we gotta stash for GetAdvise ...] - pThis->m_fViewAdvisePrimeFirst = (advf & ADVF_PRIMEFIRST) ? TRUE : FALSE; - pThis->m_fViewAdviseOnlyOnce = (advf & ADVF_ONLYONCE) ? TRUE : FALSE; - - SAFE_RELEASE_INTERFACE(pThis->m_pViewAdviseSink); - SAFE_SET_INTERFACE(pThis->m_pViewAdviseSink, pAdviseSink); - - // prime them if they want it [we need to store this so they can get flags later] - if (pThis->m_fViewAdvisePrimeFirst) - pThis->ViewChanged(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetAdvise\n"); - - if (pdwAspect) - *pdwAspect = DVASPECT_CONTENT; - - if (padvf) - { - *padvf = 0; - if (pThis->m_fViewAdviseOnlyOnce) *padvf |= ADVF_ONLYONCE; - if (pThis->m_fViewAdvisePrimeFirst) *padvf |= ADVF_PRIMEFIRST; - } - - if (ppAdviseSink) - { SAFE_SET_INTERFACE(*ppAdviseSink, pThis->m_pViewAdviseSink); } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetExtent\n"); - return pThis->m_xOleObject.GetExtent(dwDrawAspect, psizel); -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetRect(DWORD dwAspect, LPRECTL pRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetRect\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pRect) - { - CopyRect((LPRECT)pRect, &(pThis->m_rcLocation)); - // Convert to himetric (according to docs, this is required) - DsoPixelsToHimetric(&(pRect->left), &(pRect->top)); - DsoPixelsToHimetric(&(pRect->right), &(pRect->bottom)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetViewStatus(DWORD* pdwStatus) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetViewStatus\n"); - if (pdwStatus) *pdwStatus = VIEWSTATUS_OPAQUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult) -{ - // ODS("CDsoFramerControl::XViewObjectEx::QueryHitPoint\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - CHECK_NULL_RETURN(pHitResult, E_POINTER); - *pHitResult = PtInRect(pRectBounds, ptlLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult) -{ - RECT rc; - //ODS("CDsoFramerControl::XViewObjectEx::QueryHitRect\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - *pHitResult = IntersectRect(&rc, pRectBounds, pRectLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetNaturalExtent\n"); - return E_NOTIMPL; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDataObject -- IDataObject Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP QueryGetData(FORMATETC *pfmtc); -// STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut); -// STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); -// STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); -// STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); -// STDMETHODIMP DUnadvise(DWORD dwConnection); -// STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DataObject) - -STDMETHODIMP CDsoFramerControl::XDataObject::GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - HRESULT hr; - HMETAFILE hwmf; - LPMETAFILEPICT pwmf; - HGLOBAL hmem; - SIZE sizeMetric; - RECT rc; - HDC hdc; - - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - TRACE2("CDsoFramerControl::XDataObject::GetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); CHECK_NULL_RETURN(pstgm, E_POINTER); - - // Confirm data requested is a supportted type... - if (FAILED(hr = QueryGetData(pfmtc))) - return hr; - - // If caller wants a metafile of the current object, draw it... - hdc = CreateMetaFileW(NULL); - - sizeMetric.cx = pThis->m_Size.cx; - sizeMetric.cy = pThis->m_Size.cy; - - SetRect(&rc, 0, 0, sizeMetric.cx, sizeMetric.cy); - DsoPixelsToHimetric(&(sizeMetric.cx), &(sizeMetric.cy)); - sizeMetric.cy = -(sizeMetric.cy); - - SetMapMode(hdc, MM_ANISOTROPIC); - SetWindowOrgEx(hdc, 0, 0, NULL); - SetWindowExtEx(hdc, rc.right, rc.bottom, NULL); - - // Delegate to same IViewObject::Draw used by most containers for metafile... - hr = pThis->m_xViewObjectEx.Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdc, (RECTL*)&rc, NULL, NULL, 0); - ASSERT(SUCCEEDED(hr)); - - if ((hwmf = CloseMetaFile(hdc)) == NULL) - return E_UNEXPECTED; - - // Now allocate the transfer medium and set the metafile... - hmem = GlobalAlloc((GMEM_SHARE|GMEM_MOVEABLE), sizeof(METAFILEPICT)); - if (hmem == NULL) { DeleteMetaFile(hwmf); return STG_E_MEDIUMFULL; } - - pwmf = (LPMETAFILEPICT)GlobalLock(hmem); - if (pwmf) - { - pwmf->hMF = hwmf; - pwmf->mm = MM_ANISOTROPIC; - pwmf->xExt = sizeMetric.cx; - pwmf->yExt = sizeMetric.cy; - GlobalUnlock(hmem); - } - - pstgm->tymed = TYMED_MFPICT; - pstgm->hGlobal = hmem; - pstgm->pUnkForRelease = NULL; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - ODS("CDsoFramerControl::XDataObject::GetDataHere\n"); - return DV_E_FORMATETC; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::QueryGetData(FORMATETC *pfmtc) -{ - TRACE2("CDsoFramerControl::XDataObject::QueryGetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); - - if (pfmtc->cfFormat != CF_METAFILEPICT) - return DV_E_FORMATETC; // We only support WMF for IDataObj presentation. - - if (pfmtc->tymed != TYMED_MFPICT) - return DV_E_TYMED; // It better be in in right format... - - if (pfmtc->dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; // We only do content (not thumbnail or partial)... - - return S_OK; // If here, it looks fine to us... -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut) -{ - ODS("CDsoFramerControl::XDataObject::GetCanonicalFormatEtc\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease) -{ - ODS("CDsoFramerControl::XDataObject::SetData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum) -{ - ODS("CDsoFramerControl::XDataObject::EnumFormatEtc\n"); - return OleRegEnumFormatEtc(CLSID_FramerControl, dwDirection, ppenum); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DAdvise\n"); - - // Create OLE Data advise holder to keep sink for us... - if ((NULL == pThis->m_pDataAdviseHolder) && - FAILED(CreateDataAdviseHolder(&(pThis->m_pDataAdviseHolder)))) - return E_FAIL; - - // Add this advise sink for the given format to the collection... - return pThis->m_pDataAdviseHolder->Advise((IDataObject*)&(pThis->m_xDataObject), pfmtc, advf, psink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DUnadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DUnadvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumDAdvise(IEnumSTATDATA **ppenum) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::EnumDAdvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->EnumAdvise(ppenum); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XProvideClassInfo -- IProvideClassInfo Implementation -// -// STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ProvideClassInfo) - -STDMETHODIMP CDsoFramerControl::XProvideClassInfo::GetClassInfo(ITypeInfo** ppTI) -{ - ODS("CDsoFramerControl::XProvideClassInfo::GetClassInfo\n"); - return DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, ppTI); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPointContainer -- IConnectionPointContainer Implementation -// -// STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); -// STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPointContainer) - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints(IEnumConnectionPoints **ppEnum) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints\n"); - if (ppEnum) { SAFE_SET_INTERFACE(*ppEnum, &(pThis->m_xEnumConnectionPoints)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint\n"); - if (riid != DIID__DFramerCtlEvents) return CONNECT_E_NOCONNECTION; - if (ppCP) { SAFE_SET_INTERFACE(*ppCP, &(pThis->m_xConnectionPoint)); }; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XEnumConnectionPoints -- IEnumConnectionPoints Implementation -// -// STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); -// STDMETHODIMP Skip(ULONG cConnections); -// STDMETHODIMP Reset(void); -// STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, EnumConnectionPoints) - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched) -{ - HRESULT hr = S_FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, EnumConnectionPoints); - ODS("CDsoFramerControl::XEnumConnectionPoints::Next\n"); - - CHECK_NULL_RETURN(rgpcn, E_POINTER); - *rgpcn = NULL; - - CHECK_NULL_RETURN(pcFetched, E_POINTER); - *pcFetched = 0; - - if (pThis->m_fConCntDone) - pThis->m_fConCntDone = FALSE; - else - { - SAFE_SET_INTERFACE(*rgpcn, &(pThis->m_xConnectionPoint)); - *pcFetched = 1; - pThis->m_fConCntDone = TRUE; hr = S_OK; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Skip(ULONG cConnections) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Reset(void) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Clone(IEnumConnectionPoints **ppEnum) -{if (ppEnum) *ppEnum = this; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPoint -- IConnectionPoint Implementation -// -// STDMETHODIMP GetConnectionInterface(IID *pIID); -// STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); -// STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); -// STDMETHODIMP Unadvise(DWORD dwCookie); -// STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPoint) - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionInterface(IID *pIID) -{ - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionInterface\n"); - if (pIID) *pIID = DIID__DFramerCtlEvents; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer(IConnectionPointContainer **ppCPC) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer\n"); - if (ppCPC) { SAFE_SET_INTERFACE(*ppCPC, &(pThis->m_xConnectionPointContainer)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Advise(IUnknown *pUnk, DWORD *pdwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Advise\n"); - - CHECK_NULL_RETURN(pUnk, E_POINTER); - CHECK_NULL_RETURN(pdwCookie, E_POINTER); - - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - - // FIX: The COM Interop layer in .NET CLR returns a different RCW for IDispatch than for a specific - // dispinterface GUID, so for events to work in .NET WinForm applications, we should explicitly use - // the RCW for that dispinterface. Other event source clients may fail QI for this GUID, so if it - // does return an error, we will QI again for IDispatch. The event issue is change in behavior from - // how VB6 implemented event sinks, and how VB7/C# does them... - HRESULT hr = pUnk->QueryInterface(DIID__DFramerCtlEvents, (void**)&(pThis->m_dispEvents)); - if (FAILED(hr)) hr = pUnk->QueryInterface(IID_IDispatch, (void**)&(pThis->m_dispEvents)); - - if (SUCCEEDED(hr)) *pdwCookie = (DWORD)(pThis); - return hr; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Unadvise(DWORD dwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Unadvise\n"); - if (dwCookie == (DWORD)(pThis)) - { - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - } - return (pThis->m_dispEvents == NULL) ? S_OK : CONNECT_E_NOCONNECTION; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::EnumConnections(IEnumConnections **ppEnum) -{if (ppEnum) *ppEnum = NULL; return E_NOTIMPL;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleCommandTarget) - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - //ODS("CDsoFramerControl::XOleCommandTarget::QueryStatus\n"); - if (pguidCmdGroup != NULL) - return OLECMDERR_E_UNKNOWNGROUP; - - if (prgCmds == NULL) - return E_INVALIDARG; - - for (int i = 0; i < (int)cCmds; i++) - { - switch (prgCmds[i].cmdID) - { - case OLECMDID_NEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 1) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_OPEN: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 2) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVE: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 8) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVEAS: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 16) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINT: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 32) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PAGESETUP: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 64) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PROPERTIES: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 128) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINTPREVIEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 256) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - default: prgCmds[i].cmdf = 0; - } - } - - if (pCmdText) - { - pCmdText->cmdtextf = MSOCMDTEXTF_NONE; - pCmdText->cwActual = 0; - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - ODS("CDsoFramerControl::XOleCommandTarget::Exec\n"); - - if ((pguidCmdGroup != NULL) && (*pguidCmdGroup != GUID_NULL)) - return OLECMDERR_E_UNKNOWNGROUP; - - if (nCmdexecopt == MSOCMDEXECOPT_SHOWHELP) - return OLECMDERR_E_NOHELP; - - switch (nCmdID) - { - case OLECMDID_NEW: - case OLECMDID_OPEN: - case OLECMDID_SAVE: - case OLECMDID_SAVEAS: - case OLECMDID_PRINT: - case OLECMDID_PAGESETUP: - case OLECMDID_PROPERTIES: - case OLECMDID_PRINTPREVIEW: - PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, nCmdID, nCmdexecopt); - return S_OK; - } - - return OLECMDERR_E_NOTSUPPORTED; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XSupportErrorInfo -- ISupportErrorInfo Implementation -// -// STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, SupportErrorInfo) - -STDMETHODIMP CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid) -{ - ODS("CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo\n"); - return ((riid == IID__FramerControl) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XObjectSafety -- IObjectSafety Implementation -// -// STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); -// STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ObjectSafety) - -STDMETHODIMP CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions\n"); - CHECK_NULL_RETURN(pdwEnabledOptions, E_POINTER); - - if (pdwSupportedOptions) - *pdwSupportedOptions = (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER); - - // We are safe for initialization, but not necessarily for scripting. Since script - // can open documents with macros, and get access to Office OM via ActiveDocument, - // we cannot be "safe" for malicious script. But this allows the control to load - // without prompt (just not scripted without prompt)... - *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions\n"); - return ((((riid == IID_IPersist) || (riid == IID_IPersistPropertyBag)) && - (dwEnabledOptions == INTERFACESAFE_FOR_UNTRUSTED_DATA)) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDsoDocObjectSite -- IDsoDocObjectSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DsoDocObjectSite) - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - HRESULT hr = E_NOINTERFACE; - ODS("CDsoFramerControl::XDsoDocObjectSite::QueryService\n"); - - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - CHECK_NULL_RETURN(ppv, E_POINTER); - - // We will return control IDispatch for cross container automation... - if (guidService == SID_SContainerDispatch) - { - ODS(" -- Container Dispatch Given --\n"); - hr = pThis->QueryInterface(riid, ppv); - } - // TODO: Support IHlinkFrame services for cross hyperlinking inside control?? - - // If we don't handle the call, and our host has a provider, pass the call along to see - // if the top-level host offers the service requested (like hyperlinking to new web page)... - if (FAILED(hr) && (pThis->m_pClientSite)) - { - IServiceProvider *pprov = NULL; - if (SUCCEEDED(pThis->m_pClientSite->QueryInterface(IID_IServiceProvider, (void**)&pprov)) && (pprov)) - { - if (SUCCEEDED(hr = pprov->QueryService(guidService, riid, ppv))) - { ODS(" -- Service provided by top-level host --\n"); } - pprov->Release(); - } - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetWindow\n"); - if (phWnd) *phWnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetBorder\n"); - pThis->GetSizeRectForDocument(NULL, prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetHostName(LPWSTR *ppwszHostName) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetHostName\n"); - if (ppwszHostName) *ppwszHostName = DsoCopyString(pThis->m_pwszHostName); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(UINT uiCharCode) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - TRACE1("CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(%x)\n", uiCharCode); - - // If we are processing a sys menu command, see if it is a menu accel for our - // displayed menu, and if so we handle this with a fake click of the menu button... - if ((uiCharCode) && (pThis->m_fShowMenuBar) && !(pThis->m_fDisableMenuAccel)) - { - UINT i; - CHAR *pch; - - // Loop all the menu items and check against their accelerators... - for (i = 0; i < DSO_MAX_MENUITEMS; i++) - { - pch = &(pThis->m_rgchMenuAccel[0]); - if (*pch) - { - if ((*pch != 0xFF) && ((UINT)(*pch) == ASCII_LOWERCASE(uiCharCode))) - { - // Found one that match, so fake mouse move and button down/up to run click code... - ODS("-- Trigger Menu Accelerator --\n"); - - PostMessage(pThis->m_hwnd, WM_MOUSEMOVE, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONDOWN, (WPARAM)MK_LBUTTON, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONUP, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - // Return OK to caller to know to eat this message. - return S_OK; - } - } - else break; - } - } - - return S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - - // If m_fActivateOnStatus flag is set, see if we are not UI active. If not, try to activate... - if ((pThis->m_fActivateOnStatus) && (pThis->m_fComponentActive) && (pThis->m_fAppActive) && - !(pThis->m_fUIActive) && !(pThis->m_fModalState)) - { - ODS(" -- ForceUIActiveFromSetStatusText --\n"); - pThis->m_fActivateOnStatus = FALSE; - pThis->Activate(); - } - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -// -CDsoFrameHookManager* vgGlobalManager = NULL; - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::RegisterFramerControl -// -// Creates a frame hook and registers it with the active manager. If -// this is the first time called, the global manager will be created -// now. The manager can handle up to DSOF_MAX_CONTROLS controls (10). -// -STDMETHODIMP_(CDsoFrameHookManager*) CDsoFrameHookManager::RegisterFramerControl(HWND hwndParent, HWND hwndControl) -{ - CDsoFrameHookManager* pManager = NULL; - ODS("CDsoFrameHookManager::RegisterFramerControl\n"); - CHECK_NULL_RETURN(hwndControl, NULL); - - EnterCriticalSection(&v_csecThreadSynch); - pManager = vgGlobalManager; - if (pManager == NULL) - pManager = (vgGlobalManager = new CDsoFrameHookManager()); - LeaveCriticalSection(&v_csecThreadSynch); - - if (pManager) - { - if (hwndParent == NULL) - hwndParent = hwndControl; - - if (FAILED(pManager->AddComponent(hwndParent, hwndControl))) - return NULL; - } - - return pManager; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::AddComponent -// -// Register the component and create the actual frame hook (if needed). -// -STDMETHODIMP CDsoFrameHookManager::AddComponent(HWND hwndParent, HWND hwndControl) -{ - DWORD dwHostProcessID; - CDsoFrameWindowHook* phook; - HRESULT hr = E_OUTOFMEMORY; - HWND hwndNext, hwndHost = hwndParent; - ODS("CDsoFrameHookManager::AddComponent\n"); - - // Find the top-level window this control is sited on... - while (hwndNext = GetParent(hwndHost)) - hwndHost = hwndNext; - - // We have to get valid window that is in-thread for a subclass to work... - if (!IsWindow(hwndHost) || - (GetWindowThreadProcessId(hwndHost, &dwHostProcessID), - dwHostProcessID != GetCurrentProcessId())) - return E_ACCESSDENIED; - - // Next if we have room in the array, add the component to the list and - // hook its parent window so we get messages for it. - EnterCriticalSection(&v_csecThreadSynch); - if ((vgGlobalManager) && (m_cComponents < DSOF_MAX_CONTROLS)) - { - // Hook the host window for this control... - phook = CDsoFrameWindowHook::AttachToFrameWindow(hwndHost); - if (phook) - {// Add the component to the list if hooked... - m_pComponents[m_cComponents].hwndControl = hwndControl; - m_pComponents[m_cComponents].phookFrame = phook; - m_cComponents++; hr = S_OK; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - if (SUCCEEDED(hr)) // Make sure item is the new active component - hr = SetActiveComponent(hwndControl); - - return hr; -} - -STDMETHODIMP CDsoFrameHookManager::DetachComponent(HWND hwndControl) -{ - DWORD dwIndex; - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - - // Find this control in the list... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If we found the index, remove the item and shift remaining - // items down the list. Change active index as needed... - EnterCriticalSection(&v_csecThreadSynch); - - m_pComponents[dwIndex].hwndControl = NULL; - m_pComponents[dwIndex].phookFrame->Detach(); - - // Compact the list... - while (++dwIndex < m_cComponents) - { - m_pComponents[dwIndex-1].hwndControl = m_pComponents[dwIndex].hwndControl; - m_pComponents[dwIndex-1].phookFrame = m_pComponents[dwIndex].phookFrame; - m_pComponents[dwIndex].hwndControl = NULL; - } - - // Decrement the count. If count still exists, forward activation - // to next component in the list... - if (--m_cComponents) - { - while (m_idxActive >= m_cComponents) - --m_idxActive; - - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - else - { - vgGlobalManager = NULL; - // If this is the last control, we can remove the manger! - delete this; - } - - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::SetActiveComponent(HWND hwndControl) -{ - ODS(" -- CDsoFrameHookManager::SetActiveComponent -- \n"); - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - DWORD dwIndex; - - // Find the index of the control... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If it is not already the active item, notify old component it is - // losing activation, and notify new component that it is gaining... - EnterCriticalSection(&v_csecThreadSynch); - if (dwIndex != m_idxActive) - { - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)FALSE, (LPARAM)0); - - m_idxActive = dwIndex; - - hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam) -{ - TRACE3("CDsoFrameHookManager::OnComponentNotify(%d, %d, %d)\n", msg, wParam, lParam); - HWND hwndActiveComp = GetActiveComponentWindow(); - - // The manager needs to keep track of AppActive state... - if (msg == DSO_WM_HOOK_NOTIFY_APPACTIVATE) - { - EnterCriticalSection(&v_csecThreadSynch); - m_fAppActive = (BOOL)wParam; - LeaveCriticalSection(&v_csecThreadSynch); - } - - // Send the message to the active component - SendNotifyMessage(hwndActiveComp, msg, wParam, lParam); - return S_OK; -} - -STDMETHODIMP_(BOOL) CDsoFrameHookManager::SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam) -{ - BOOL fResult; - - // Check if the caller is on the same thread as the active component. If so we can - // forward the message directly for processing. If not, we have to post and wait for - // that thread to process message at a later time... - if (GetWindowThreadProcessId(hwnd, NULL) == GetCurrentThreadId()) - { // Notify now... - fResult = (BOOL)SendMessage(hwnd, msg, wParam, lParam); - } - else - { // Notify later... - fResult = PostMessage(hwnd, msg, wParam, lParam); - } - - return fResult; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -// -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::AttachToFrameWindow -// -// Creates the frame hook for the host window. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::AttachToFrameWindow(HWND hwndParent) -{ - CDsoFrameWindowHook* phook = NULL; - BOOL fHookSuccess = FALSE; - - // We have to get valid window ... - if (!IsWindow(hwndParent)) - return NULL; - - EnterCriticalSection(&v_csecThreadSynch); - phook = CDsoFrameWindowHook::GetHookFromWindow(hwndParent); - if (phook) - { // Already have this window hooked, so just addref the count. - phook->AddRef(); - } - else - { // Need to create a new hook object for this window... - if ((phook = new CDsoFrameWindowHook())) - { - phook->m_hwndTopLevelHost = hwndParent; - phook->m_fHostUnicodeWindow = (v_fUnicodeAPI && IsWindowUnicode(hwndParent)); - - // Setup the subclass using Unicode or Ansi methods depending on window - // create state. Note if either property assoc or window subclass fail... - if (phook->m_fHostUnicodeWindow) - { - fHookSuccess = SetPropW(hwndParent, L"DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongW(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - else - { - fHookSuccess = SetPropA(hwndParent, "DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongA(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - - // If we failed the subclass, kill this object and return error... - if (!fHookSuccess) - { - delete phook; - phook = NULL; - } - else phook->m_cHookCount++; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::Detach -// -// Removes the hook from the frame window if this is the last control -// to reference the hook. -// -STDMETHODIMP CDsoFrameWindowHook::Detach() -{ - // Only need to call this if item is attached. - EnterCriticalSection(&v_csecThreadSynch); - if (m_cHookCount) - { - if (--m_cHookCount == 0) - { // We can remove the hook! - if (m_fHostUnicodeWindow) - { - SetWindowLongW(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropW(m_hwndTopLevelHost, L"DSOFramerWndHook"); - } - else - { - SetWindowLongA(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropA(m_hwndTopLevelHost, "DSOFramerWndHook"); - } - m_hwndTopLevelHost = NULL; - - // we can kill this object now... - delete this; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::GetHookFromWindow -// -// Returns the hook control associated with this object. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::GetHookFromWindow(HWND hwnd) -{ - CDsoFrameWindowHook* phook = (CDsoFrameWindowHook*)GetPropW(hwnd, L"DSOFramerWndHook"); - if (phook == NULL) phook = (CDsoFrameWindowHook*)GetPropA(hwnd, "DSOFramerWndHook"); - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::HostWindowProcHook -// -// The window proc for the subclassed host window. -// -STDMETHODIMP_(LRESULT) CDsoFrameWindowHook::HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFrameWindowHook* phook = CDsoFrameWindowHook::GetHookFromWindow(hwnd); - if (phook) // We better get our prop for this window! - { - // We handle the important ActiveDocument frame-level events like task - // window activation/deactivation, palette change notfication, and key/mouse - // focus notification on host app focus... - switch (msg) - { - case WM_ACTIVATEAPP: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_APPACTIVATE, wParam, lParam); - break; - - case WM_PALETTECHANGED: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_PALETTECHANGE, wParam, lParam); - break; - - case WM_SYNCPAINT: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_SYNCPAINT, wParam, lParam); - break; - - } - - // After processing, allow calls to fall through to host app. We need to call - // the appropriate handler for Unicode or non-Unicode windows... - if (phook->m_fHostUnicodeWindow) - return CallWindowProcW(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - else - return CallWindowProcA(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - } - - // Should not be reached, but just in case call default proc... - return (IsWindowUnicode(hwnd) ? - DefWindowProcW(hwnd, msg, wParam, lParam) : - DefWindowProcA(hwnd, msg, wParam, lParam)); -} \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.cpp deleted file mode 100644 index 34721835..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.cpp +++ /dev/null @@ -1,3253 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.CPP - * - * CDsoDocObject: ActiveX Document Single Instance Frame/Site Object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject - The DocObject Site Class -// -// This class wraps the functionality for DocObject hosting. Right now -// we are setup for one active site at a time, but this could be changed -// to allow multiple sites (although only one could be UI active at any -// given time). -// -CDsoDocObject::CDsoDocObject() -{ - ODS("CDsoDocObject::CDsoDocObject\n"); - m_cRef = 1; - m_fDisplayTools = TRUE; -} - -CDsoDocObject::~CDsoDocObject(void) -{ - ODS("CDsoDocObject::~CDsoDocObject\n"); - if (m_pole) Close(); - if (m_hwnd) DestroyWindow(m_hwnd); - - SAFE_FREESTRING(m_pwszUsername); - SAFE_FREESTRING(m_pwszPassword); - SAFE_FREESTRING(m_pwszHostName); - - SAFE_RELEASE_INTERFACE(m_pstgroot); - SAFE_RELEASE_INTERFACE(m_punkIPPResource); - SAFE_RELEASE_INTERFACE(m_pcmdCtl); - SAFE_RELEASE_INTERFACE(m_psiteCtl); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateNewDocObject -// -// Static Creation Function. -// -STDMETHODIMP_(CDsoDocObject*) CDsoDocObject::CreateInstance(IDsoDocObjectSite* phost) -{ - ODS("CDsoDocObject::CreateInstance()\n"); - CDsoDocObject* pnew = new CDsoDocObject(); - if ((pnew) && FAILED(pnew->InitializeNewInstance(phost))) - { - pnew->Release(); - pnew = NULL; - } - return pnew; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InitializeNewInstance -// -// Sets up new docobject class. We must a control site to attach this -// window to. It will call back to host for menu and IOleCommandTarget. -// -STDMETHODIMP CDsoDocObject::InitializeNewInstance(IDsoDocObjectSite* phost) -{ - HRESULT hr = E_UNEXPECTED; - WNDCLASS wndclass; - HWND hwndCtl; - - ODS("CDsoDocObject::InitializeNewInstance()\n"); - - // We need valid IDsoDocObjectSite... - if ((phost == NULL) || FAILED(phost->GetWindow(&hwndCtl))) - return hr; - - // As an AxDoc site, we need a valid parent window... - if ((!hwndCtl) || (!IsWindow(hwndCtl))) - return hr; - - // Create a temp storage for this docobj site (if one already exists, bomb out)... - if ((m_pstgroot) || FAILED(hr = StgCreateDocfile(NULL, STGM_TRANSACTED | STGM_READWRITE | - STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &m_pstgroot))) - return hr; - - // If our site window class has not been registered before, we should register it... - - // This is protected by a critical section just for fun. The fact we had to single - // instance the OCX because of the host hook makes having multiple instances conflict here - // very unlikely. However, that could change sometime, so better to be safe than sorry. - EnterCriticalSection(&v_csecThreadSynch); - - if (GetClassInfo(v_hModule, "DSOFramerDocWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoDocObject::FrameWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerDocWnd"; - if (RegisterClass(&wndclass) == 0) - hr = E_WIN32_LASTERROR; - } - - LeaveCriticalSection(&v_csecThreadSynch); - if (FAILED(hr)) return hr; - - // Get the position RECT (and validate as needed)... - hr = phost->GetBorder(&m_rcViewRect); - if (FAILED(hr)) return hr; - - if (m_rcViewRect.top > m_rcViewRect.bottom) - {m_rcViewRect.top = 0; m_rcViewRect.bottom = 0;} - if (m_rcViewRect.left > m_rcViewRect.right) - {m_rcViewRect.left = 0; m_rcViewRect.right = 0;} - - // Create our site window at the give location (we are child of the control window)... - m_hwnd = CreateWindowEx(0, "DSOFramerDocWnd", NULL, WS_CHILD, - m_rcViewRect.left, m_rcViewRect.top, - (m_rcViewRect.right - m_rcViewRect.left), - (m_rcViewRect.bottom - m_rcViewRect.top), - hwndCtl, NULL, v_hModule, NULL); - - if (!m_hwnd) return E_OUTOFMEMORY; - SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - // Save the control info for this object... - m_hwndCtl = hwndCtl; - (m_psiteCtl = phost)->AddRef(); - - m_psiteCtl->QueryInterface(IID_IOleCommandTarget, (void**)&m_pcmdCtl); - m_psiteCtl->GetHostName(&m_pwszHostName); - if (m_pwszHostName == NULL) - m_pwszHostName = DsoCopyString(L"DsoFramerControl"); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From CLSID) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(REFCLSID rclsid) -{ - HRESULT hr; - CLSID clsid; - DWORD dwMiscStatus = 0; - IOleObject* pole = NULL; - IPersistStorage* pipstg = NULL; - BOOL fInitNew = (m_pstgfile == NULL); - - ODS("CDsoDocObject::CreateDocObject(CLSID)\n"); - ASSERT(!(m_pole)); - - // Don't load if an object has already been loaded... - if (m_pole) return E_UNEXPECTED; - - // It is possible that someone picked an older ProgId/CLSID that - // will AutoConvert on CoCreate, so fix up the storage with the - // new CLSID info. We we actually call CoCreate on the new CLSID... - if (fInitNew && SUCCEEDED(OleGetAutoConvert(rclsid, &clsid))) - { - OleDoAutoConvert(m_pstgfile, &clsid); - } - else clsid = rclsid; - - // First, check the server to make sure it is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(rclsid))) - return hr; - - // If we haven't loaded a storage, create a new one and remember to - // call InitNew (instead of Load) later on... - if (fInitNew && FAILED(hr = CreateObjectStorage(rclsid))) - return hr; - - // We are ready to create an instance. Call CoCreate to make an - // inproc handler and ask for IOleObject (all docobjs must support this)... - if (FAILED(hr = InstantiateDocObjectServer(clsid, &pole))) - return hr; - - // Do a quick check to see if server wants us to set client site before the load.. - hr = pole->GetMiscStatus(DVASPECT_CONTENT, &dwMiscStatus); - if (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST) - hr = pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Load up the bloody thing... - if (SUCCEEDED(hr = pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - // Remember to InitNew if this is a new storage... - hr = ((fInitNew) ? pipstg->InitNew(m_pstgfile) : pipstg->Load(m_pstgfile)); - pipstg->Release(); - } - - // Assuming all the above worked we should have an OLE Embeddable - // object and should finish the initialization (set object running)... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Ensure server is running and locked... - EnsureOleServerRunning(TRUE); - - // If we didn't do so already, set our client site... - if (!(dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST)) - hr = m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Set the host names for OLE embedding... - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - // Ask object to save (if dirty)... - if (IsDirty()) SaveObjectStorage(); - } - else - {// Be sure they disconnect from our site if we failed load... - pole->SetClientSite(NULL); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From IStorage*) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(IStorage *pstg) -{ - HRESULT hr; - CLSID clsid; - - ODS("CDsoDocObject::CreateDocObject(IStorage*)\n"); - CHECK_NULL_RETURN(pstg, E_POINTER); - - // Read the clsid from the storage.. - if (FAILED(hr = ReadClassStg(pstg, &clsid))) - return hr; - - // Validate the server is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(clsid))) - return hr; - - // Create a new storage for this CLSID... - if (FAILED(hr = CreateObjectStorage(clsid))) - return hr; - - // Copy data into the new storage and commit the change... - hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile); - if (SUCCEEDED(hr)) hr = m_pstgfile->Commit(STGC_OVERWRITE); - - // Then do normal create on existing storage made from copy... - return CreateDocObject(clsid); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromFile -// -// Loads document into the framer control. The bind options determine if -// file should be loaded read-only or read-write. An alternate CLSID can -// be provided if the document type is not normally associated with a -// a DocObject server in OLE. -// -// To activate and show the object, you must call IPActivateView(). -// -// The code will attempt to open the file in one of three ways: -// -// 1.) Using IMoniker, we will attempt to open and load existing file -// via a passed moniker, similar to how IE loads files. -// -// 2.) Using IPersistFile, we will attempt to open via direct file path. -// -// 3.) Finally, if above two options don't work, we will try to open the -// storage, make a copy and load using IPersistStorage. This last way follows -// the (old) Binder behavior, and should *by spec* always work, but is a bit -// clunky since we open a copy, not the real file. -// -STDMETHODIMP CDsoDocObject::CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - CLSID clsid; - CLSID clsidConv; - IOleObject *pole = NULL; - IBindCtx *pbctx = NULL; - IMoniker *pmkfile = NULL; - IStorage *pstg = NULL; - BOOL fLoadFromAltCLSID = (rclsid != GUID_NULL); - - // Sanity check of parameters... - if (!(pwszFile) || ((*pwszFile) == L'\0') || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromFile(%S, %x)\n", pwszFile, pbndopts->grfMode); - - // First. we'll try to find the associated CLSID for the given file, - // and then set it to the alternate if not found. If we don't have a - // CLSID by the end of this, because user didn't specify alternate - // and GetClassFile failed, then we error out... - if (FAILED(GetClassFile(pwszFile, &clsid)) && !(fLoadFromAltCLSID)) - return DSO_E_INVALIDSERVER; - - // We should try to load from alternate CLSID if provided one... - if (fLoadFromAltCLSID) clsid = rclsid; - - // We should also handle auto-convert to start "newest" server... - if (SUCCEEDED(OleGetAutoConvert(clsid, &clsidConv))) - clsid = clsidConv; - - // Validate that we have a DocObject server... - if ((clsid == GUID_NULL) || FAILED(ValidateDocObjectServer(clsid))) - return DSO_E_INVALIDSERVER; - - // Check for IE cache items since these are read-only as far as user is concerned... - if (FIsIECacheFile(pwszFile)) - { - pbndopts->grfMode &= ~(STGM_READWRITE); - pbndopts->grfMode &= ~(STGM_WRITE); - pbndopts->grfMode |= STGM_READ; - } - - // First, we try to bind by moniker (same as IE). We'll need a bind context - // and a file moniker for the orginal source... - if (SUCCEEDED(hr = CreateBindCtx(0, &pbctx))) - { - if (SUCCEEDED(hr = pbctx->SetBindOptions(pbndopts)) && - SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pmkfile))) - { - - // Bind to the object moniker refers to... - hr = pmkfile->BindToObject(pbctx, NULL, IID_IOleObject, (void**)&pole); - - // If that failed, try to bind direct to file in new server... - if (FAILED(hr)) - { - IPersistFile *pipfile = NULL; - - if (SUCCEEDED(hr = InstantiateDocObjectServer(clsid, &pole)) && - SUCCEEDED(hr = pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { - hr = pipfile->Load(pwszFile, pbndopts->grfMode); - pipfile->Release(); - } - } - - // If either solution worked, setup the rest of the bind info... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Keep the moniker and bind ctx... - SAFE_SET_INTERFACE(m_pmkSourceFile, pmkfile); - SAFE_SET_INTERFACE(m_pbctxSourceFile, pbctx); - - // Set out client site... - m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // We don't normally set host name for moniker bind, but MSWORD object - // requires it to IP activate it instead of link & show external... - if (IsWordObject()) - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - } - else pole->SetClientSite(NULL); - - // This will release the moniker if above failed... - pmkfile->Release(); - } - // This will release the bind ctx if above failed... - pbctx->Release(); - } - - // If binding by moniker failed, try the old fashion way of bind to OLE storage... - if (FAILED(hr)) - { - // Try to open file as OLE storage (native OLE DocFile)... - if (SUCCEEDED(hr = StgOpenStorage(pwszFile, NULL, pbndopts->grfMode, NULL, 0, &pstg))) - { - // Create our substorage, and copy the data over to it... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile))) - { - m_pstgfile->Commit(STGC_OVERWRITE); - - // Then create the object from the storage copy... - if (SUCCEEDED(hr = CreateDocObject(clsid))) - { - SAFE_SET_INTERFACE(m_pstgSourceFile, pstg); - } - } - // This will release the storage if above failed... - pstg->Release(); - } - } - - // If all went well, we should save file name and whether it opened read-only... - if (SUCCEEDED(hr)) - { - m_pwszSourceFile = DsoCopyString(pwszFile); - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - m_fOpenReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromURL -// -// Loads document from a URL resource. The document can be open read-only -// using URLMON in the same context as the host client (i.e., it can be -// treated as normal navigation in host if host supports URLMON, like IE). -// Or you can choose to open read-write, which will attempt to use the -// Microsoft Internet Publishing Provider (MSDAIPP) to author on the web. -// -// The default is to open read-only with URLMON. If client wants read-write, -// we will try MSDAIPP for DAV first, then MSDAIPP for FPSE/WSS/SPS. -// -STDMETHODIMP CDsoDocObject::CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr; - BOOL fReadOnly; - LPWSTR pwszTempFile; - IStream *pstmWebResource = NULL; - - // First, a sanity check on the parameters passed... - if ((pwszUrlFile == NULL) || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromURL(%S, %x)\n", pwszUrlFile, pbndopts->grfMode); - - // Get a temp path for the download... - if (!GetTempPathForURLDownload(pwszUrlFile, &pwszTempFile)) - return E_ACCESSDENIED; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - // Determine if they want to open read-only using URLMON or read-write using MSDAIPP... - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (fReadOnly) // If using URLMON... - { - hr = URLDownloadFile((IUnknown*)&m_xAuthenticate, pwszUrlFile, pwszTempFile); - } - else // Otherwise we need access to MSDAIPP for writable stream... - { - hr = IPPDownloadWebResource(pwszUrlFile, pwszTempFile, &pstmWebResource); - } - - // If all goes well with the download, we can then open the temp file for write access to - // use as local file during the editing. Then we can save back on the stream if requested. - if (SUCCEEDED(hr)) - { - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, STGM_READWRITE|STGM_SHARE_EXCLUSIVE, 10000}; - hr = CreateFromFile(pwszTempFile, rclsid, &bopts); - if (SUCCEEDED(hr)) - { - m_fOpenReadOnly = fReadOnly; - if (!m_fOpenReadOnly) - { - m_pwszWebResource = DsoCopyString(pwszUrlFile); - SAFE_SET_INTERFACE(m_pstmWebResource, pstmWebResource); - } - } - } - - SAFE_RELEASE_INTERFACE(pstmWebResource); - DsoMemFree(pwszTempFile); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromRunningObject -// -// Grabs a pre-existing object (such as a running object) and attempts -// to embed it. If that fails, it will make a copy of the object and open -// the copy read-only. -// -STDMETHODIMP CDsoDocObject::CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - IPersistStorage *prststg; - IOleObject *pole; - CLSID clsid; - BOOL fReadOnly; - - ODS("CDsoDocObject::CreateFromRunningObject()\n"); - CHECK_NULL_RETURN(punkObj, E_POINTER); - CHECK_NULL_RETURN(pbndopts, E_POINTER); - - // We only can support read-only since a running object is external, and in order - // to get a copy inplace active, we end up making a copy of the storage, which means - // this control will have a copy and not control the orginal source. Since the orginal - // can be locked and not available, we have to treat this as read-only. - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (!fReadOnly) return STG_E_LOCKVIOLATION; - - // First, ensure the object passed supports embedding (i.e., we expect - // something like a Word.Document or Excel.Sheet object, not a Word.Application - // object or something else that is not a document type)... - hr = punkObj->QueryInterface(IID_IOleObject, (void**)&pole); - if (FAILED(hr)) return hr; - - // Ask the object to save its persistent state. We also collect its CLSID and - // validate that the object type supports DocObject embedding... - hr = pole->QueryInterface(IID_IPersistStorage, (void**)&prststg); - if (SUCCEEDED(hr)) - { - hr = prststg->GetClassID(&clsid); // Validate the object type... - if (FAILED(hr) || FAILED(ValidateDocObjectServer(clsid))) - { - hr = DSO_E_INVALIDSERVER; - } - else - { - // Create a matching storage for the object and save the current - // state of the file in our storage (this is our private copy)... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = prststg->Save(m_pstgfile, FALSE)) && - SUCCEEDED(hr = prststg->SaveCompleted(NULL))) - { - // At this point we have a read-only copy... - prststg->HandsOffStorage(); - m_fOpenReadOnly = TRUE; - - // Create the embedding... - hr = CreateDocObject(clsid); - } - } - - prststg->Release(); - } - - pole->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPActivateView -// -// Activates the object for inplace viewing. -// -STDMETHODIMP CDsoDocObject::IPActivateView() -{ - HRESULT hr = E_UNEXPECTED; - ODS("CDsoDocObject::IPActivateView()\n"); - ASSERT(m_pole); - - // Make sure the site window is made visible... - if (!IsWindowVisible(m_hwnd)) - ShowWindow(m_hwnd, SW_SHOW); - - // If we have an IOleDocument pointer, we can use the Show method for - // inplace activation... - if (m_pdocv) - { - hr = m_pdocv->Show(TRUE); - } - else if (m_pole) - { - // Try creating a document view and loading it... - hr = m_xOleDocumentSite.ActivateMe(NULL); - if (FAILED(hr)) // If that fails, go the old OLE route... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - - // First call IOleObject::DoVerb with OLEIVERB_INPLACEACTIVATE - // (or OLEIVERB_SHOW), and our view rect and IOleClientSite pointer... - hr = m_pole->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // If the server doesn't recognize IP verb, try OLEIVERB_SHOW instead... - if (hr == OLEOBJ_E_INVALIDVERB) - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // There is an issue with Visio 2002 rejecting DoVerb when it is called while - // Visio is still loading up the main app window. OLE servers normally return RPC - // retry later error, which will spin us in the msg-filter, but Visio just rejects - // the call all together, which pops us out of the filter early. This causes the - // embed attempt to fail. So to workaround this, we will check for the condition, - // sleep a bit, and then try our own semi-msg-filter loop... - if ((hr == RPC_E_CALL_REJECTED) && IsVisioObject()) - { - DWORD dwLoopCnt = 0; - do - { - Sleep((200 * ++dwLoopCnt)); - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - while ((hr == RPC_E_CALL_REJECTED) && (dwLoopCnt < 4)); - } - } - } - - // Go ahead and UI activate now... - if (SUCCEEDED(hr)) - hr = UIActivateView(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPDeactivateView -// -// Deactivates the object ready for close. -// -STDMETHODIMP CDsoDocObject::IPDeactivateView() -{ - HRESULT hr = S_OK; - ODS("CDsoDocObject::IPDeactivateView()\n"); - - // If we still have a UI active object, tell it to UI deactivate... - if (m_pipactive) - UIDeactivateView(); - - // Next hide the active object... - if (m_pdocv) - m_pdocv->Show(FALSE); - - // Notify object our intention to IP deactivate... - if (m_pipobj) - m_pipobj->InPlaceDeactivate(); - - // Close the object down and release pointers... - if (m_pdocv) - { - hr = m_pdocv->CloseView(0); - m_pdocv->SetInPlaceSite(NULL); - } - - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Hide the site window... - ShowWindow(m_hwnd, SW_HIDE); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIActivateView -// -// UI Activates the object (which should bring up toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIActivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIActivateView()\n"); - - if (m_pdocv) // Go UI active... - { - hr = m_pdocv->UIActivate(TRUE); - } - else if (m_pole) // We should never get here, but just in case pdocv is NULL, signal UI active the old way... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - m_pole->DoVerb(OLEIVERB_UIACTIVATE, NULL, (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - - // Forward focus to the IP object... - if (SUCCEEDED(hr) && (m_hwndIPObject)) - SetFocus(m_hwndIPObject); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIDeactivateView -// -// UI Deactivates the object (which should hide toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIDeactivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIDeactivateView()\n"); - if (m_pdocv) - hr = m_pdocv->UIActivate(FALSE); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IsDirty -// -// Determines if the file is dirty (by asking IPersistXXX::IsDirty). -// -STDMETHODIMP_(BOOL) CDsoDocObject::IsDirty() -{ - BOOL fDirty = TRUE; // Assume we are dirty unless object says we are not - IPersistStorage *pprststg; - IPersistFile *pprst; - - // Can't be dirty without object - CHECK_NULL_RETURN(m_pole, FALSE); - - // Ask object its dirty state... - if ((m_pmkSourceFile) && - SUCCEEDED(m_pole->QueryInterface(IID_IPersistFile, (void**)&pprst))) - { - fDirty = ((pprst->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprst->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IPersistStorage, (void**)&pprststg))) - { - fDirty = ((pprststg->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprststg->Release(); - } - - return fDirty; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Save -// -// Does default save action for existing document (if it is not read-only). -// -// There are three types of loaded doc objects we can save: -// (1) Files obtained by URL write bind via MSDAIPP; -// (2) Files opened from local file source; and -// (3) Objects already running or files linked to via OLE moniker. -// -// This function determines which type we should do the save, and call -// the right code for that type. -// -STDMETHODIMP CDsoDocObject::Save() -{ - HRESULT hr = DSO_E_NOTBEENSAVED; - - // We can't do save default if file was open read-only, - // caller must do save with new file name... - if (!IsReadOnly()) - { - // If we have a URL (write-access) resource, do MSDAIPP save... - if (m_pstmWebResource) - { - hr = SaveToURL(NULL, TRUE, NULL, NULL); - } - // Else if it is local file, do a local save... - else if (m_pwszSourceFile) - { - hr = SaveToFile(NULL, TRUE); - } - } - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - IStorage *pstg; - LPWSTR pwszFullName = NULL; - LPWSTR pwszRename = NULL; - BOOL fDoNormalSave = FALSE; - BOOL fDoOverwriteOps = FALSE; - BOOL fFileOpSuccess = FALSE; - - TRACE2("CDsoDocObject::SaveToFile(%S, %d)\n", ((pwszFile) ? pwszFile : L"[Default]"), fOverwriteFile); - CHECK_NULL_RETURN(m_pole, hr); - - // If they passed no file, use the default if current file is not read-only... - if (fDoNormalSave = (pwszFile == NULL)) - { - // File must be read-write for normal save... - if (IsReadOnly()) return DSO_E_DOCUMENTREADONLY; - - // If we are not moniker bound, we'll use the existing file path for ole save... - if (m_pwszSourceFile == NULL) return DSO_E_NOTBEENSAVED; - - pwszFile = (pwszFullName = DsoCopyString(m_pwszSourceFile)); - if (pwszFile == NULL) return E_OUTOFMEMORY; - } - else - { - // Make sure a file extension exists for string passed by caller... - if (ValidateFileExtension(pwszFile, &pwszFullName)) - pwszFile = pwszFullName; - } - - // See if we will be overwriting, and error unless given permission to do so... - if ((fDoOverwriteOps = FFileExists(pwszFile)) && !(fOverwriteFile)) - return STG_E_FILEALREADYEXISTS; - - // If we had a previous lock on storage, we have to free it... - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - - // If we are overwriting, we do a little Shell Operation here. This is done - // for two reasons: (1) it keeps the server from asking us to overwrite the - // file as it normally would in case of normal save; and (2) it lets us - // restore the original if the save fails... - if (fDoOverwriteOps) - { - pwszRename = DsoCopyStringCat(pwszFile, L".dstmp"); - fFileOpSuccess = ((pwszRename) && FPerformShellOp(FO_RENAME, pwszFile, pwszRename)); - } - - // Time to do the save to new file. - - // First we try to save by moniker using IPersistMoniker/IPersistFile. Check for defaut - // save to the current document. If to a new doc, create new moniker and save ... - if ((fDoNormalSave) && (m_pmkSourceFile)) - { - hr = SaveDocToMoniker(m_pmkSourceFile, m_pbctxSourceFile, TRUE); - } - else if (pwszFile) - { - // Create a new moniker for the save... - IMoniker *pnewmk = NULL; - if (SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pnewmk))) - { - - // If current document is read-only, we want new one to be read-write... - if ((m_fOpenReadOnly) && (m_pbctxSourceFile)) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - if (SUCCEEDED(m_pbctxSourceFile->GetBindOptions(&bndopts))) - { - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - else if (m_pbctxSourceFile == NULL) - { - // May need to create a new bind context if we haven't already... - if (SUCCEEDED(hr = CreateBindCtx(0, &m_pbctxSourceFile))) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - bndopts.grfFlags = BIND_MAYBOTHERUSER; - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - bndopts.dwTickCountDeadline = 10000; - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - - // Do the save with moniker bind option and keep lock... - if (SUCCEEDED(hr = SaveDocToMoniker(pnewmk, m_pbctxSourceFile, TRUE))) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_SET_INTERFACE(m_pmkSourceFile, pnewmk); - m_fOpenReadOnly = FALSE; // Should be read-write now... - } - - pnewmk->Release(); - } - } - - - // If we are not using moniker binding, or the save with new moniker failed, try to use - // a save copy approach and we will overwrite the file... - if (!(m_pmkSourceFile) || FAILED(hr)) - { - // Update the internal storage to the current doc state... - if (((m_pstgfile) || SUCCEEDED(hr = CreateObjectStorage(m_clsidObject))) && - SUCCEEDED(hr = SaveObjectStorage())) - { - // Ask for server to save to file in "Save Copy As" fashion. This produces a native - // OLE document file more similar to what happens in normal SaveAs dialog for BIFF file... - hr = SaveDocToFile(pwszFile, FALSE); - - // If that doesn't work, save out the storage as OLE storage and ... - if (FAILED(hr) && SUCCEEDED(hr = StgCreateDocfile(pwszFile, STGM_TRANSACTED | - STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, 0, &pstg))) - { - WriteClassStg(pstg, m_clsidObject); - - if (SUCCEEDED(hr = m_pstgfile->CopyTo(0, NULL, NULL, pstg))) - hr = pstg->Commit(STGC_OVERWRITE); - - pstg->Release(); - } - } - - // If that worked, and we once had a moniker, we have to dump it now... - if (SUCCEEDED(hr) && (m_pmkSourceFile)) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - } - } - - // If we made a copy to protect on overwrite, either restore or delete it as needed... - if ((fDoOverwriteOps) && (fFileOpSuccess) && (pwszRename)) - { - FPerformShellOp((FAILED(hr) ? FO_RENAME : FO_DELETE), pwszRename, pwszFile); - } - - // If this is an exisitng file save, or the operation failed, relock the - // the original file save source... - if ((m_pstgfile) && !(m_pmkSourceFile) && (m_pwszSourceFile) && - ((fDoNormalSave) || (FAILED(hr)))) - { - StgOpenStorage(m_pwszSourceFile, NULL, - ((m_pwszWebResource) ? - (STGM_READ | STGM_SHARE_DENY_WRITE) : - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE)), - NULL, 0, &m_pstgSourceFile); - } - else if (SUCCEEDED(hr)) - { - // Otherwise if we succeeded, free any existing file info we have it and - // save the new file info for later re-saves (and lock)... - SAFE_FREESTRING(m_pwszSourceFile); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - - // Save the name, and try to lock the file for editing... - if (m_pwszSourceFile = DsoCopyString(pwszFile)) - { - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - - if (!(m_pmkSourceFile) && (m_pstgfile)) - StgOpenStorage(m_pwszSourceFile, NULL, - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE), NULL, 0, &m_pstgSourceFile); - } - } - - if (pwszRename) - DsoMemFree(pwszRename); - - if (pwszFullName) - DsoMemFree(pwszFullName); - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr = DSO_E_DOCUMENTREADONLY; - - // If we have no URL to save to and no previously open web stream, fail... - if ((!pwszURL) && (!m_pstmWebResource)) - return hr; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - if ((pwszURL) && (m_pwszWebResource) && - (DsoCompareStringsEx(pwszURL, -1, m_pwszWebResource, -1) == CSTR_EQUAL)) - pwszURL = NULL; - - if (pwszURL) - { - IStream *pstmT = NULL; - LPWSTR pwszFullUrl = NULL; - LPWSTR pwszTempFile; - - IStream *pstmBkupStm; - IStorage *pstgBkupStg; - LPWSTR pwszBkupFile, pwszBkupUrl; - UINT idxBkup; - - if (!GetTempPathForURLDownload(pwszURL, &pwszTempFile)) - return E_INVALIDARG; - - if (ValidateFileExtension(pwszURL, &pwszFullUrl)) - pwszURL = pwszFullUrl; - - // We are going to save out the current file info in case of - // an error we can restore it to do native saves back to open location... - pstmBkupStm = m_pstmWebResource; m_pstmWebResource = NULL; - pwszBkupUrl = m_pwszWebResource; m_pwszWebResource = NULL; - pwszBkupFile = m_pwszSourceFile; m_pwszSourceFile = NULL; - pstgBkupStg = m_pstgSourceFile; m_pstgSourceFile = NULL; - idxBkup = m_idxSourceName; m_idxSourceName = 0; - - // Save the object to a new (temp) file on the local drive... - if (SUCCEEDED(hr = SaveToFile(pwszTempFile, TRUE))) - { - // Then upload from that file... - hr = IPPUploadWebResource(pwszTempFile, &pstmT, pwszURL, fOverwriteFile); - } - - // If both calls succeed, we can free the old file/url location info - // and save the new information, otherwise restore the old info from backup... - if (SUCCEEDED(hr)) - { - SAFE_RELEASE_INTERFACE(pstgBkupStg); - - if ((pstmBkupStm) && (pwszBkupFile)) - FPerformShellOp(FO_DELETE, pwszBkupFile, NULL); - - SAFE_RELEASE_INTERFACE(pstmBkupStm); - SAFE_FREESTRING(pwszBkupUrl); - SAFE_FREESTRING(pwszBkupFile); - - m_pstmWebResource = pstmT; - m_pwszWebResource = DsoCopyString(pwszURL); - //m_pwszSourceFile already saved in SaveStorageToFile - //m_pstgSourceFile already saved in SaveStorageToFile - //m_idxSourceName already calced in SaveStorageToFile; - - } - else - { - if (m_pstgSourceFile) - m_pstgSourceFile->Release(); - - if (m_pwszSourceFile) - { - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - DsoMemFree(m_pwszSourceFile); - } - - m_pstmWebResource = pstmBkupStm; - m_pwszWebResource = pwszBkupUrl; - m_pwszSourceFile = pwszBkupFile; - m_pstgSourceFile = pstgBkupStg; - m_idxSourceName = idxBkup; - } - - if (pwszFullUrl) - DsoMemFree(pwszFullUrl); - - DsoMemFree(pwszTempFile); - - } - else if ((m_pstmWebResource) && (m_pwszSourceFile)) - { - if (SUCCEEDED(hr = SaveToFile(NULL, TRUE))) - hr = IPPUploadWebResource(m_pwszSourceFile, &m_pstmWebResource, NULL, TRUE); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::DoOleCommand -// -// Calls IOleCommandTarget::Exec on the active object to do a specific -// command (like Print, SaveCopy, Zoom, etc.). -// -STDMETHODIMP CDsoDocObject::DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr; - OLECMD cmd = {dwOleCmdId, 0}; - TRACE2("CDsoDocObject::DoOleCommand(cmd=%d, Opts=%d\n", dwOleCmdId, dwOptions); - - // Can't issue OLECOMMANDs when in print preview mode (object calls us)... - if (InPrintPreview()) return E_ACCESSDENIED; - - // The server must support IOleCommandTarget, the CmdID being requested, and - // the command should be enabled. If this is the case, do the command... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) && (cmd.cmdf & OLECMDF_ENABLED))) - { - TRACE1("QueryStatus say supported = 0x%X\n", cmd.cmdf); - - // Do the command asked by caller on default command group... - hr = m_pcmdt->Exec(NULL, cmd.cmdID, dwOptions, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - - if ((dwOptions == OLECMDEXECOPT_PROMPTUSER)) - { - // Handle bug issue for PPT when printing using prompt... - if ((hr == E_INVALIDARG) && (cmd.cmdID == OLECMDID_PRINT) && IsPPTObject()) - { - ODS("Retry command for PPT\n"); - hr = m_pcmdt->Exec(NULL, cmd.cmdID, OLECMDEXECOPT_DODEFAULT, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - } - - // If user canceled an Office dialog, that's OK... - if (hr == 0x80040103) - hr = S_FALSE; - } - } - else - { - TRACE1("Command Not supportted (%d)\n", cmd.cmdf); - hr = DSO_E_COMMANDNOTSUPPORTED; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Close -// -// Close down the object and disconnect us from any handlers/proxies. -// -STDMETHODIMP CDsoDocObject::Close() -{ - HRESULT hr; - - ODS("CDsoDocObject::Close\n"); - m_fInClose = TRUE; - - // Make sure we are not in print preview before close... - if (InPrintPreview()) - ExitPrintPreview(TRUE); - - // Go ahead an IP deactivate the object... - hr = IPDeactivateView(); - - SAFE_RELEASE_INTERFACE(m_pprtprv); - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipactive); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Release the OLE object and cleanup... - if (m_pole) - { - // Free running lock if we set it... - FreeRunningLock(); - - // Tell server to release our client site... - m_pole->SetClientSite(NULL); - - // Finally, close the object and release the pointer... - hr = m_pole->Close(OLECLOSE_NOSAVE); - - if (m_fDisconnectOnQuit) - CoDisconnectObject((IUnknown*)m_pole, 0); - - SAFE_RELEASE_INTERFACE(m_pole); - } - - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - - // Free any temp file we might have... - if ((m_pstmWebResource) && (m_pwszSourceFile)) - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_FREESTRING(m_pwszSourceFile); - m_idxSourceName = 0; - - if (m_fDisconnectOnQuit) - { - CoDisconnectObject((IUnknown*)this, 0); - m_fDisconnectOnQuit = FALSE; - } - - SAFE_RELEASE_INTERFACE(m_pstmview); - SAFE_RELEASE_INTERFACE(m_pstgfile); - - ClearMergedMenu(); - m_fInClose = FALSE; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Notification Functions - The OCX should call these to -// let the doc site update the object as needed. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifySizeChange -// -// Resets the size of the site window and tells UI active object to -// resize as well. If we are UI active, we'll call ResizeBorder to -// re-negotiate toolspace (allow toolbars to shrink and grow), otherwise -// we'll just set the IP active view rect (minus any toolspace, which -// should be none since object is not UI active!). -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifySizeChange(LPRECT prc) -{ - RECT rc; - - SetRect(&rc, 0, 0, (prc->right - prc->left), (prc->bottom - prc->top)); - if (rc.right < 0) rc.right = 0; - if (rc.top < 0) rc.top = 0; - - // First, resize our frame site window tot he new size (don't change focus)... - if (m_hwnd) - { - m_rcViewRect = *prc; - - SetWindowPos(m_hwnd, NULL, m_rcViewRect.left, m_rcViewRect.top, - rc.right, rc.bottom, SWP_NOACTIVATE | SWP_NOZORDER); - - UpdateWindow(m_hwnd); - } - - // If we have an active object (i.e., Document is still UI active) we should - // tell it of the resize so it can re-negotiate border space... - if ((m_fObjectUIActive) && (m_pipactive)) - { - m_pipactive->ResizeBorder(&rc, (IOleInPlaceUIWindow*)&m_xOleInPlaceFrame, TRUE); - } - else if ((m_fObjectIPActive) && (m_pdocv)) - { - rc.left += m_bwToolSpace.left; rc.right -= m_bwToolSpace.right; - rc.top += m_bwToolSpace.top; rc.bottom -= m_bwToolSpace.bottom; - m_pdocv->SetRect(&rc); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyAppActivate -// -// Notify doc object when the top-level frame window goes active and -// deactive so it can handle window focs and paiting correctly. Failure -// to not forward this notification leads to bad behavior. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID) -{ - // This is critical for DocObject servers, so forward these messages - // when the object is UI active... - if (m_pipactive) - { - // We should always tell obj server when our frame activates, but - // don't tell it to go deactive if the thread gaining focus is - // the server's since our frame may have lost focus because of - // a top-level modeless dialog (ex., the RefEdit dialog of Excel)... - if (!m_fObjectInModalCondition) - m_pipactive->OnFrameWindowActivate(fActive); - } - - m_fAppWindowActive = fActive; -} - -STDMETHODIMP_(void) CDsoDocObject::OnNotifyControlFocus(BOOL fGotFocus) -{ - HWND hwnd; - - // For UI Active DocObject server, we will tell them we gain/lose control focus... - if ((m_pipactive) && (!m_fObjectInModalCondition)) - { - // TODO: Normally we would notify object of loss of control focus (such as user - // moving focus from framer control to another text box or something on the same - // form), but this can cause PPT to drop its toolbar and XL to drop its formula - // bar, so we are skipping this call. We really should determine if it is needed - // for another host (like Visio or something?) but that is to do... - // - // m_pipactive->OnDocWindowActivate(fGotFocus); - - // We should forward the focus to the active window if window with the focus - // is not already one that is parented to us... - if ((fGotFocus) && !IsWindowChild(m_hwnd, GetFocus()) && - SUCCEEDED(m_pipactive->GetWindow(&hwnd))) - SetFocus(hwnd); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyPaletteChanged -// -// Give the object first chance at realizing a palette. Important on -// 256 color machines, but not so critical these days when everyone is -// running full 32-bit True Color graphic cards. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyPaletteChanged(HWND hwndPalChg) -{ - if ((m_fObjectUIActive) && (m_hwndUIActiveObj)) - SendMessage(m_hwndUIActiveObj, WM_PALETTECHANGED, (WPARAM)hwndPalChg, 0L); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyChangeToolState -// -// This should be called to get object to show/hide toolbars as needed. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyChangeToolState(BOOL fShowTools) -{ - // Can't change toolbar state in print preview (sorry)... - if (InPrintPreview()) return; - - // If we want to show/hide toolbars, we can do the following... - if (fShowTools != (BOOL)m_fDisplayTools) - { - OLECMD cmd; - cmd.cmdID = OLECMDID_HIDETOOLBARS; - - m_fDisplayTools = fShowTools; - - // Use IOleCommandTarget(OLECMDID_HIDETOOLBARS) to toggle on/off. We have - // to check that server supports it and if its state matches our own so - // when toggle, we do the correct thing by the user... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) || (cmd.cmdf & OLECMDF_ENABLED))) - { - if (((m_fDisplayTools) && ((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED)) || - (!(m_fDisplayTools) && !((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED))) - { - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - else if (m_fDisplayTools && (IsWordObject() || IsPPTObject())) - { - // HACK: Word and PowerPoint 2007 do not report the correct latched state for the ribbon, - // so if we are trying to show the tools after hiding them, they will say they are already - // visible when the ribbon is not. This is an apparant trick they are using to force the - // ribbon visible in IE embed cases, but it is causing us problems. - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - // There can be focus issues when turning them off, so make sure - // the object is on top of the z-order... - if ((!m_fDisplayTools) && (m_hwndIPObject)) - BringWindowToTop(m_hwndIPObject); - - // If user toggles off the toolbar while the object is UI active, and - // we are not still in activation process, we need to explictly tell Office - // apps to also hide the "Web" toolbar. For Office, OLECMDID_HIDETOOLBARS puts - // the app into a "web view" which (in some apps) brings up the web toolbar. - // Since we intend to have no tools, we have to turn it off by code... - if ((m_fObjectUIActive) && (m_fObjectActivateComplete)) - TurnOffWebToolbar(!m_fDisplayTools); - - } - else if (m_pdocv) - { - // If we have a DocObj server, but no IOleCommandTarget, do things the hard - // way and resize. When server attempts to resize window it will have to - // re-negotiate BorderSpace and we fail there, so server "should" not - // display its tools (at least that is the idea!)... - RECT rc; GetClientRect(m_hwnd, &rc); - MapWindowPoints(m_hwnd, m_hwndCtl, (LPPOINT)&rc, 2); - OnNotifySizeChange(&rc); - } - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Protected Functions -- Helpers -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InstantiateDocObjectServer (protected) -// -// Startup OLE Document Object server and get IOleObject pointer. -// -STDMETHODIMP CDsoDocObject::InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole) -{ - HRESULT hr; - IUnknown *punk = NULL; - - ODS("CDsoDocObject::InstantiateDocObjectServer()\n"); - - // We perform custom create in order of local server then inproc server... - if (SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&punk)) || - SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&punk))) - { - // Ask for IOleObject interface... - if (SUCCEEDED(hr = punk->QueryInterface(IID_IOleObject, (void**)ppole))) - { - // TODO: Add strong connection to remote server (IExternalConnection??)... - } - punk->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateObjectStorage (protected) -// -// Makes the internal IStorage to host the object and assigns the CLSID. -// -STDMETHODIMP CDsoDocObject::CreateObjectStorage(REFCLSID rclsid) -{ - HRESULT hr; - LPWSTR pwszName; - DWORD dwid; - CHAR szbuf[256]; - - if ((!m_pstgroot)) return E_UNEXPECTED; - - // Next, create a new object storage (with unique name) in our - // temp root storage "file" (this keeps an OLE integrity some servers - // need to function correctly instead of IP activating from file directly). - - // We make a fake object storage name... - dwid = ((rclsid.Data1)|GetTickCount()); - wsprintf(szbuf, "OLEDocument%X", dwid); - - if (!(pwszName = DsoConvertToLPWSTR(szbuf))) - return E_OUTOFMEMORY; - - // Create the sub-storage... - hr = m_pstgroot->CreateStorage(pwszName, - STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstgfile); - - DsoMemFree(pwszName); - - if (FAILED(hr)) return hr; - - // We'll also create a stream for OLE view settings (non-critical)... - if (pwszName = DsoConvertToLPWSTR(szbuf)) - { - m_pstgroot->CreateStream(pwszName, - STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstmview); - DsoMemFree(pwszName); - } - - // Finally, write out the CLSID for the new substorage... - hr = WriteClassStg(m_pstgfile, rclsid); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveObjectStorage (protected) -// -// Saves the object back to the internal IStorage. Returns S_FALSE if -// there is no file storage for this document (it depends on how file -// was loaded). In most cases we should have one, and this copies data -// into the internal storage for save. -// -STDMETHODIMP CDsoDocObject::SaveObjectStorage() -{ - HRESULT hr = S_FALSE; - IPersistStorage *pipstg = NULL; - - // Got to have object to save state... - if (!m_pole) return E_UNEXPECTED; - - // If we have file storage, ask for IPersist and Save (commit changes)... - if ((m_pstgfile) && - SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - if (SUCCEEDED(hr = pipstg->Save(m_pstgfile, TRUE))) - hr = pipstg->SaveCompleted(NULL); - - hr = m_pstgfile->Commit(STGC_DEFAULT); - pipstg->Release(); - } - - // Go ahead and save the view state if view still active (non-critical)... - if ((m_pdocv) && (m_pstmview)) - { - m_pdocv->SaveViewState(m_pstmview); - m_pstmview->Commit(STGC_DEFAULT); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToMoniker (protected) -// -// Saves document to location spcified by the moniker passed. The server -// needs to support either IPersistMoniker or IPersistFile. This is used -// primarily when document was opened by moniker instead of storage. -// -STDMETHODIMP CDsoDocObject::SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistMoniker *prstmk; - LPOLESTR pwszFullName = NULL; - - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - CHECK_NULL_RETURN(pmk, E_POINTER); - - // Get IPersistMoniker interface and ask it to save context if it existing moniker... - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistMoniker, (void**)&prstmk))) - { - hr = prstmk->Save(pmk, pbc, fKeepLock); - prstmk->Release(); - } - - // If that failed to work, switch to IPersistFile and use full path to the new file... - if (FAILED(hr) && SUCCEEDED(hr = pmk->GetDisplayName(pbc, NULL, &pwszFullName))) - { - hr = SaveDocToFile(pwszFullName, fKeepLock); - CoTaskMemFree(pwszFullName); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToFile (protected) -// -// Saves document to location spcified by the path passed. The server -// needs to support either IPersistFile. -// -STDMETHODIMP CDsoDocObject::SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistFile *pipfile = NULL; - - BOOL fSameAsOpen = ((m_pwszSourceFile) && - DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - m_pwszSourceFile, lstrlenW(m_pwszSourceFile)) == CSTR_EQUAL); - - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { -#ifdef DSO_WORD12_PERSIST_BUG - LPOLESTR pwszWordCurFile = NULL; - // HACK: Word 2007 RTM has a bug in its IPersistFile::Save method which will cause it to save - // to the old file location and not the new one, so if the document being saved is a Word - // object and we are saving to a new file, then got to run this hack to copy the saved bits - // to the correct location... - if (IsWordObject()) - { - hr = pipfile->GetCurFile(&pwszWordCurFile); - if ((fSameAsOpen) && (pwszWordCurFile)) - { - // Check again if Word thinks the file is the same as we do... - fSameAsOpen = (DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - pwszWordCurFile, lstrlenW(pwszWordCurFile)) == CSTR_EQUAL); - if (fSameAsOpen) - { // If it is the same file after all, we don't need to do the hack... - CoTaskMemFree(pwszWordCurFile); - pwszWordCurFile = NULL; - } - } - } -#endif - - // Do the save using file path or NULL if we are saving to current file... - //hr = pipfile->Save((fSameAsOpen ? NULL : pwszFullName), fKeepLock); - hr = pipfile->Save(pwszFullName, fKeepLock); - -#ifdef DSO_WORD12_PERSIST_BUG - // HACK: If we have the pwszWordCurFile, we'll assume Word 12 RTM might have saved this, and we - // need to check if Word saved to the right path or not. So check the paths, and if the new - // file is not there, copy the file Word saved to the new location... - if (pwszWordCurFile) - { - if (SUCCEEDED(hr) && !FFileExists(pwszFullName) && FFileExists(pwszWordCurFile)) - { - if (!FPerformShellOp(FO_COPY, pwszWordCurFile, pwszFullName)) - hr = E_ACCESSDENIED; - } - CoTaskMemFree(pwszWordCurFile); - } - // Hopefully, Word should have this fixed by Office 2007 SP1 and we can remove this hack! -#endif - pipfile->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateDocObjectServer (protected) -// -// Quick validation check to see if CLSID is for DocObject server. -// -// Officially, the only way to determine if a server supports ActiveX -// Document embedding is to IP activate it and ask for IOleDocument, -// but that means going through the IP process just to fail if IOleDoc -// is not supported. Therefore, we are going to rely on the server's -// honesty in setting its reg keys to include the "DocObject" sub key -// under their CLSID. -// -// This is 99% accurate. For those servers that fail, too bad charlie! -// -STDMETHODIMP CDsoDocObject::ValidateDocObjectServer(REFCLSID rclsid) -{ - HRESULT hr = DSO_E_INVALIDSERVER; - CHAR szKeyCheck[256]; - LPSTR pszClsid; - HKEY hkey; - - // We don't handle MSHTML even though it is DocObject server. If you plan - // to view web pages in browser-like context, best to use WebBrowser control... - if (rclsid == CLSID_MSHTML_DOCUMENT) - return hr; - - // Convert the CLSID to a string and check for DocObject sub key... - if (pszClsid = DsoCLSIDtoLPSTR(rclsid)) - { - wsprintf(szKeyCheck, "CLSID\\%s\\DocObject", pszClsid); - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szKeyCheck, 0, KEY_READ, &hkey) == ERROR_SUCCESS) - { - hr = S_OK; - RegCloseKey(hkey); - } - - DsoMemFree(pszClsid); - } - else hr = E_OUTOFMEMORY; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::GetDocumentTypeAndFileExtension -// -// Returns default file type and extension for a save of embedded object. -// -STDMETHODIMP_(BOOL) CDsoDocObject::GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt) -{ - DWORD dwType, dwSize; - LPWSTR pwszExt = NULL; - LPWSTR pwszType = NULL; - LPSTR pszType = NULL; - LPSTR pszClsid; - CHAR szkey[255]; - CHAR szbuf[255]; - HKEY hk; - - if ((ppwszFileType == NULL) && (ppwszFileExt == NULL)) - return FALSE; - - pszClsid = DsoCLSIDtoLPSTR(m_clsidObject); - if (!pszClsid) return FALSE; - - wsprintf(szkey, "CLSID\\%s\\DefaultExtension", pszClsid); - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szkey, 0, KEY_READ, &hk) == ERROR_SUCCESS) - { - LPSTR pszT = szbuf; szbuf[0] = '\0'; dwSize = 255; - if (RegQueryValueEx(hk, NULL, 0, &dwType, (BYTE*)pszT, &dwSize) == ERROR_SUCCESS) - { - while (*(pszT++) && (*pszT != ',')) - (void)(0); - - if (*pszT == ',') - (pszType = pszT)++; - - *pszT = '\0'; - } - else lstrcpy(szbuf, ".ole"); - - RegCloseKey(hk); - } - else lstrcpy(szbuf, ".ole"); - - pwszExt = DsoConvertToLPWSTR(szbuf); - if (ppwszFileExt) *ppwszFileExt = pwszExt; - - if (ppwszFileType) - { - ULONG cb1, cb2; - LPWSTR pwszCombined; - CHAR szUnknownType[255]; - - if (!(*pszType)) - { - szUnknownType[0] = '\0'; - wsprintf(szUnknownType, "Native Document (*%s)", szbuf); - pszType = szUnknownType; - } - pwszType = DsoConvertToLPWSTR(pszType); - - cb1 = lstrlenW(pwszExt); - cb2 = lstrlenW(pwszType); - - pwszCombined = (LPWSTR)DsoMemAlloc(((cb1 + cb2 + 4) * sizeof(WCHAR))); - if (pwszCombined) - { - memcpy(&pwszCombined[0], pwszType,(cb2 * sizeof(WCHAR))); - pwszCombined[cb2] = L'\0'; - - pwszCombined[cb2 + 1] = L'*'; - memcpy(&pwszCombined[cb2 + 2], pwszExt, (cb1 * sizeof(WCHAR))); - pwszCombined[cb2 + 2 + cb1] = L'\0'; - pwszCombined[cb2 + 3 + cb1] = L'\0'; - - DsoMemFree(pwszType); - } - - *ppwszFileType = ((pwszCombined) ? pwszCombined : pwszType); - } - - if ((ppwszFileExt == NULL) && (pwszExt)) - DsoMemFree(pwszExt); - - DsoMemFree(pszClsid); - return (((ppwszFileExt) && (*ppwszFileExt)) || - ((ppwszFileType) && (*ppwszFileType))); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateFileExtension (protected) -// -// Adds a default extension to save file path if user didn't provide -// one (uses CLSID and registry to determine default extension). -// -STDMETHODIMP_(BOOL) CDsoDocObject::ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut) -{ - BOOL fHasExt = FALSE; - BOOL fChangedExt = FALSE; - LPWSTR pwszT; - LPWSTR pwszExt = NULL; - DWORD dw; - - if ((pwszFile) && (dw = lstrlenW(pwszFile)) && (ppwszOut)) - { - *ppwszOut = NULL; - - pwszT = (pwszFile + dw); - while ((pwszT != pwszFile) && - (*(--pwszT)) && ((*pwszT != L'\\') && (*pwszT != L'/'))) - { - if (*pwszT == L'.') fHasExt = TRUE; - } - - if (!(fHasExt) && GetDocumentTypeAndFileExtension(NULL, &pwszExt)) - { - *ppwszOut = DsoCopyStringCat(pwszFile, pwszExt); - fChangedExt = ((*ppwszOut) != NULL); - } - } - - return fChangedExt; -} - - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::EnsureOleServerRunning (protected) -// -// Verifies the DocObject server is running and is optionally locked -// while the embedding is taking place. -// -STDMETHODIMP CDsoDocObject::EnsureOleServerRunning(BOOL fLockRunning) -{ - HRESULT hr = S_FALSE; - IBindCtx *pbc; - IRunnableObject *pro; - IOleContainer *pocnt; - BIND_OPTS bnd = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, (STGM_READWRITE|STGM_SHARE_EXCLUSIVE), 10000}; - - TRACE1("CDsoDocObject::EnsureOleServerRunning(%d)\n", (DWORD)fLockRunning); - if (m_pole == NULL) return E_FAIL; - - // If we are already locked, don't need to do this again... - if (m_fLockedServerRunning) - return hr; - - // Create a bind ctx... - if (FAILED(CreateBindCtx(0, &pbc))) - return E_UNEXPECTED; - - // Setup default bind options for the run operation... - pbc->SetBindOptions(&bnd); - - // Get IRunnableObject and set server to run as OLE object. We check the - // running state first since this is proper OLE, but note that this is not - // returned from out-of-proc server, but the in-proc handler. Also note, we - // specify a timeout in case the object never starts, and "check" the object - // runs without IMessageFilter errors... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - - // If the object is not currently running, let's run it... - if (!(pro->IsRunning())) - hr = pro->Run(pbc); - - // Set the object server as a contained object (i.e., OLE object)... - pro->SetContainedObject(TRUE); - - // Lock running if desired... - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pro->LockRunning(TRUE, TRUE)); - - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pocnt->LockContainer(TRUE)); - - pocnt->Release(); - } - - pbc->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FreeRunningLock (protected) -// -// Free any previous lock made by EnsureOleServerRunning. -// -STDMETHODIMP_(void) CDsoDocObject::FreeRunningLock() -{ - IRunnableObject *pro; - IOleContainer *pocnt; - - ODS("CDsoDocObject::FreeRunningLock(%d)\n"); - ASSERT(m_pole); - - // Don't do anything if we didn't lock the server... - if (m_fLockedServerRunning == FALSE) - return; - - // Get IRunnableObject and free lock... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - pro->LockRunning(FALSE, TRUE); - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - pocnt->LockContainer(FALSE); - pocnt->Release(); - } - - m_fLockedServerRunning = FALSE; - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SetRunningServerLock -// -// Sets an external lock on the running object server. -// -STDMETHODIMP CDsoDocObject::SetRunningServerLock(BOOL fLock) -{ - HRESULT hr; - TRACE1("CDsoDocObject::SetRunningServerLock(%d)\n", (DWORD)fLock); - - // Word doesn't obey normal running lock, but does have method to explicitly - // lock the server for mail, so we'll use that in the Word case... - if (IsWordObject()) - { - IClassFactory *pcf = NULL; - interface ifoo : public IUnknown - { - STDMETHOD(_uncall)() PURE; - STDMETHOD(lock)(BOOL f) PURE; - } *pi = NULL; - const GUID iidifoo = {0x0006729A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; - - SEH_TRY - hr = CoGetClassObject(CLSID_WORD_DOCUMENT_DOC, CLSCTX_LOCAL_SERVER, NULL, IID_IClassFactory, (void**)&pcf); - if (SUCCEEDED(hr) && (pcf)) - { - hr = pcf->QueryInterface(iidifoo, (void**)&pi); - if (SUCCEEDED(hr) && (pi)) - { - hr = pi->lock(fLock); - pi->Release(); - } - pcf->Release(); - } - SEH_EXCEPT(hr) - } - else - { - if (fLock) - { - hr = EnsureOleServerRunning(TRUE); - } - else - { - hr = (FreeRunningLock(), S_OK); - } - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateIPPBindResource (protected) -// -// Returns an instance of MSDAIPP URL resource provider which is used by -// Office/Windows for Web Folders (DAV/FPSE server). -// -STDMETHODIMP_(IUnknown*) CDsoDocObject::CreateIPPBindResource() -{ - HRESULT hr; - IDBProperties* pdbprops = NULL; - IBindResource* pres = NULL; - DBPROPSET rdbpset; - DBPROP rdbp[4]; - BSTR bstrLock; - DWORD dw = 256; - CHAR szUserName[256]; - - if (FAILED(CoCreateInstance(CLSID_MSDAIPP_BINDER, NULL, - CLSCTX_INPROC, IID_IDBProperties, (void**)&pdbprops))) - return NULL; - - bstrLock = (GetUserName(szUserName, &dw) ? DsoConvertToBSTR(szUserName) : NULL); - - memset(rdbp, 0, sizeof(4 * sizeof(DBPROP))); - - rdbpset.cProperties = 4; - rdbpset.guidPropertySet = DBPROPSET_DBINIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = DBPROP_INIT_BINDFLAGS; - rdbp[0].vValue.vt = VT_I4; - rdbp[0].vValue.lVal = DBBINDURLFLAG_OUTPUT; - - rdbp[1].dwPropertyID = DBPROP_INIT_LOCKOWNER; - rdbp[1].vValue.vt = VT_BSTR; - rdbp[1].vValue.bstrVal = bstrLock; - - rdbp[2].dwPropertyID = DBPROP_INIT_LCID; - rdbp[2].vValue.vt = VT_I4; - rdbp[2].vValue.lVal = GetThreadLocale(); - - rdbp[3].dwPropertyID = DBPROP_INIT_PROMPT; - rdbp[3].vValue.vt = VT_I2; - rdbp[3].vValue.iVal = DBPROMPT_COMPLETE; - - if (pdbprops->SetProperties(1, &rdbpset) == S_OK) - { -#ifdef DSO_MSDAIPP_USE_DAVONLY - BSTR bstrClsid = SysAllocString(L"{9FECD570-B9D4-11D1-9C78-0000F875AC61}"); - if (bstrClsid) - { - rdbpset.cProperties = 1; - rdbpset.guidPropertySet = DBPROPSET_MSDAIPP_INIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = 6; // DBPROP_INIT_PROTOCOLPROVIDER; - rdbp[0].vValue.vt = VT_BSTR; - rdbp[0].vValue.bstrVal = bstrClsid; - - hr = pdbprops->SetProperties(1, &rdbpset); - SysFreeString(bstrClsid); - } -#endif - hr = pdbprops->QueryInterface(IIDX_IBindResource, (void**)&pres); - } - - SAFE_FREEBSTR(bstrLock); - pdbprops->Release(); - - return (IUnknown*)pres; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPDownloadWebResource (protected) -// -// Downloads the file specified by the URL to the given temp file. Locks -// the web resource for editing if ppstmKeepForSave is requested. -// -STDMETHODIMP CDsoDocObject::IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave) -{ - HRESULT hr = E_UNEXPECTED; - IStream *pstm = NULL; - IBindResource *pres = NULL; - BYTE *rgbBuf; - DWORD dwStatus, dwBindFlags; - ULONG cbRead, cbWritten; - HANDLE hFile; - - // Sanity check... - if ((pwszURL == NULL) || (pwszFile == NULL) || (ppstmKeepForSave == NULL)) - return E_INVALIDARG; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - rgbBuf = new BYTE[10240]; //a 10-k buffer for reading - if (!rgbBuf) return E_OUTOFMEMORY; - - // Use IBindResource::Bind to open an IStream and copy out the date to - // the file given. This will then be used to load the object from the file... - if (SUCCEEDED(m_punkIPPResource->QueryInterface(IIDX_IBindResource, (void**)&pres))) - { - dwBindFlags = (DBBINDURLFLAG_READ | DBBINDURLFLAG_WRITE | DBBINDURLFLAG_OUTPUT | DBBINDURLFLAG_SHARE_DENY_WRITE); -callagain: - if (SUCCEEDED(hr = pres->Bind(NULL, pwszURL, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, (IUnknown**)&pstm))) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - if (FOpenLocalFile(pwszFile, GENERIC_WRITE, 0, CREATE_ALWAYS, &hFile)) - { - while (SUCCEEDED(hr)) - { - if (FAILED(hr = pstm->Read((void*)rgbBuf, 10240, &cbRead)) || - (cbRead == 0)) - break; - - if (FALSE == WriteFile(hFile, rgbBuf, cbRead, &cbWritten, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - } - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - SAFE_SET_INTERFACE(*ppstmKeepForSave, pstm); - - pstm->Release(); - } - else if ((hr == DB_E_NOTSUPPORTED) && ((dwBindFlags & DBBINDURLFLAG_OUTPUT) == DBBINDURLFLAG_OUTPUT)) - { - // WEC4 does not support DBBINDURLFLAG_OUTPUT flag, but if we are using WEC - // we don't really need the flag since this is not an HTTP GET call. Flip the - // flag off and call the method again to connect to server... - dwBindFlags &= ~DBBINDURLFLAG_OUTPUT; - goto callagain; - } - - pres->Release(); - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_NOTFOUND: hr = STG_E_FILENOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - delete [] rgbBuf; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPUploadWebResource (protected) -// -// Uploads the file to a URL. The code can be used two ways: -// -// 1.) If ppstmSave contains a pointer to an existing IStream*, then we -// just upload to the existing stream. This allows for normal "Save" -// on an open web resource. -// -// 2.) If ppstmSave is NULL (or contains a NULL IStream*), we create a new -// web resource at the location given by pwszURLSaveTo and save to its -// stream. If ppstmSave is passed, we return the new IStream* to the -// caller who can then use it to do the other type of save next time. -// -STDMETHODIMP CDsoDocObject::IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - ICreateRow *pcrow = NULL; - IStream *pstm = NULL; - BYTE *rgbBuf; - HANDLE hFile; - BOOL fstmIn = FALSE; - ULONG cbRead, cbWritten; - DWORD dwStatus, dwBindFlags; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - // Check if this a "Save" on existing IStream* and jump to loop... - if ((ppstmSave) && (fstmIn = (BOOL)(pstm = *ppstmSave))) - goto uploadfrominstm; - - // Check the URL string and ask for ICreateRow (to make new web resource)... - if (!(pwszURLSaveTo) || !LooksLikeHTTP(pwszURLSaveTo) || - FAILED(m_punkIPPResource->QueryInterface(IIDX_ICreateRow, (void**)&pcrow))) - return hr; - - dwBindFlags = ( DBBINDURLFLAG_READ | - DBBINDURLFLAG_WRITE | - DBBINDURLFLAG_SHARE_DENY_WRITE | - (fOverwriteFile ? DBBINDURLFLAG_OVERWRITE : 0)); - - if (SUCCEEDED(hr = pcrow->CreateRow(NULL, pwszURLSaveTo, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, NULL, (IUnknown**)&pstm))) - { - - // Once we are here, we have a stream (either handed in or opened from above). - // We just loop through and read from the file to the stream... -uploadfrominstm: - if (rgbBuf = new BYTE[10240]) //a 10-k buffer for reading - { - if (FOpenLocalFile(pwszFile, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, &hFile)) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - while (SUCCEEDED(hr)) - { - if (FALSE == ReadFile(hFile, rgbBuf, 10240, &cbRead, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - - if (0 == cbRead) break; - - if (FAILED(hr = pstm->Write((void*)rgbBuf, cbRead, &cbWritten))) - break; - } - - // Need to commit the changes to make it official... - if (SUCCEEDED(hr)) - hr = pstm->Commit(STGC_DEFAULT); - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - delete [] rgbBuf; - } - else hr = E_OUTOFMEMORY; - - // If we are not using a passed in IStream (and therefore created one), we - // should AddRef and pass back (if caller asked us to)... - if (!fstmIn) - { - if (SUCCEEDED(hr) && (ppstmSave) && (!(*ppstmSave))) - { - SAFE_SET_INTERFACE(*ppstmSave, pstm); - } - pstm->Release(); - } - - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_RESOURCEEXISTS: hr = STG_E_FILEALREADYEXISTS; break; - case DB_E_NOTFOUND: hr = STG_E_PATHNOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case DB_E_OUTOFSPACE: hr = STG_E_MEDIUMFULL; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - if (pcrow) - pcrow->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::TurnOffWebToolbar (protected) -// -// This function "turns off" the Web toolbar used by Office apps to -// do in-site navigation. The problem is when toggling tools off the -// bar may still be visible, so we have to explicitly turn it off if -// we want a true "no tool" state. -// -// This should *only* be called when turnning off the bars after object -// if inplace active. The call to OLECMDID_HIDETOOLBARS should hide all -// the primay toolbars, so we are just catching those attached to the -// document collection itself that are not in primary set. -// -STDMETHODIMP_(void) CDsoDocObject::TurnOffWebToolbar(BOOL fTurnedOff) -{ - IDispatch *pdisp; - VARIANT vtT[5]; - - ODS("CDsoDocObject::TurnOffWebToolbar()\n"); - - // Can't change toolbar state in print preview... - if (InPrintPreview()) return; - - if ((m_pipactive) && - (SUCCEEDED(m_pipactive->QueryInterface(IID_IDispatch, (void**)&pdisp))) && (pdisp)) - { - // Get the commandbars on the document object.... - if (SUCCEEDED(DsoDispatchInvoke(pdisp, - L"CommandBars", 0, DISPATCH_PROPERTYGET, 0, NULL, &vtT[0]))) - { - // Turn off Web toolbar... - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Web"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - - // Word 2002/2003 also displays Reviewing toolbar, so kill it too... - if (fTurnedOff && IsWordObject()) - { - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Reviewing"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - } - - VariantClear(&vtT[0]); - } - - pdisp->Release(); - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ClearMergedMenu (protected) -// -// Frees the merged menu set by host. -// -STDMETHODIMP_(void) CDsoDocObject::ClearMergedMenu() -{ - if (m_hMenuMerged) - { - int cbMenuCnt = GetMenuItemCount(m_hMenuMerged); - for (int i = cbMenuCnt; i >= 0; --i) - RemoveMenu(m_hMenuMerged, i, MF_BYPOSITION); - - DestroyMenu(m_hMenuMerged); - m_hMenuMerged = NULL; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CalcDocNameIndex (protected) -// -// Calculates position of the name portion of the full path string. -// -STDMETHODIMP_(DWORD) CDsoDocObject::CalcDocNameIndex(LPCWSTR pwszPath) -{ - DWORD cblen, idx = 0; - if ((pwszPath) && ((cblen = lstrlenW(pwszPath)) > 1)) - { - for (idx = cblen; idx > 0; --idx) - { - if (pwszPath[idx] == L'\\') - break; - } - - if ((idx) && !(++idx < cblen)) - idx = 0; - } - return idx; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnDraw (protected) -// -// Site drawing (does nothing in this version). -// -STDMETHODIMP_(void) CDsoDocObject::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - // Don't have to draw anything, object does all this because we are - // always UI active. If we allowed for multiple objects and had some - // non-UI active, we would have to do some drawing, but that will not - // happen in this sample. -} - - -//////////////////////////////////////////////////////////////////////// -// -// ActiveX Document Site Interfaces -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject IUnknown Interface Methods -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoDocObject::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoDocObject::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if (IID_IOleClientSite == riid) - { - *ppv = (IOleClientSite*)&m_xOleClientSite; - } - else if ((IID_IOleInPlaceSite == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceSite*)&m_xOleInPlaceSite; - } - else if (IID_IOleDocumentSite == riid) - { - *ppv = (IOleDocumentSite*)&m_xOleDocumentSite; - } - else if ((IID_IOleInPlaceFrame == riid) || (IID_IOleInPlaceUIWindow == riid)) - { - *ppv = (IOleInPlaceFrame*)&m_xOleInPlaceFrame; - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&m_xOleCommandTarget; - } - else if (IIDX_IAuthenticate == riid) - { - *ppv = (IAuthenticate*)&m_xAuthenticate; - } - else if (IID_IServiceProvider == riid) - { - *ppv = (IServiceProvider*)&m_xServiceProvider; - } - else if (IID_IContinueCallback == riid) - { - *ppv = (IContinueCallback*)&m_xContinueCallback; - } - else if (IID_IOlePreviewCallback == riid) - { - *ppv = (IOlePreviewCallback*)&m_xPreviewCallback; - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::AddRef(void) -{ - TRACE1("CDsoDocObject::AddRef - %d\n", m_cRef + 1); - return ++m_cRef; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::Release(void) -{ - TRACE1("CDsoDocObject::Release - %d\n", m_cRef - 1); - return --m_cRef; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleClientSite -- IOleClientSite Implementation -// -// STDMETHODIMP SaveObject(void); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhich, LPMONIKER* ppmk); -// STDMETHODIMP GetContainer(LPOLECONTAINER* ppContainer); -// STDMETHODIMP ShowObject(void); -// STDMETHODIMP OnShowWindow(BOOL fShow); -// STDMETHODIMP RequestNewObjectLayout(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleClientSite) - -STDMETHODIMP CDsoDocObject::XOleClientSite::SaveObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::SaveObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk) -{ - HRESULT hr = OLE_E_CANT_GETMONIKER; - METHOD_PROLOGUE(CDsoDocObject, OleClientSite); - - TRACE2("CDsoDocObject::XOleClientSite::GetMoniker(%d, %d)\n", dwAssign, dwWhichMoniker); - CHECK_NULL_RETURN(ppmk, E_POINTER); - *ppmk = NULL; - - // Provide moniker for object opened by moniker... - switch(dwWhichMoniker) - { - case OLEWHICHMK_OBJREL: - case OLEWHICHMK_OBJFULL: - { - if (pThis->m_pmkSourceFile) - { - *ppmk = pThis->m_pmkSourceFile; - hr = S_OK; - } - else if (dwAssign == OLEGETMONIKER_FORCEASSIGN) - { - // TODO: Should we allow frce create of moniker if we don't start with it? - } - } - break; - } - - // Need to AddRef returned value to caller on success... - if ((hr == S_OK) && (*ppmk)) - ((IUnknown*)*ppmk)->AddRef(); - - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetContainer(IOleContainer** ppContainer) -{ - ODS("CDsoDocObject::XOleClientSite::GetContainer\n"); - if (ppContainer) *ppContainer = NULL; - return E_NOINTERFACE; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::ShowObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::ShowObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::OnShowWindow(BOOL fShow) -{ - ODS("CDsoDocObject::XOleClientSite::OnShowWindow\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::RequestNewObjectLayout(void) -{ - ODS("CDsoDocObject::XOleClientSite::RequestNewObjectLayout\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceSite -- IOleInPlaceSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP CanInPlaceActivate(void); -// STDMETHODIMP OnInPlaceActivate(void); -// STDMETHODIMP OnUIActivate(void); -// STDMETHODIMP GetWindowContext(LPOLEINPLACEFRAME* ppIIPFrame, LPOLEINPLACEUIWINDOW* ppIIPUIWindow, LPRECT prcPos, LPRECT prcClip, LPOLEINPLACEFRAMEINFO pFI); -// STDMETHODIMP Scroll(SIZE sz); -// STDMETHODIMP OnUIDeactivate(BOOL fUndoable); -// STDMETHODIMP OnInPlaceDeactivate(void); -// STDMETHODIMP DiscardUndoState(void); -// STDMETHODIMP DeactivateAndUndo(void); -// STDMETHODIMP OnPosRectChange(LPCRECT prcPos); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceSite) - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindow(HWND* phwnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp(BOOL fEnterMode) -{ - ODS("CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate\n"); - - if ((!pThis->m_pole) || - FAILED(pThis->m_pole->QueryInterface(IID_IOleInPlaceObject, (void **)&(pThis->m_pipobj)))) - return E_UNEXPECTED; - - pThis->m_fObjectIPActive = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIActivate\n"); - pThis->m_fObjectUIActive = TRUE; - pThis->m_pipobj->GetWindow(&(pThis->m_hwndIPObject)); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindowContext(IOleInPlaceFrame** ppFrame, - IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindowContext\n"); - - if (ppFrame) - { SAFE_SET_INTERFACE(*ppFrame, &(pThis->m_xOleInPlaceFrame)); } - - if (ppDoc) - *ppDoc = NULL; - - if (lprcPosRect) - *lprcPosRect = pThis->m_rcViewRect; - - if (lprcClipRect) - *lprcClipRect = *lprcPosRect; - - memset(lpFrameInfo, 0, sizeof(OLEINPLACEFRAMEINFO)); - lpFrameInfo->cb = sizeof(OLEINPLACEFRAMEINFO); - lpFrameInfo->hwndFrame = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::Scroll(SIZE sz) -{ - ODS("CDsoDocObject::XOleInPlaceSite::Scroll\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIDeactivate(BOOL fUndoable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIDeactivate\n"); - - pThis->m_fObjectUIActive = FALSE; - pThis->m_xOleInPlaceFrame.SetMenu(NULL, NULL, NULL); - SetFocus(pThis->m_hwnd); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate\n"); - - pThis->m_fObjectIPActive = FALSE; - pThis->m_hwndIPObject = NULL; - SAFE_RELEASE_INTERFACE((pThis->m_pipobj)); - - pThis->m_fAttemptPptPreview = FALSE; - pThis->m_fObjectActivateComplete = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DiscardUndoState(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::DiscardUndoState\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo\n"); - if (pThis->m_pipobj) pThis->m_pipobj->InPlaceDeactivate(); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnPosRectChange(LPCRECT lprcPosRect) -{ - ODS("CDsoDocObject::XOleInPlaceSite::OnPosRectChange\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleDocumentSite -- IOleDocumentSite Implementation -// -// STDMETHODIMP ActivateMe(IOleDocumentView* pView); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleDocumentSite) - -STDMETHODIMP CDsoDocObject::XOleDocumentSite::ActivateMe(IOleDocumentView* pView) -{ - METHOD_PROLOGUE(CDsoDocObject, OleDocumentSite); - ODS("CDsoDocObject::XOleDocumentSite::ActivateMe\n"); - - HRESULT hr = E_FAIL; - IOleDocument* pmsodoc; - - // If we're passed a NULL view pointer, then try to get one from - // the document object (the object within us). - if (pView) - { - // Make sure that the view has our client site - hr = pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - pView->AddRef(); // we will be keeping the object if successful.. - } - else if (pThis->m_pole) - { - // Create a new view from the OleDocument... - if (FAILED(pThis->m_pole->QueryInterface(IID_IOleDocument, (void **)&pmsodoc))) - return E_FAIL; - - hr = pmsodoc->CreateView((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite), - pThis->m_pstmview, 0, &pView); - - pmsodoc->Release(); - } - - // If we have the view, apply view state... - if (SUCCEEDED(hr) && (pThis->m_pstmview)) - hr = pView->ApplyViewState(pThis->m_pstmview); - - // If any of the above failed, release the view and return... - if (FAILED(hr)) - { - SAFE_RELEASE_INTERFACE(pView); - return hr; - } - - // keep the view pointer... - pThis->m_pdocv = pView; - - // Get a command target (if available)... - pView->QueryInterface(IID_IOleCommandTarget, (void**)&(pThis->m_pcmdt)); - - // Make sure that the view has our client site - pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - // This sets up toolbars and menus first - if (SUCCEEDED(hr = pView->UIActivate(TRUE))) - { - // Set the window size sensitive to new toolbars - pView->SetRect(&(pThis->m_rcViewRect)); - - // Makes it all active - pView->Show(TRUE); - - pThis->m_fAppWindowActive = TRUE; - pThis->m_fObjectActivateComplete = TRUE; - - // Toogle tools off if that's what user wants... - if (!(pThis->m_fDisplayTools)) - { - pThis->m_fDisplayTools = TRUE; - pThis->OnNotifyChangeToolState(FALSE); - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceFrame -- IOleInPlaceFrame Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); -// STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); -// STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); -// STDMETHODIMP RemoveMenus(HMENU hMenu); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceFrame) - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetWindow\n"); - return pThis->m_xOleInPlaceSite.GetWindow(phWnd); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp(BOOL fEnterMode) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp\n"); - return pThis->m_xOleInPlaceSite.ContextSensitiveHelp(fEnterMode); -} - - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetBorder\n"); - CHECK_NULL_RETURN(prcBorder, E_POINTER); - - // If we don't allow Toolspace, and we are already active, give - // no space for tools (ie, hide toolabrs), otherwise give as much we can... - if (!(pThis->m_fDisplayTools) && (pThis->m_pipactive)) - SetRectEmpty(prcBorder); - else - GetClientRect(pThis->m_hwnd, prcBorder); - - TRACE_LPRECT("prcBorder", prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pBW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace\n"); - CHECK_NULL_RETURN(pBW, E_POINTER); - TRACE_LPRECT("pBW", pBW); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetBorderSpace(LPCBORDERWIDTHS pBW) -{ - RECT rc; - - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetBorderSpace\n"); - - if (pBW){TRACE_LPRECT("pBW", pBW);} - - GetClientRect(pThis->m_hwnd, &rc); - SetRectEmpty((RECT*)&(pThis->m_bwToolSpace)); - - if (pBW) - { - pThis->m_bwToolSpace = *pBW; - rc.left += pBW->left; rc.right -= pBW->right; - rc.top += pBW->top; rc.bottom -= pBW->bottom; - } - - // Save the current view RECT (space minus tools)... - pThis->m_rcViewRect = rc; - - // Update the active document (if alive)... - if (pThis->m_pdocv) - pThis->m_pdocv->SetRect(&(pThis->m_rcViewRect)); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetActiveObject\n"); - - SAFE_RELEASE_INTERFACE((pThis->m_pipactive)); - pThis->m_hwndUIActiveObj = NULL; - pThis->m_dwObjectThreadID = 0; - - if (pIIPActiveObj) - { - SAFE_SET_INTERFACE(pThis->m_pipactive, pIIPActiveObj); - pIIPActiveObj->GetWindow(&(pThis->m_hwndUIActiveObj)); - pThis->m_dwObjectThreadID = GetWindowThreadProcessId(pThis->m_hwndUIActiveObj, NULL); - } - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::InsertMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetMenu\n"); - - pThis->CheckForPPTPreviewChange(); - - // We really don't do anything here. We will merge the menu and set it - // later if the menubar is visible or user chooses dropdown from titlebar. - // All we do is stash current values or clear them depending on call. - if (hMenu) - { - pThis->m_hMenuActive = hMenu; - pThis->m_holeMenu = hOLEMenu; - pThis->m_hwndMenuObj = hWndObj; - - // Handle a special case where menu is being updated after initial set - // and not in close. In such a case we should force redraw control we - // are in so new menu changes are visible as soon as possible... - if ((!(pThis->m_fInClose)) && (pThis->m_hwndCtl)) - InvalidateRect(pThis->m_hwndCtl, NULL, FALSE); - } - else - { - pThis->m_hMenuActive = NULL; - pThis->m_holeMenu = NULL; - pThis->m_hwndMenuObj = NULL; - } - - // Regardless of call, make sure to cleanup a merged menu if - // one was previously created for the control... - pThis->ClearMergedMenu(); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RemoveMenus(HMENU hMenu) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RemoveMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetStatusText\n"); - if ((pszText) && (*pszText)){TRACE1(" Status Text = %S \n", pszText);} - return ((pThis->m_psiteCtl) ? pThis->m_psiteCtl->SetStatusText(pszText) : S_OK); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::EnableModeless(BOOL fEnable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - TRACE1("CDsoDocObject::XOleInPlaceFrame::EnableModeless(%d)\n", fEnable); - pThis->m_fObjectInModalCondition = !fEnable; - SendMessage(pThis->m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_MODAL, (LPARAM)fEnable); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator(LPMSG pMSG, WORD wID) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator\n"); - return S_FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleCommandTarget) - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - HRESULT hr = OLECMDERR_E_UNKNOWNGROUP; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText); - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - HRESULT hr = OLECMDERR_E_NOTSUPPORTED; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XServiceProvider -- IServiceProvider Implementation -// -// STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ServiceProvider) - -STDMETHODIMP CDsoDocObject::XServiceProvider::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - METHOD_PROLOGUE(CDsoDocObject, ServiceProvider); - ODS("CDsoDocObject::XServiceProvider::QueryService\n"); - - if (pThis->m_psiteCtl) // Forward to host control/container... - return pThis->m_psiteCtl->QueryService(guidService, riid, ppv); - - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XAuthenticate -- IAuthenticate Implementation -// -// STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, Authenticate) - -STDMETHODIMP CDsoDocObject::XAuthenticate::Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword) -{ - METHOD_PROLOGUE(CDsoDocObject, Authenticate); - ODS("CDsoDocObject::XAuthenticate::Authenticate\n"); - if (phwnd) *phwnd = ((pThis->m_pwszUsername) ? (HWND)INVALID_HANDLE_VALUE : pThis->m_hwndCtl); - if (pszUsername) *pszUsername = DsoConvertToLPOLESTR(pThis->m_pwszUsername); - if (pszPassword) *pszPassword = DsoConvertToLPOLESTR(pThis->m_pwszPassword); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XContinueCallback -- IContinueCallback Implementation -// -// STDMETHODIMP FContinue(void); -// STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ContinueCallback) - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinue(void) -{ // We don't support asynchronous cancel of printing, but if you wanted to add - // such functionality, this is where you could do so... - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus) -{ - TRACE3("CDsoDocObject::XContinueCallback::FContinuePrinting(%d, %d, %S)\n", cPagesPrinted, nCurrentPage, pwszPrintStatus); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XPreviewCallback -- IPreviewCallback Implementation -// -// STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, PreviewCallback) - -STDMETHODIMP CDsoDocObject::XPreviewCallback::Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) -{ - METHOD_PROLOGUE(CDsoDocObject, PreviewCallback); - TRACE3("CDsoDocObject::XPreviewCallback::Notify(%d, %d, %S)\n", wStatus, nLastPage, pwszPreviewStatus); - - // The only notification we act on is when the preview is done... - if ((wStatus == NOTIFY_FORCECLOSEPREVIEW) || - (wStatus == NOTIFY_FINISHED) || - (wStatus == NOTIFY_UNABLETOPREVIEW)) - pThis->ExitPrintPreview(FALSE); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrGetDataFromObject -// -// Function designed to give indirect access to the content in an existing -// loaded object, in a clipboard format specified in vtType. In other words, -// a call to HrGetDataFromObject("Rich Text Format", [out] array) will get the -// content of the current document in RTF format and return it as a byte array -// vector in VB6-safe safearray. This array can be converted to a string for -// display or saved to database (etc.) without saving to disk. -// -// For this to work, the object embedded must support IDataObject and the clip -// format that you request. -// -STDMETHODIMP CDsoDocObject::HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtOutput == NULL) || PARAM_IS_MISSING(pvtOutput)) - return E_INVALIDARG; - - VariantClear(pvtOutput); - - // We take the name and find the right clipformat for the data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // We must be able to get IDataObject for the transfer to work... - if ((m_pole == NULL) || - (FAILED(m_pole->GetClipboardData(0, &pdo)) && - FAILED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)))) - return OLE_E_CANT_GETMONIKER; - - ASSERT(pdo); CHECK_NULL_RETURN(pdo, E_UNEXPECTED); - - // We are going to ask for HGLOBAL data format only. This is majority - // of the non-binary formats, which should be sufficient here... - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - - // Ask the object for the data... - if (SUCCEEDED(hr = pdo->QueryGetData(&ftc)) && - SUCCEEDED(hr = pdo->GetData(&ftc, &stgm))) - { - ULONG ulSize; - if ((stgm.tymed == TYMED_HGLOBAL) && (stgm.hGlobal) && - (ulSize = GlobalSize(stgm.hGlobal))) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if (lpv) - { - // We will return data as safearray vector of VB6 Byte type... - psa = SafeArrayCreateVector(VT_UI1, 1, ulSize); - if (psa) - { - pvtOutput->vt = VT_ARRAY|VT_UI1; - pvtOutput->parray = psa; - prawdata = NULL; - - if (SUCCEEDED(SafeArrayAccessData(psa, &prawdata))) - { - memcpy(prawdata, lpv, ulSize); - SafeArrayUnaccessData(psa); - } - } - else hr = E_OUTOFMEMORY; - - GlobalUnlock(stgm.hGlobal); - } - else hr = E_ACCESSDENIED; - } - else hr = E_FAIL; - - ReleaseStgMedium(&stgm); - } - - pdo->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrSetDataInObject -// -// Function to take format type and either string or VB6-safe byte array -// as data and set it into the current object (that is, it will replace the -// current document content with this content). The fMbcsString flag determines -// if BSTR passed should be converted to MBCS format before being set. For example, -// if you previously got data as RTF (MBCS), then converted to Unicode BSTR and -// passed it back, it would need to be converted back to MBCS for the set to work. -// If the string data is binary, pass FALSE. If data is array, the param is ignored. -// -// The function sets the data using IDataObject::SetData. Note that some objects -// will allow you to get a format but not set it, so this may not work for a previously -// acquired data type. It is up to the host DocObject server, so test carefully before -// depending on this functionality. -// -STDMETHODIMP CDsoDocObject::HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - ULONG ulSize; - BOOL fIsArrayData = FALSE; - BOOL fCleanupString = FALSE; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtInput == NULL) || PARAM_IS_MISSING(pvtInput)) - return E_INVALIDARG; - - // Find the clipboard format for the given data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // Depending on the type of data passed, and if we need to do any Unicode-to-MBCS - // conversion for the caller, set up the data size and data pointer we will use - // to create the global memory object we'll pass to the doc object server... - prawdata = LPWSTR_FROM_VARIANT(*pvtInput); - if (prawdata) - { - if (fMbcsString) - { - prawdata = (void*)DsoConvertToMBCS((BSTR)prawdata); - CHECK_NULL_RETURN(prawdata, E_OUTOFMEMORY); - fCleanupString = TRUE; - ulSize = lstrlen((LPSTR)prawdata); - } - else - ulSize = SysStringByteLen((BSTR)prawdata); - } - else - { - psa = PSARRAY_FROM_VARIANT(*pvtInput); - if (psa) - { - LONG lb, ub, elSize; - - if ((SafeArrayGetDim(psa) > 1) || - FAILED(SafeArrayGetLBound(psa, 1, &lb)) || (lb < 0) || - FAILED(SafeArrayGetUBound(psa, 1, &ub)) || (ub < lb) || - ((elSize = SafeArrayGetElemsize(psa)) < 1)) - return E_INVALIDARG; - - ulSize = (((ub + 1) - lb) * elSize); - fIsArrayData = TRUE; - if (FAILED(SafeArrayAccessData(psa, &prawdata))) - return E_ACCESSDENIED; - } - - CHECK_NULL_RETURN(prawdata, E_INVALIDARG); - } - - // We must have a server and it must support IDataObject... - if ((m_pole) && SUCCEEDED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)) && (pdo)) - { - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - stgm.hGlobal = GlobalAlloc(GPTR, ulSize); - if (stgm.hGlobal) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if ((lpv) && (ulSize)) - { - // Copy the data into transfer object... - memcpy(lpv, prawdata, ulSize); - GlobalUnlock(stgm.hGlobal); - - // Do the actual SetData call to transfer the data... - hr = pdo->SetData(&ftc, &stgm, TRUE); - } - else hr = E_UNEXPECTED; - - if (FAILED(hr)) - ReleaseStgMedium(&stgm); - } - else hr = E_OUTOFMEMORY; - - pdo->Release(); - } - else hr = OLE_E_CANT_GETMONIKER; - - if (fIsArrayData) - SafeArrayUnaccessData(psa); - - if (fCleanupString) - DsoMemFree(prawdata); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FrameWindowProc -// -// Site window procedure. Not much to do here except forward focus. -// -STDMETHODIMP_(LRESULT) CDsoDocObject::FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoDocObject* pbndr = (CDsoDocObject*)GetWindowLong(hwnd, GWL_USERDATA); - if (pbndr) - { - switch (msg) - { - case WM_PAINT: - { - PAINTSTRUCT ps; - RECT rc; GetClientRect(hwnd, &rc); - BeginPaint(hwnd, &ps); - pbndr->OnDraw(DVASPECT_CONTENT, ps.hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - return 0; - - case WM_NCDESTROY: - SetWindowLong(hwnd, GWL_USERDATA, 0); - pbndr->m_hwnd = NULL; - break; - - case WM_SETFOCUS: - if (pbndr->m_hwndUIActiveObj) - SetFocus(pbndr->m_hwndUIActiveObj); - return 0; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if ((pbndr->m_psiteCtl) && (pbndr->m_psiteCtl->SysMenuCommand((UINT)lParam) == S_OK)) - return 0; - } - break; - - case WM_ERASEBKGND: - return 1; - } - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.h b/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.h deleted file mode 100644 index 504ddf05..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.h +++ /dev/null @@ -1,350 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.H - * - * DSOFramer: OLE DocObject Site component (used by the control) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_DSOFDOCOBJ_H -#define DS_DSOFDOCOBJ_H - -//////////////////////////////////////////////////////////////////// -// Declarations for Interfaces used in DocObject Containment -// -#include // Standard DocObjects (common to all AxDocs) -#include "ipprevw.h" // PrintPreview (for select Office apps) -#include "rbbinder.h" // Internet Publishing (for Web Folder write access) - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 97-2003 Document Object GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOC, 0x00020906, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLS, 0x00020820, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_CHART_XLS, 0x00020821, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPT, 0x64818D10, 0x4F9B, 0x11CF, 0x86, 0xEA, 0x00, 0xAA, 0x00, 0xB9, 0x29, 0xE8); -DEFINE_GUID(CLSID_VISIO_DRAWING_VSD, 0x00021A13, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PROJECT_DOCUMENT_MPP, 0x74B78F3A, 0xC8C8, 0x11D1, 0xBE, 0x11, 0x00, 0xC0, 0x4F, 0xB6, 0xFA, 0xF1); -DEFINE_GUID(CLSID_MSHTML_DOCUMENT, 0x25336920, 0x03F9, 0x11CF, 0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13); - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 2007 Document GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCX, 0xF4754C9B, 0x64F5, 0x4B40, 0x8A, 0xF4, 0x67, 0x97, 0x32, 0xAC, 0x06, 0x07); -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCM, 0x18A06B6B, 0x2F3F, 0x4E2B, 0xA6, 0x11, 0x52, 0xBE, 0x63, 0x1B, 0x2D, 0x22); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSX, 0x00020830, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSM, 0x00020832, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSB, 0x00020833, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTX, 0xCF4F55F4, 0x8F87, 0x4D47, 0x80, 0xBB, 0x58, 0x08, 0x16, 0x4B, 0xB3, 0xF8); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTM, 0xDC020317, 0xE6E2, 0x4A62, 0xB9, 0xFA, 0xB3, 0xEF, 0xE1, 0x66, 0x26, 0xF4); - -//////////////////////////////////////////////////////////////////// -// IDsoDocObjectSite -- {444CA1F7-B405-4002-95C3-A455BC9F4F55} -// -// Implemented by control host for callbacks. Required interface. -// -interface IDsoDocObjectSite : public IServiceProvider -{ - STDMETHOD(GetWindow)(HWND* phWnd) PURE; - STDMETHOD(GetBorder)(LPRECT prcBorder) PURE; - STDMETHOD(SetStatusText)(LPCOLESTR pszText) PURE; - STDMETHOD(GetHostName)(LPWSTR *ppwszHostName) PURE; - STDMETHOD(SysMenuCommand)(UINT uiCharCode) PURE; -}; -DEFINE_GUID(IID_IDsoDocObjectSite, 0x444CA1F7, 0xB405, 0x4002, 0x95, 0xC3, 0xA4, 0x55, 0xBC, 0x9F, 0x4F, 0x55); - - -//////////////////////////////////////////////////////////////////// -// CDsoDocObject -- ActiveDocument Container Site Object -// -// The CDsoDocObject object handles all the DocObject embedding for the -// control and os fairly self-contained. Like the control it has its -// own window, but it merely acts as a parent for the embedded object -// window(s) which it activates. -// -// CDsoDocObject works by taking a file (or automation object) and -// copying out the OLE storage used for its persistent data. It then -// creates a new embedding based on the data. If a storage is not -// avaiable, it will attempt to oad the file directly, but the results -// are less predictable using this manner since DocObjects are embeddings -// and not links and this component has limited support for links. As a -// result, we will attempt to keep our own storage copy in most cases. -// -// You should note that this approach is different than one taken by the -// web browser control, which is basically a link container which will -// try to embed (ip activate) if allowed, but if not it opens the file -// externally and keeps the link. If CDsoDocObject cannot embed the object, -// it returns an error. It will not open the object external. -// -// Like the control, this object also uses nested classes for the OLE -// interfaces used in the embedding. They are easier to track and easier -// to debug if a specific interface is over/under released. Again this was -// a design decision to make the sample easier to break apart, but not required. -// -// Because the object is not tied to the top-level window, it constructs -// the OLE merged menu as a set of popup menus which the control then displays -// in whatever form it wants. You would need to customize this if you used -// the control in a host and wanted the menus to merge with the actual host -// menu bar (on the top-level window or form). -// -class CDsoDocObject : public IUnknown -{ -public: - CDsoDocObject(); - ~CDsoDocObject(); - - // Static Create Method (Host Provides Site Interface) - static STDMETHODIMP_(CDsoDocObject*) CreateInstance(IDsoDocObjectSite* phost); - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IOleClientSite Implementation - BEGIN_INTERFACE_PART(OleClientSite, IOleClientSite) - STDMETHODIMP SaveObject(void); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk); - STDMETHODIMP GetContainer(IOleContainer** ppContainer); - STDMETHODIMP ShowObject(void); - STDMETHODIMP OnShowWindow(BOOL fShow); - STDMETHODIMP RequestNewObjectLayout(void); - END_INTERFACE_PART(OleClientSite) - - // IOleInPlaceSite Implementation - BEGIN_INTERFACE_PART(OleInPlaceSite, IOleInPlaceSite) - STDMETHODIMP GetWindow(HWND* phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP CanInPlaceActivate(void); - STDMETHODIMP OnInPlaceActivate(void); - STDMETHODIMP OnUIActivate(void); - STDMETHODIMP GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo); - STDMETHODIMP Scroll(SIZE sz); - STDMETHODIMP OnUIDeactivate(BOOL fUndoable); - STDMETHODIMP OnInPlaceDeactivate(void); - STDMETHODIMP DiscardUndoState(void); - STDMETHODIMP DeactivateAndUndo(void); - STDMETHODIMP OnPosRectChange(LPCRECT lprcPosRect); - END_INTERFACE_PART(OleInPlaceSite) - - // IOleDocumentSite Implementation - BEGIN_INTERFACE_PART(OleDocumentSite, IOleDocumentSite) - STDMETHODIMP ActivateMe(IOleDocumentView* pView); - END_INTERFACE_PART(OleDocumentSite) - - // IOleInPlaceFrame Implementation - BEGIN_INTERFACE_PART(OleInPlaceFrame, IOleInPlaceFrame) - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); - STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); - STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); - STDMETHODIMP RemoveMenus(HMENU hMenu); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - STDMETHODIMP EnableModeless(BOOL fEnable); - STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); - END_INTERFACE_PART(OleInPlaceFrame) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // IServiceProvider Implementation - BEGIN_INTERFACE_PART(ServiceProvider , IServiceProvider) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - END_INTERFACE_PART(ServiceProvider) - - // IAuthenticate Implementation - BEGIN_INTERFACE_PART(Authenticate , IAuthenticate) - STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); - END_INTERFACE_PART(Authenticate) - - // IContinueCallback Implementation - BEGIN_INTERFACE_PART(ContinueCallback , IContinueCallback) - STDMETHODIMP FContinue(void); - STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); - END_INTERFACE_PART(ContinueCallback) - - // IOlePreviewCallback Implementation - BEGIN_INTERFACE_PART(PreviewCallback , IOlePreviewCallback) - STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); - END_INTERFACE_PART(PreviewCallback) - - // DocObject Class Methods IDsoDocObjectSite - STDMETHODIMP InitializeNewInstance(IDsoDocObjectSite* phost); - STDMETHODIMP CreateDocObject(REFCLSID rclsid); - STDMETHODIMP CreateDocObject(IStorage *pstg); - STDMETHODIMP CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts); - STDMETHODIMP CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts); - STDMETHODIMP IPActivateView(); - STDMETHODIMP IPDeactivateView(); - STDMETHODIMP UIActivateView(); - STDMETHODIMP UIDeactivateView(); - STDMETHODIMP_(BOOL) IsDirty(); - STDMETHODIMP Save(); - STDMETHODIMP SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile); - STDMETHODIMP SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser); - STDMETHODIMP StartPrintPreview(); - STDMETHODIMP ExitPrintPreview(BOOL fForceExit); - STDMETHODIMP DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP Close(); - - // Control should notify us on these conditions (so we can pass to IP object)... - STDMETHODIMP_(void) OnNotifySizeChange(LPRECT prc); - STDMETHODIMP_(void) OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnNotifyPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnNotifyChangeToolState(BOOL fShowTools); - STDMETHODIMP_(void) OnNotifyControlFocus(BOOL fGotFocus); - - STDMETHODIMP HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput); - STDMETHODIMP HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString); - - STDMETHODIMP_(BOOL) GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt); - - // Inline accessors for control to get IP object info... - inline IOleInPlaceActiveObject* GetActiveObject(){return m_pipactive;} - inline IOleObject* GetOleObject(){return m_pole;} - inline HWND GetDocWindow(){return m_hwnd;} - inline HWND GetActiveWindow(){return m_hwndUIActiveObj;} - inline BOOL IsReadOnly(){return m_fOpenReadOnly;} - inline BOOL InPrintPreview(){return ((m_pprtprv != NULL) || (m_fInPptSlideShow));} - inline HWND GetMenuHWND(){return m_hwndMenuObj;} - inline HMENU GetActiveMenu(){return m_hMenuActive;} - inline HMENU GetMergedMenu(){return m_hMenuMerged;} - inline void SetMergedMenu(HMENU h){m_hMenuMerged = h;} - inline LPCWSTR GetSourceName(){return ((m_pwszWebResource) ? m_pwszWebResource : m_pwszSourceFile);} - inline LPCWSTR GetSourceDocName(){return ((m_pwszSourceFile) ? &m_pwszSourceFile[m_idxSourceName] : NULL);} - inline CLSID* GetServerCLSID(){return &m_clsidObject;} - inline BOOL IsIPActive(){return (m_pipobj != NULL);} - - BOOL IsWordObject() - {return ((m_clsidObject == CLSID_WORD_DOCUMENT_DOC) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCX) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCM)); - } - BOOL IsExcelObject() - {return ((m_clsidObject == CLSID_EXCEL_WORKBOOK_XLS) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSX) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSM) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSB) || - (m_clsidObject == CLSID_EXCEL_CHART_XLS)); - } - BOOL IsPPTObject() - {return ((m_clsidObject == CLSID_PPT_PRESENTATION_PPT) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTX) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTM)); - } - BOOL IsVisioObject() - {return (m_clsidObject == CLSID_VISIO_DRAWING_VSD);} - - STDMETHODIMP SetRunningServerLock(BOOL fLock); - -protected: - // Internal helper methods... - STDMETHODIMP InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole); - STDMETHODIMP CreateObjectStorage(REFCLSID rclsid); - STDMETHODIMP SaveObjectStorage(); - STDMETHODIMP SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock); - STDMETHODIMP SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock); - STDMETHODIMP ValidateDocObjectServer(REFCLSID rclsid); - STDMETHODIMP_(BOOL) ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - - STDMETHODIMP EnsureOleServerRunning(BOOL fLockRunning); - STDMETHODIMP_(void) FreeRunningLock(); - STDMETHODIMP_(void) TurnOffWebToolbar(BOOL fTurnedOff); - STDMETHODIMP_(void) ClearMergedMenu(); - STDMETHODIMP_(DWORD) CalcDocNameIndex(LPCWSTR pwszPath); - STDMETHODIMP_(void) CheckForPPTPreviewChange(); - - // These functions allow the component to access files in a Web Folder for - // write access using the Microsoft Provider for Internet Publishing (MSDAIPP), - // which is installed by Office and comes standard in Windows 2000/ME/XP/2003. The - // provider is not required to use the component, only if you wish to save to - // an FPSE or DAV Web Folder (URL). - STDMETHODIMP_(IUnknown*) CreateIPPBindResource(); - STDMETHODIMP IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave); - STDMETHODIMP IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile); - - static STDMETHODIMP_(LRESULT) FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // The private class variables... -private: - ULONG m_cRef; // Reference count - HWND m_hwnd; // our window - HWND m_hwndCtl; // The control's window - RECT m_rcViewRect; // Viewable area (set by host) - IDsoDocObjectSite *m_psiteCtl; // The control's site interface - IOleCommandTarget *m_pcmdCtl; // IOCT of host (for frame msgs) - - LPWSTR m_pwszHostName; // Ole Host Name for container - LPWSTR m_pwszSourceFile; // Path to Source File (on Open) - IMoniker *m_pmkSourceFile; // Moniker to original source file - IBindCtx *m_pbctxSourceFile; // Bind context used to original source file - IStorage *m_pstgSourceFile; // Original File Storage (if open/save file) - DWORD m_idxSourceName; // Index to doc name in m_pwszSourceFile - - CLSID m_clsidObject; // CLSID of the embedded object - IStorage *m_pstgroot; // Root temp storage - IStorage *m_pstgfile; // In-memory file storage - IStream *m_pstmview; // In-memory view info stream - - LPWSTR m_pwszWebResource; // The full URL to the web resource - IStream *m_pstmWebResource; // Original Download Stream (if open/save URL) - IUnknown *m_punkIPPResource; // MSDAIPP provider resource (for URL authoring) - LPWSTR m_pwszUsername; // Username and password used by MSDAIPP - LPWSTR m_pwszPassword; // for Authentication (see IAuthenticate) - - IOleObject *m_pole; // Embedded OLE Object (OLE) - IOleInPlaceObject *m_pipobj; // The IP object methods (OLE) - IOleInPlaceActiveObject *m_pipactive; // The UI Active object methods (OLE) - IOleDocumentView *m_pdocv; // MSO Document View (DocObj) - IOleCommandTarget *m_pcmdt; // MSO Command Target (DocObj) - IOleInplacePrintPreview *m_pprtprv; // MSO Print Preview (DocObj) - - HMENU m_hMenuActive; // The menu supplied by embedded object - HMENU m_hMenuMerged; // The merged menu (set by control host) - HOLEMENU m_holeMenu; // The OLE Menu Descriptor - HWND m_hwndMenuObj; // The window for menu commands - HWND m_hwndIPObject; // IP active object window - HWND m_hwndUIActiveObj; // UI Active object window - DWORD m_dwObjectThreadID; // Thread Id of UI server - BORDERWIDTHS m_bwToolSpace; // Toolspace... - - // Bitflags (state info)... - unsigned int m_fDisplayTools:1; - unsigned int m_fDisconnectOnQuit:1; - unsigned int m_fAppWindowActive:1; - unsigned int m_fOpenReadOnly:1; - unsigned int m_fObjectInModalCondition:1; - unsigned int m_fObjectIPActive:1; - unsigned int m_fObjectUIActive:1; - unsigned int m_fObjectActivateComplete:1; - unsigned int m_fLockedServerRunning:1; - unsigned int m_fLoadedFromAuto:1; - unsigned int m_fInClose:1; - unsigned int m_fAttemptPptPreview:1; - unsigned int m_fInPptSlideShow:1; - -}; - - -#endif //DS_DSOFDOCOBJ_H \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofprint.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofprint.cpp deleted file mode 100644 index 280cefa2..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofprint.cpp +++ /dev/null @@ -1,419 +0,0 @@ -/*************************************************************************** - * DSOFPRINT.CPP - * - * CDsoDocObject: Print Code for CDsoDocObject object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::_PrintOutOld -// -// Prints the current object by calling IOleCommandTarget for Print. -// -STDMETHODIMP CDsoFramerControl::_PrintOutOld(VARIANT PromptToSelectPrinter) -{ - DWORD dwOption = BOOL_FROM_VARIANT(PromptToSelectPrinter, FALSE) - ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT; - - TRACE1("CDsoFramerControl::_PrintOutOld(%d)\n", dwOption); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->DoOleCommand(OLECMDID_PRINT, dwOption, NULL, NULL); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintOut -// -// Prints document using either IPrint or IOleCommandTarget, depending -// on parameters passed. This offers a bit more control over printing if -// the doc object server supports IPrint interface. -// -STDMETHODIMP CDsoFramerControl::PrintOut(VARIANT PromptUser, VARIANT PrinterName, - VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile) -{ - HRESULT hr; - BOOL fPromptUser = BOOL_FROM_VARIANT(PromptUser, FALSE); - LPWSTR pwszPrinter = LPWSTR_FROM_VARIANT(PrinterName); - LPWSTR pwszOutput = LPWSTR_FROM_VARIANT(OutputFile); - LONG lCopies = LONG_FROM_VARIANT(Copies, 1); - LONG lFrom = LONG_FROM_VARIANT(FromPage, 0); - LONG lTo = LONG_FROM_VARIANT(ToPage, 0); - - TRACE3("CDsoFramerControl::PrintOut(%d, %S, %d)\n", fPromptUser, pwszPrinter, lCopies); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // First we do validation of all parameters passed to the function... - if ((pwszPrinter) && (*pwszPrinter == L'\0')) - return E_INVALIDARG; - - if ((pwszOutput) && (*pwszOutput == L'\0')) - return E_INVALIDARG; - - if ((lCopies < 1) || (lCopies > 200)) - return E_INVALIDARG; - - if (((lFrom != 0) || (lTo != 0)) && ((lFrom < 1) || (lTo < lFrom))) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If no printer name was provided, we can print to the default device - // using IOleCommandTarget with OLECMDID_PRINT... - if (pwszPrinter == NULL) - return _PrintOutOld(PromptUser); - - // Ask the embedded document to print itself to specific printer... - hr = m_pDocObjFrame->PrintDocument(pwszPrinter, pwszOutput, (UINT)lCopies, - (UINT)lFrom, (UINT)lTo, fPromptUser); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreview -// -// Asks embedded object to attempt a print preview (only Office docs do this). -// -STDMETHODIMP CDsoFramerControl::PrintPreview() -{ - HRESULT hr; - ODS("CDsoFramerControl::PrintPreview\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Try to set object into print preview mode... - hr = m_pDocObjFrame->StartPrintPreview(); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreviewExit -// -// Closes an active preview. -// -STDMETHODIMP CDsoFramerControl::PrintPreviewExit() -{ - ODS("CDsoFramerControl::PrintPreviewExit\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Try to set object out of print preview mode... - if (m_pDocObjFrame->InPrintPreview()) - m_pDocObjFrame->ExitPrintPreview(TRUE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::PrintDocument -// -// We can use the IPrint interface for an ActiveX Document object to -// selectively print object to a given printer. -// -STDMETHODIMP CDsoDocObject::PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser) -{ - HRESULT hr; - IPrint *print; - HANDLE hPrint; - DVTARGETDEVICE* ptd = NULL; - - ODS("CDsoDocObject::PrintDocument\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // First thing we need to do is ask object for IPrint. If it does not - // support it, we cannot continue. It is up to DocObj if this is allowed... - hr = m_pole->QueryInterface(IID_IPrint, (void**)&print); - RETURN_ON_FAILURE(hr); - - // Now setup printer settings into DEVMODE for IPrint. Open printer - // settings and gather default DEVMODE... - if (FOpenPrinter(pwszPrinter, &hPrint)) - { - LPDEVMODEW pdevMode = NULL; - LPWSTR pwszDefProcessor = NULL; - LPWSTR pwszDefDriver = NULL; - LPWSTR pwszDefPort = NULL; - LPWSTR pwszPort; - DWORD cbDevModeSize; - - if (FGetPrinterSettings(hPrint, &pwszDefProcessor, - &pwszDefDriver, &pwszDefPort, &pdevMode, &cbDevModeSize) && (pdevMode)) - { - DWORD cbPrintName, cbDeviceName, cbOutputName; - DWORD cbDVTargetSize; - - pdevMode->dmFields |= DM_COPIES; - pdevMode->dmCopies = (WORD)((cCopies) ? cCopies : 1); - - pwszPort = ((pwszOutput) ? (LPWSTR)pwszOutput : pwszDefPort); - - // We calculate the size we will need for the TARGETDEVICE structure... - cbPrintName = ((lstrlenW(pwszDefProcessor) + 1) * sizeof(WCHAR)); - cbDeviceName = ((lstrlenW(pwszDefDriver) + 1) * sizeof(WCHAR)); - cbOutputName = ((lstrlenW(pwszPort) + 1) * sizeof(WCHAR)); - - cbDVTargetSize = sizeof(DWORD) + sizeof(DEVNAMES) + cbPrintName + - cbDeviceName + cbOutputName + cbDevModeSize; - - // Allocate new target device using COM Task Allocator... - ptd = (DVTARGETDEVICE*)CoTaskMemAlloc(cbDVTargetSize); - if (ptd) - { - // Copy all the data in the DVT... - DWORD dwOffset = sizeof(DWORD) + sizeof(DEVNAMES); - ptd->tdSize = cbDVTargetSize; - - ptd->tdDriverNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefProcessor, cbPrintName); - dwOffset += cbPrintName; - - ptd->tdDeviceNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefDriver, cbDeviceName); - dwOffset += cbDeviceName; - - ptd->tdPortNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszPort, cbOutputName); - dwOffset += cbOutputName; - - ptd->tdExtDevmodeOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pdevMode, cbDevModeSize); - dwOffset += cbDevModeSize; - - ASSERT(dwOffset == cbDVTargetSize); - } - else hr = E_OUTOFMEMORY; - - // We're done with the devmode... - DsoMemFree(pdevMode); - } - else hr = E_WIN32_LASTERROR; - - SAFE_FREESTRING(pwszDefPort); - SAFE_FREESTRING(pwszDefDriver); - SAFE_FREESTRING(pwszDefProcessor); - ClosePrinter(hPrint); - } - else hr = E_WIN32_LASTERROR; - - // If we were successful in getting TARGETDEVICE struct, provide the page range - // for the print job and ask docobj server to print it... - if (SUCCEEDED(hr)) - { - PAGESET *ppgset; - DWORD cbPgRngSize = sizeof(PAGESET) + sizeof(PAGERANGE); - LONG cPages, cLastPage; - DWORD grfPrintFlags; - - // Setup the page range to print... - if ((ppgset = (PAGESET*)CoTaskMemAlloc(cbPgRngSize)) != NULL) - { - ppgset->cbStruct = cbPgRngSize; - ppgset->cPageRange = 1; - ppgset->fOddPages = TRUE; - ppgset->fEvenPages = TRUE; - ppgset->cPageRange = 1; - ppgset->rgPages[0].nFromPage = ((nFrom) ? nFrom : 1); - ppgset->rgPages[0].nToPage = ((nTo) ? nTo : PAGESET_TOLASTPAGE); - - // Give indication we are waiting (on the print)... - HCURSOR hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Setup the initial page number (optional)... - print->SetInitialPageNum(ppgset->rgPages[0].nFromPage); - - grfPrintFlags = (PRINTFLAG_MAYBOTHERUSER | PRINTFLAG_RECOMPOSETODEVICE); - if (fPromptUser) grfPrintFlags |= PRINTFLAG_PROMPTUSER; - if (pwszOutput) grfPrintFlags |= PRINTFLAG_PRINTTOFILE; - - // Now ask server to print it using settings passed... - hr = print->Print(grfPrintFlags, &ptd, &ppgset, NULL, (IContinueCallback*)&m_xContinueCallback, - ppgset->rgPages[0].nFromPage, &cPages, &cLastPage); - - SEH_EXCEPT(hr) - - SetCursor(hCur); - - if (ppgset) - CoTaskMemFree(ppgset); - } - else hr = E_OUTOFMEMORY; - } - - // We are done... - if (ptd) CoTaskMemFree(ptd); - print->Release(); - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::StartPrintPreview -// -// Ask embedded object to go into print preview (if supportted). -// -STDMETHODIMP CDsoDocObject::StartPrintPreview() -{ - HRESULT hr; - IOleInplacePrintPreview *prev; - HCURSOR hCur; - - ODS("CDsoDocObject::StartPrintPreview\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // No need to do anything if already in preview... - if (InPrintPreview()) return S_FALSE; - - // Otherwise, ask document server if it supports preview... - hr = m_pole->QueryInterface(IID_IOleInplacePrintPreview, (void**)&prev); - if (SUCCEEDED(hr)) - { - // Tell user we waiting (switch to preview can be slow for very large docs)... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - // If it does, make sure it can go into preview mode... - hr = prev->QueryStatus(); - if (SUCCEEDED(hr)) - { - SEH_TRY - - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - - // We will allow application to bother user and switch printers... - hr = prev->StartPrintPreview( - (PREVIEWFLAG_MAYBOTHERUSER | PREVIEWFLAG_PROMPTUSER | PREVIEWFLAG_USERMAYCHANGEPRINTER), - NULL, (IOlePreviewCallback*)&m_xPreviewCallback, 1); - - SEH_EXCEPT(hr) - - // If the call succeeds, we keep hold of interface to close preview later - if (SUCCEEDED(hr)) - { - SAFE_SET_INTERFACE(m_pprtprv, prev); - } - else - { // Otherwise, notify the control that preview failed... - if (m_hwndCtl) - PostMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - } - } - - SetCursor(hCur); - prev->Release(); - } - else if (IsPPTObject() && (m_hwndUIActiveObj)) - { - // PowerPoint doesn't have print preview, but it does have slide show mode, so we can use this to - // toggle the viewing into slideshow... - if (PostMessage(m_hwndUIActiveObj, WM_KEYDOWN, VK_F5, 0x00000001) && - PostMessage(m_hwndUIActiveObj, WM_KEYUP, VK_F5, 0xC0000001)) - { - hr = S_OK; m_fAttemptPptPreview = TRUE; - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ExitPrintPreview -// -// Drop out of print preview and restore items as needed. -// -STDMETHODIMP CDsoDocObject::ExitPrintPreview(BOOL fForceExit) -{ - TRACE1("CDsoDocObject::ExitPrintPreview(fForceExit=%d)\n", (DWORD)fForceExit); - - // Need to be in preview to run this function... - if (!InPrintPreview()) return S_FALSE; - - // If the user closes the app or otherwise terminates the preview, we need - // to notify the ActiveDocument server to leave preview mode... - if (m_pprtprv) - { - if (fForceExit) // Tell docobj we want to end preview... - { - HRESULT hr = m_pprtprv->EndPrintPreview(TRUE); - ASSERT(SUCCEEDED(hr)); (void)hr; - } - } - else if (m_fInPptSlideShow) - { - if ((fForceExit) && (m_hwndUIActiveObj)) - { - // HACK: When it goes into slideshow, PPT 2007 changes the active window but - // doesn't call SetActiveObject to update us with new object and window handle. - // If we post VK_ESCAPE to the window handle we have, it can fail. It needs to go - // to the slideshow window that PPT failed to give us handle for. As workaround, - // setting focus to the UI window we have handle for will automatically forward - // to the right window, so we can use that trick to get the right window and - // make the call in a way that that should succeed regardless of PPT version... - SetFocus(m_hwndUIActiveObj); - PostMessage(GetFocus(), WM_KEYDOWN, VK_ESCAPE, 0x00000001); - PostMessage(GetFocus(), WM_KEYUP, VK_ESCAPE, 0xC0000001); - } - m_fAttemptPptPreview = FALSE; - m_fInPptSlideShow = FALSE; - } - - if (m_hwndCtl) // Notify the control that preview ended... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - - // Free our reference to preview interface... - SAFE_RELEASE_INTERFACE(m_pprtprv); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CheckForPPTPreviewChange -// -// Used to update control when PPT goes in/out of slideshow asynchronously. -// -STDMETHODIMP_(void) CDsoDocObject::CheckForPPTPreviewChange() -{ - if (m_fInPptSlideShow) - { - ExitPrintPreview(FALSE); - } - else if (m_fAttemptPptPreview) - { - m_fInPptSlideShow = TRUE; - m_fAttemptPptPreview = FALSE; - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - } -} \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.def b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.def deleted file mode 100644 index cb32e274..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.def +++ /dev/null @@ -1,6 +0,0 @@ -LIBRARY dsoframer.ocx -EXPORTS - DllGetClassObject PRIVATE - DllCanUnloadNow PRIVATE - DllRegisterServer PRIVATE - DllUnregisterServer PRIVATE \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.h b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.h deleted file mode 100644 index 59eb956a..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.h +++ /dev/null @@ -1,689 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.H - * - * Developer Support Office ActiveX Document Framer Control Sample - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. - * - * You have a royalty-free right to use, modify, reproduce and distribute - * this sample application, and/or any modified version, in any way you - * find useful, provided that you agree that Microsoft has no warranty, - * obligations or liability for the code or information provided herein. - * - * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - * See the EULA.TXT file included in the KB download for full terms of use - * and restrictions. You should consult documentation on MSDN Library for - * possible updates or changes to behaviors or interfaces used in this sample. - * - ***************************************************************************/ -#ifndef DS_DSOFRAMER_H -#define DS_DSOFRAMER_H - -//////////////////////////////////////////////////////////////////// -// We compile at level 4 and disable some unnecessary warnings... -// -#pragma warning(push, 4) // Compile at level-4 warnings -#pragma warning(disable: 4100) // unreferenced formal parameter (in OLE this is common) -#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned -#pragma warning(disable: 4268) // const static/global data initialized with compiler generated default constructor -#pragma warning(disable: 4310) // cast truncates constant value -#pragma warning(disable: 4786) // identifier was truncated in the debug information - -//////////////////////////////////////////////////////////////////// -// Compile Options For Modified Behavior... -// -#define DSO_MSDAIPP_USE_DAVONLY // Default to WebDAV protocol for open by HTTP/HTTPS -#define DSO_WORD12_PERSIST_BUG // Perform workaround for IPersistFile bug in Word 2007 - -//////////////////////////////////////////////////////////////////// -// Needed include files (both standard and custom) -// -#include -#include -#include -#include -#include - -#include "version.h" -#include "utilities.h" -#include "dsofdocobj.h" -#include ".\lib\dsoframerlib.h" -#include ".\res\resource.h" - -//////////////////////////////////////////////////////////////////// -// Global Variables -// -extern HINSTANCE v_hModule; -extern CRITICAL_SECTION v_csecThreadSynch; -extern HICON v_icoOffDocIcon; -extern ULONG v_cLocks; -extern BOOL v_fUnicodeAPI; -extern BOOL v_fWindows2KPlus; - -//////////////////////////////////////////////////////////////////// -// Custom Errors - we support a very limited set of custom error messages -// -#define DSO_E_ERR_BASE 0x80041100 -#define DSO_E_UNKNOWN 0x80041101 // "An unknown problem has occurred." -#define DSO_E_INVALIDPROGID 0x80041102 // "The ProgID/Template could not be found or is not associated with a COM server." -#define DSO_E_INVALIDSERVER 0x80041103 // "The associated COM server does not support ActiveX Document embedding." -#define DSO_E_COMMANDNOTSUPPORTED 0x80041104 // "The command is not supported by the document server." -#define DSO_E_DOCUMENTREADONLY 0x80041105 // "Unable to perform action because document was opened in read-only mode." -#define DSO_E_REQUIRESMSDAIPP 0x80041106 // "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." -#define DSO_E_DOCUMENTNOTOPEN 0x80041107 // "No document is open to perform the operation requested." -#define DSO_E_INMODALSTATE 0x80041108 // "Cannot access document when in modal condition." -#define DSO_E_NOTBEENSAVED 0x80041109 // "Cannot Save file without a file path." -#define DSO_E_FRAMEHOOKFAILED 0x8004110A // "Unable to set frame hook for the parent window." -#define DSO_E_ERR_MAX 0x8004110B - -//////////////////////////////////////////////////////////////////// -// Custom OLE Command IDs - we use for special tasks -// -#define OLECMDID_GETDATAFORMAT 0x7001 // 28673 -#define OLECMDID_SETDATAFORMAT 0x7002 // 28674 -#define OLECMDID_LOCKSERVER 0x7003 // 28675 -#define OLECMDID_RESETFRAMEHOOK 0x7009 // 28681 -#define OLECMDID_NOTIFYACTIVE 0x700A // 28682 - -//////////////////////////////////////////////////////////////////// -// Custom Window Messages (only apply to CDsoFramerControl window proc) -// -#define DSO_WM_ASYNCH_OLECOMMAND (WM_USER + 300) -#define DSO_WM_ASYNCH_STATECHANGE (WM_USER + 301) - -#define DSO_WM_HOOK_NOTIFY_COMPACTIVE (WM_USER + 400) -#define DSO_WM_HOOK_NOTIFY_APPACTIVATE (WM_USER + 401) -#define DSO_WM_HOOK_NOTIFY_FOCUSCHANGE (WM_USER + 402) -#define DSO_WM_HOOK_NOTIFY_SYNCPAINT (WM_USER + 403) -#define DSO_WM_HOOK_NOTIFY_PALETTECHANGE (WM_USER + 404) - -// State Flags for DSO_WM_ASYNCH_STATECHANGE: -#define DSO_STATE_MODAL 1 -#define DSO_STATE_ACTIVATION 2 -#define DSO_STATE_INTERACTIVE 3 -#define DSO_STATE_RETURNFROMMODAL 4 - - -//////////////////////////////////////////////////////////////////// -// Menu Bar Items -// -#define DSO_MAX_MENUITEMS 16 -#define DSO_MAX_MENUNAME_LENGTH 32 - -#ifndef DT_HIDEPREFIX -#define DT_HIDEPREFIX 0x00100000 -#define DT_PREFIXONLY 0x00200000 -#endif - -#define SYNCPAINT_TIMER_ID 4 - - -//////////////////////////////////////////////////////////////////// -// Control Class Factory -// -class CDsoFramerClassFactory : public IClassFactory -{ -public: - CDsoFramerClassFactory(): m_cRef(0){} - ~CDsoFramerClassFactory(void){} - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IClassFactory Implementation - STDMETHODIMP CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv); - STDMETHODIMP LockServer(BOOL fLock); - -private: - ULONG m_cRef; // Reference count - -}; - -//////////////////////////////////////////////////////////////////// -// CDsoFramerControl -- Main Control (OCX) Object -// -// The CDsoFramerControl control is standard OLE control designed around -// the OCX94 specification. Because we plan on doing custom integration to -// act as both OLE object and OLE host, it does not use frameworks like ATL -// or MFC which would only complicate the nature of the sample. -// -// The control inherits from its automation interface, but uses nested -// classes for all OLE interfaces. This is not a requirement but does help -// to clearly seperate the tasks done by each interface and makes finding -// ref count problems easier to spot since each interface carries its own -// counter and will assert (in debug) if interface is over or under released. -// -// The control is basically a stage for the ActiveDocument embedding, and -// handles any external (user) commands. The task of actually acting as -// a DocObject host is done in the site object CDsoDocObject, which this -// class creates and uses for the embedding. -// -class CDsoFramerControl : public _FramerControl -{ -public: - CDsoFramerControl(LPUNKNOWN punk); - ~CDsoFramerControl(void); - - // IUnknown Implementation -- Always delgates to outer unknown... - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv){return m_pOuterUnknown->QueryInterface(riid, ppv);} - STDMETHODIMP_(ULONG) AddRef(void){return m_pOuterUnknown->AddRef();} - STDMETHODIMP_(ULONG) Release(void){return m_pOuterUnknown->Release();} - - // IDispatch Implementation - STDMETHODIMP GetTypeInfoCount(UINT* pctinfo); - STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo); - STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId); - STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr); - - // _FramerControl Implementation - STDMETHODIMP Activate(); - STDMETHODIMP get_ActiveDocument(IDispatch** ppdisp); - STDMETHODIMP CreateNew(BSTR ProgIdOrTemplate); - STDMETHODIMP Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP _PrintOutOld(VARIANT PromptToSelectPrinter); - STDMETHODIMP Close(); - STDMETHODIMP put_Caption(BSTR bstr); - STDMETHODIMP get_Caption(BSTR* pbstr); - STDMETHODIMP put_Titlebar(VARIANT_BOOL vbool); - STDMETHODIMP get_Titlebar(VARIANT_BOOL* pbool); - STDMETHODIMP put_Toolbars(VARIANT_BOOL vbool); - STDMETHODIMP get_Toolbars(VARIANT_BOOL* pbool); - STDMETHODIMP put_ModalState(VARIANT_BOOL vbool); - STDMETHODIMP get_ModalState(VARIANT_BOOL* pbool); - STDMETHODIMP ShowDialog(dsoShowDialogType DlgType); - STDMETHODIMP put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool); - STDMETHODIMP get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool); - STDMETHODIMP put_BorderStyle(dsoBorderStyle style); - STDMETHODIMP get_BorderStyle(dsoBorderStyle* pstyle); - STDMETHODIMP put_BorderColor(OLE_COLOR clr); - STDMETHODIMP get_BorderColor(OLE_COLOR* pclr); - STDMETHODIMP put_BackColor(OLE_COLOR clr); - STDMETHODIMP get_BackColor(OLE_COLOR* pclr); - STDMETHODIMP put_ForeColor(OLE_COLOR clr); - STDMETHODIMP get_ForeColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarTextColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarTextColor(OLE_COLOR* pclr); - STDMETHODIMP ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP put_Menubar(VARIANT_BOOL vbool); - STDMETHODIMP get_Menubar(VARIANT_BOOL* pbool); - STDMETHODIMP put_HostName(BSTR bstr); - STDMETHODIMP get_HostName(BSTR* pbstr); - STDMETHODIMP get_DocumentFullName(BSTR* pbstr); - STDMETHODIMP PrintOut(VARIANT PromptUser, VARIANT PrinterName, VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile); - STDMETHODIMP PrintPreview(); - STDMETHODIMP PrintPreviewExit(); - STDMETHODIMP get_IsReadOnly(VARIANT_BOOL* pbool); - STDMETHODIMP get_IsDirty(VARIANT_BOOL* pbool); - STDMETHODIMP put_LockServer(VARIANT_BOOL vbool); - STDMETHODIMP get_LockServer(VARIANT_BOOL* pvbool); - STDMETHODIMP GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults); - STDMETHODIMP SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray); - STDMETHODIMP put_ActivationPolicy(dsoActivationPolicy lPolicy); - STDMETHODIMP get_ActivationPolicy(dsoActivationPolicy *plPolicy); - STDMETHODIMP put_FrameHookPolicy(dsoFrameHookPolicy lPolicy); - STDMETHODIMP get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy); - STDMETHODIMP put_MenuAccelerators(VARIANT_BOOL vbool); - STDMETHODIMP get_MenuAccelerators(VARIANT_BOOL* pvbool); - STDMETHODIMP put_EventsEnabled(VARIANT_BOOL vbool); - STDMETHODIMP get_EventsEnabled(VARIANT_BOOL* pvbool); - STDMETHODIMP get_DocumentName(BSTR* pbstr); - - // IInternalUnknown Implementation - BEGIN_INTERFACE_PART(InternalUnknown, IUnknown) - END_INTERFACE_PART(InternalUnknown) - - // IPersistStreamInit Implementation - BEGIN_INTERFACE_PART(PersistStreamInit, IPersistStreamInit) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP Load(LPSTREAM pStm); - STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); - STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); - STDMETHODIMP InitNew(void); - END_INTERFACE_PART(PersistStreamInit) - - // IPersistPropertyBag Implementation - BEGIN_INTERFACE_PART(PersistPropertyBag, IPersistPropertyBag) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP InitNew(void); - STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); - STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); - END_INTERFACE_PART(PersistPropertyBag) - - // IPersistStorage Implementation - BEGIN_INTERFACE_PART(PersistStorage, IPersistStorage) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP InitNew(LPSTORAGE pStg); - STDMETHODIMP Load(LPSTORAGE pStg); - STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); - STDMETHODIMP SaveCompleted(LPSTORAGE pStg); - STDMETHODIMP HandsOffStorage(void); - END_INTERFACE_PART(PersistStorage) - - // IOleObject Implementation - BEGIN_INTERFACE_PART(OleObject, IOleObject) - STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); - STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); - STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); - STDMETHODIMP Close(DWORD dwSaveOption); - STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); - STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); - STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); - STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); - STDMETHODIMP EnumVerbs(IEnumOLEVERB **ppEnumOleVerb); - STDMETHODIMP Update(); - STDMETHODIMP IsUpToDate(); - STDMETHODIMP GetUserClassID(CLSID *pClsid); - STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); - STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); - STDMETHODIMP Unadvise(DWORD dwConnection); - STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); - STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); - STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); - END_INTERFACE_PART(OleObject) - - // IOleControl Implementation - BEGIN_INTERFACE_PART(OleControl, IOleControl) - STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); - STDMETHODIMP OnMnemonic(LPMSG pMsg); - STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); - STDMETHODIMP FreezeEvents(BOOL bFreeze); - END_INTERFACE_PART(OleControl) - - // IOleInplaceObject Implementation - BEGIN_INTERFACE_PART(OleInplaceObject, IOleInPlaceObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP InPlaceDeactivate(); - STDMETHODIMP UIDeactivate(); - STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); - STDMETHODIMP ReactivateAndUndo(); - END_INTERFACE_PART(OleInplaceObject) - - // IOleInplaceActiveObject Implementation - BEGIN_INTERFACE_PART(OleInplaceActiveObject, IOleInPlaceActiveObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); - STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); - STDMETHODIMP OnDocWindowActivate(BOOL fActivate); - STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); - STDMETHODIMP EnableModeless(BOOL fEnable); - END_INTERFACE_PART(OleInplaceActiveObject) - - // IViewObjectEx Implementation - BEGIN_INTERFACE_PART(ViewObjectEx, IViewObjectEx) - STDMETHODIMP Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue); - STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); - STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); - STDMETHODIMP Unfreeze(DWORD dwFreeze); - STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink); - STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel); - STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); - STDMETHODIMP GetViewStatus(DWORD* pdwStatus); - STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); - END_INTERFACE_PART(ViewObjectEx) - - // IDataObject Implementation - BEGIN_INTERFACE_PART(DataObject, IDataObject) - STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP QueryGetData(FORMATETC *pfmtc); - STDMETHODIMP GetCanonicalFormatEtc(FORMATETC * pfmtcIn, FORMATETC * pfmtcOut); - STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); - STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); - STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); - STDMETHODIMP DUnadvise(DWORD dwConnection); - STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); - END_INTERFACE_PART(DataObject) - - // IProvideClassInfo Implementation - BEGIN_INTERFACE_PART(ProvideClassInfo, IProvideClassInfo) - STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); - END_INTERFACE_PART(ProvideClassInfo) - - // IConnectionPointContainer Implementation - BEGIN_INTERFACE_PART(ConnectionPointContainer, IConnectionPointContainer) - STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); - STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); - END_INTERFACE_PART(ConnectionPointContainer) - - // IEnumConnectionPoints Implementation - BEGIN_INTERFACE_PART(EnumConnectionPoints, IEnumConnectionPoints) - STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); - STDMETHODIMP Skip(ULONG cConnections); - STDMETHODIMP Reset(void); - STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); - END_INTERFACE_PART(EnumConnectionPoints) - - // IConnectionPoint Implementation - BEGIN_INTERFACE_PART(ConnectionPoint, IConnectionPoint) - STDMETHODIMP GetConnectionInterface(IID *pIID); - STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); - STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); - STDMETHODIMP Unadvise(DWORD dwCookie); - STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); - END_INTERFACE_PART(ConnectionPoint) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // ISupportErrorInfo Implementation - BEGIN_INTERFACE_PART(SupportErrorInfo, ISupportErrorInfo) - STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); - END_INTERFACE_PART(SupportErrorInfo) - - // IObjectSafety Implementation - BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety) - STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); - STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); - END_INTERFACE_PART(ObjectSafety) - - // IDsoDocObjectSite Implementation (for DocObject Callbacks to control) - BEGIN_INTERFACE_PART(DsoDocObjectSite, IDsoDocObjectSite) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); - STDMETHODIMP SysMenuCommand(UINT uiCharCode); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - END_INTERFACE_PART(DsoDocObjectSite) - - STDMETHODIMP InitializeNewInstance(); - - STDMETHODIMP InPlaceActivate(LONG lVerb); - STDMETHODIMP UIActivate(BOOL fForceUIActive); - STDMETHODIMP_(void) SetInPlaceVisible(BOOL fShow); - STDMETHODIMP_(void) UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject); - STDMETHODIMP_(void) UpdateInteractiveState(BOOL fActive); - STDMETHODIMP_(void) EnableDropFile(BOOL fEnable); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - STDMETHODIMP_(void) OnDestroyWindow(); - STDMETHODIMP_(void) OnResize(); - STDMETHODIMP_(void) OnMouseMove(UINT x, UINT y); - STDMETHODIMP_(void) OnButtonDown(UINT x, UINT y); - STDMETHODIMP_(void) OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam); - STDMETHODIMP_(void) OnToolbarAction(DWORD cmd); - STDMETHODIMP_(void) OnDropFile(HDROP hdrpFile); - STDMETHODIMP_(void) OnTimer(UINT id); - - STDMETHODIMP_(void) OnForegroundCompChange(BOOL fCompActive); - STDMETHODIMP_(void) OnAppActivationChange(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnComponentActivationChange(BOOL fActivate); - STDMETHODIMP_(void) OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd); - STDMETHODIMP_(void) OnUIFocusChange(BOOL fUIActive); - - STDMETHODIMP_(void) OnPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnSyncPaint(); - STDMETHODIMP_(void) OnWindowEnable(BOOL fEnable){TRACE1("CDsoFramerControl::OnWindowEnable(%d)\n", fEnable);} - STDMETHODIMP_(BOOL) OnSysCommandMenu(CHAR ch); - - STDMETHODIMP_(HMENU) GetActivePopupMenu(); - STDMETHODIMP_(BOOL) FAlertUser(HRESULT hr, LPWSTR pwsFileName); - STDMETHODIMP_(BOOL) FRunningInDesignMode(); - STDMETHODIMP DoDialogAction(dsoShowDialogType item); - - STDMETHODIMP_(void) RaiseActivationEvent(BOOL fActive); - - STDMETHODIMP ProvideErrorInfo(HRESULT hres); - STDMETHODIMP RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs); - - STDMETHODIMP SetTempServerLock(BOOL fLock); - STDMETHODIMP ResetFrameHook(HWND hwndFrameWindow); - - // Some inline methods are provided for common tasks such as site notification - // or calculation of draw size based on user selection of tools and border style. - - void __fastcall ViewChanged() - { - if (m_pDataAdviseHolder) // Send data change notification. - m_pDataAdviseHolder->SendOnDataChange((IDataObject*)&m_xDataObject, NULL, 0); - - if (m_pViewAdviseSink) // Send the view change notification.... - { - m_pViewAdviseSink->OnViewChange(DVASPECT_CONTENT, -1); - if (m_fViewAdviseOnlyOnce) // If they asked to be advised once, kill the connection - m_xViewObjectEx.SetAdvise(DVASPECT_CONTENT, 0, NULL); - } - InvalidateRect(m_hwnd, NULL, TRUE); // Ensure a full repaint... - } - - void __fastcall GetSizeRectAfterBorder(LPRECT lprcx, LPRECT lprc) - { - if (lprcx) CopyRect(lprc, lprcx); - else SetRect(lprc, 0, 0, m_Size.cx, m_Size.cy); - if (m_fBorderStyle) InflateRect(lprc, -(4-m_fBorderStyle), -(4-m_fBorderStyle)); - } - - void __fastcall GetSizeRectAfterTitlebar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterBorder(lprcx, lprc); - if (m_fShowTitlebar) lprc->top += 21; - } - - void __fastcall GetSizeRectForMenuBar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - lprc->bottom = lprc->top + 24; - } - - void __fastcall GetSizeRectForDocument(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - if (m_fShowMenuBar) lprc->top += 24; - if (lprc->top > lprc->bottom) lprc->top = lprc->bottom; - } - - - void __fastcall RedrawCaption() - { - RECT rcT; - if ((m_hwnd) && (m_fShowTitlebar)) - { GetClientRect(m_hwnd, &rcT); rcT.bottom = 21; - InvalidateRect(m_hwnd, &rcT, FALSE); - } - if ((m_hwnd) && (m_fShowMenuBar)) - { GetSizeRectForMenuBar(NULL, &rcT); - InvalidateRect(m_hwnd, &rcT, FALSE); - } - } - - BOOL __fastcall FUseFrameHook(){return (m_lHookPolicy != dsoDisableHook);}; - BOOL __fastcall FDelayFrameHookSet(){return (m_lHookPolicy == dsoSetOnFirstOpen);}; - - BOOL __fastcall FDrawBitmapOnAppDeactive(){return (!(m_lActivationPolicy & dsoKeepUIActiveOnAppDeactive));} - BOOL __fastcall FChangeObjActiveOnFocusChange(){return (m_lActivationPolicy & dsoCompDeactivateOnLostFocus);}; - BOOL __fastcall FIPDeactivateOnCompChange(){return (m_lActivationPolicy & dsoIPDeactivateOnCompDeactive);}; - - // The control window proceedure is handled through static class method. - static STDMETHODIMP_(LRESULT) ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // Force redaw of all child windows... - STDMETHODIMP_(BOOL) InvalidateAllChildWindows(HWND hwnd); - static STDMETHODIMP_(BOOL) InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam); - - // The variables for the control are kept private but accessible to the - // nested classes for each interface. -private: - - ULONG m_cRef; // Reference count - IUnknown *m_pOuterUnknown; // Outer IUnknown (points to m_xInternalUnknown if not agg) - ITypeInfo *m_ptiDispType; // ITypeInfo Pointer (IDispatch Impl) - EXCEPINFO *m_pDispExcep; // EXCEPINFO Pointer (IDispatch Impl) - - HWND m_hwnd; // our window - HWND m_hwndParent; // immediate parent window - SIZEL m_Size; // the size of this control - RECT m_rcLocation; // where we at - - IOleClientSite *m_pClientSite; // active client site of host containter - IOleControlSite *m_pControlSite; // control site - IOleInPlaceSite *m_pInPlaceSite; // inplace site - IOleInPlaceFrame *m_pInPlaceFrame; // inplace frame - IOleInPlaceUIWindow *m_pInPlaceUIWindow; // inplace ui window - - IAdviseSink *m_pViewAdviseSink; // advise sink for view (only 1 allowed) - IOleAdviseHolder *m_pOleAdviseHolder; // OLE advise holder (for oleobject sinks) - IDataAdviseHolder *m_pDataAdviseHolder; // OLE data advise holder (for dataobject sink) - IDispatch *m_dispEvents; // event sink (we only support 1 at a time) - IStorage *m_pOleStorage; // IStorage for OLE hosts. - - CDsoDocObject *m_pDocObjFrame; // The Embedding Class - CDsoDocObject *m_pServerLock; // Optional Server Lock for out-of-proc DocObject - - OLE_COLOR m_clrBorderColor; // Control Colors - OLE_COLOR m_clrBackColor; // " - OLE_COLOR m_clrForeColor; // " - OLE_COLOR m_clrTBarColor; // " - OLE_COLOR m_clrTBarTextColor; // " - - BSTR m_bstrCustomCaption; // A custom caption (if provided) - HMENU m_hmenuFilePopup; // The File menu popup - WORD m_wFileMenuFlags; // Bitflags of enabled file menu items. - WORD m_wSelMenuItem; // Which item (if any) is selected - WORD m_cMenuItems; // Count of items on menu bar - RECT m_rgrcMenuItems[DSO_MAX_MENUITEMS]; // Menu bar items - CHAR m_rgchMenuAccel[DSO_MAX_MENUITEMS]; // Menu bar accelerators - LPWSTR m_pwszHostName; // Custom name for SetHostNames - - class CDsoFrameHookManager* m_pHookManager; // Frame Window Hook Manager Class - LONG m_lHookPolicy; // Policy on how to use frame hook for this host. - LONG m_lActivationPolicy; // Policy on activation behavior for comp focus - HBITMAP m_hbmDeactive; // Bitmap used for IPDeactiveOnXXX policies - UINT m_uiSyncPaint; // Sync paint counter for draw issues with UIDeactivateOnXXX - - unsigned int m_fDirty:1; // does the control need to be resaved? - unsigned int m_fInPlaceActive:1; // are we in place active or not? - unsigned int m_fInPlaceVisible:1; // we are in place visible or not? - unsigned int m_fUIActive:1; // are we UI active or not. - unsigned int m_fHasFocus:1; // do we have current focus. - unsigned int m_fViewAdvisePrimeFirst: 1;// for IViewobject2::setadvise - unsigned int m_fViewAdviseOnlyOnce: 1; // for IViewobject2::setadvise - unsigned int m_fUsingWindowRgn:1; // for SetObjectRects and clipping - unsigned int m_fFreezeEvents:1; // should events be frozen? - unsigned int m_fDesignMode:1; // are we in design mode? - unsigned int m_fModeFlagValid:1; // has mode changed since last check? - unsigned int m_fBorderStyle:2; // the border style - unsigned int m_fShowTitlebar:1; // should we show titlebar? - unsigned int m_fShowToolbars:1; // should we show toolbars? - unsigned int m_fModalState:1; // are we modal? - unsigned int m_fObjectMenu:1; // are we over obj menu item? - unsigned int m_fConCntDone:1; // for enum connectpts - unsigned int m_fAppActive:1; // is the app active? - unsigned int m_fComponentActive:1; // is the component active? - unsigned int m_fShowMenuBar:1; // should we show menubar? - unsigned int m_fInDocumentLoad:1; // set when loading file - unsigned int m_fNoInteractive:1; // set when we don't allow interaction with docobj - unsigned int m_fShowMenuPrev:1; // were menus visible before loss of interactivity? - unsigned int m_fShowToolsPrev:1; // were toolbars visible before loss of interactivity? - unsigned int m_fSyncPaintTimer:1; // is syncpaint timer running? - unsigned int m_fInControlActivate:1; // is currently in activation call? - unsigned int m_fInFocusChange:1; // are we in a focus change? - unsigned int m_fActivateOnStatus:1; // we need to activate on change of status - unsigned int m_fDisableMenuAccel:1; // using menu accelerators - unsigned int m_fBkgrdPaintTimer:1; // using menu accelerators - -}; - - -//////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -- Frame Window Hook Class -// -// Used by the control to allow for proper host notification of focus -// and activation events occurring at top-level window frame. Because -// this DocObject host is an OCX, we don't own these notifications and -// have to "steal" them from our parent using a subclass. -// -// IMPORTANT: Since the parent frame may exist on a separate thread, this -// class does nothing but the hook. The code to notify the active component -// is in a separate global class that is shared by all threads. -// -class CDsoFrameWindowHook -{ -public: - CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook created\n");m_cHookCount=0;m_hwndTopLevelHost=NULL;m_pfnOrigWndProc=NULL;m_fHostUnicodeWindow=FALSE;} - ~CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook deleted\n");} - - static STDMETHODIMP_(CDsoFrameWindowHook*) AttachToFrameWindow(HWND hwndParent); - STDMETHODIMP Detach(); - - static STDMETHODIMP_(CDsoFrameWindowHook*) GetHookFromWindow(HWND hwnd); - inline STDMETHODIMP_(void) AddRef(){InterlockedIncrement((LONG*)&m_cHookCount);} - - static STDMETHODIMP_(LRESULT) - HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - -protected: - DWORD m_cHookCount; - HWND m_hwndTopLevelHost; // Top-level host window (hooked) - WNDPROC m_pfnOrigWndProc; - BOOL m_fHostUnicodeWindow; -}; - -// THE MAX NUMBER OF DSOFRAMER CONTROLS PER PROCESS -#define DSOF_MAX_CONTROLS 20 - -//////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -- Hook Manager Class -// -// Used to keep track of which control is active and forward notifications -// to it using window messages (to cross thread boundaries). -// -class CDsoFrameHookManager -{ -public: - CDsoFrameHookManager(){ODS("CDsoFrameHookManager created\n"); m_fAppActive=TRUE; m_idxActive=DSOF_MAX_CONTROLS; m_cComponents=0;} - ~CDsoFrameHookManager(){ODS("CDsoFrameHookManager deleted\n");} - - static STDMETHODIMP_(CDsoFrameHookManager*) - RegisterFramerControl(HWND hwndParent, HWND hwndControl); - - STDMETHODIMP AddComponent(HWND hwndParent, HWND hwndControl); - STDMETHODIMP DetachComponent(HWND hwndControl); - STDMETHODIMP SetActiveComponent(HWND hwndControl); - STDMETHODIMP OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam); - - inline STDMETHODIMP_(HWND) - GetActiveComponentWindow(){return m_pComponents[m_idxActive].hwndControl;} - - inline STDMETHODIMP_(CDsoFrameWindowHook*) - GetActiveComponentFrame(){return m_pComponents[m_idxActive].phookFrame;} - - STDMETHODIMP_(BOOL) SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam); - -protected: - BOOL m_fAppActive; - DWORD m_idxActive; - DWORD m_cComponents; - struct FHOOK_COMPONENTS - { - HWND hwndControl; - CDsoFrameWindowHook *phookFrame; - } m_pComponents[DSOF_MAX_CONTROLS]; -}; - -#endif //DS_DSOFRAMER_H \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln deleted file mode 100644 index 2c94c084..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln +++ /dev/null @@ -1,69 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Any CPU.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.Build.0 = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.Build.0 = Release|Win32 - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Win32.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Win32.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Win32.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Win32.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Win32.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.old b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.old deleted file mode 100644 index 2996d403..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.old +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.suo.old b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.suo.old deleted file mode 100644 index 5a6ce075..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.suo.old and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj deleted file mode 100644 index e933b00d..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj +++ /dev/null @@ -1,470 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj.7.10.old b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj.7.10.old deleted file mode 100644 index 3fa47abc..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj.7.10.old +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/ipprevw.h b/PROMS/DSOFramer/DSOFramer/Source2005/ipprevw.h deleted file mode 100644 index 22ace9fe..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/ipprevw.h +++ /dev/null @@ -1,88 +0,0 @@ -/*************************************************************************** - * IPPREVIEW.H - * - * DSOFramer: IOleInplacePrintPreview/IOlePreviewCallback - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef __IPPREVIEW_H -#define __IPPREVIEW_H - -//////////////////////////////////////////////////////////////////////// -// -// IOlePreviewCallback -// -// Implemented by host to receive notifaction messages -// from ip object while displaying a print preview. -// -DEFINE_GUID(IID_IOlePreviewCallback, 0xB722BCD5, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOlePreviewCallback -DECLARE_INTERFACE_(IOlePreviewCallback, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOlePreviewCallback methods - STDMETHOD(Notify)(THIS_ DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) PURE; -}; - -#define NOTIFY_FINISHED 1 -#define NOTIFY_BUSY 2 -#define NOTIFY_IDLE 4 -#define NOTIFY_DISABLERESIZE 8 -#define NOTIFY_QUERYCLOSEPREVIEW 16 -#define NOTIFY_FORCECLOSEPREVIEW 32 -#define NOTIFY_UIACTIVE 64 -#define NOTIFY_UNABLETOPREVIEW 128 - -//////////////////////////////////////////////////////////////////////// -// -// IOleInplacePrintPreview -// -// Implemented by server to start/stop print preview. Hosts should -// call QueryStatus to make sure server is able to enter preview mode -// before calling StartPrintPreview. -// -DEFINE_GUID(IID_IOleInplacePrintPreview, 0xB722BCD4, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOleInplacePrintPreview -DECLARE_INTERFACE_(IOleInplacePrintPreview, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOleInplacePrintPreview methods - STDMETHOD(StartPrintPreview)(THIS_ DWORD grfFlags, DVTARGETDEVICE *ptd, IOlePreviewCallback *ppCallback, LONG nFirstPage) PURE; - STDMETHOD(EndPrintPreview)(THIS_ BOOL fForceClose) PURE; - STDMETHOD(QueryStatus)(THIS_ void) PURE; -}; - -#define PREVIEWFLAG_MAYBOTHERUSER 1 -#define PREVIEWFLAG_PROMPTUSER 2 -#define PREVIEWFLAG_USERMAYCHANGEPRINTER 4 -#define PREVIEWFLAG_RECOMPOSETODEVICE 8 - - -#endif //__IPPREVIEW_H diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/mainentry.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/mainentry.cpp deleted file mode 100644 index ef36e7e1..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/mainentry.cpp +++ /dev/null @@ -1,318 +0,0 @@ -/*************************************************************************** - * MAINENTRY.CPP - * - * Main DLL Entry and Required COM Entry Points. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#define INITGUID // Init the GUIDS for the control... -#include "dsoframer.h" - -HINSTANCE v_hModule = NULL; // DLL module handle -HANDLE v_hPrivateHeap = NULL; // Private Memory Heap -ULONG v_cLocks = 0; // Count of server locks -HICON v_icoOffDocIcon = NULL; // Small office icon (for caption bar) -BOOL v_fUnicodeAPI = FALSE; // Flag to determine if we should us Unicode API -BOOL v_fWindows2KPlus = FALSE; -CRITICAL_SECTION v_csecThreadSynch; - -//////////////////////////////////////////////////////////////////////// -// DllMain -- OCX Main Entry -// -// -extern "C" BOOL APIENTRY DllMain(HINSTANCE hDllHandle, DWORD dwReason, LPVOID /*lpReserved*/) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - v_hModule = hDllHandle; - v_hPrivateHeap = HeapCreate(0, 0x1000, 0); - v_icoOffDocIcon = (HICON)LoadImage(hDllHandle, MAKEINTRESOURCE(IDI_SMALLOFFDOC), IMAGE_ICON, 16, 16, 0); - { - DWORD dwVersion = GetVersion(); - v_fUnicodeAPI = ((dwVersion & 0x80000000) == 0); - v_fWindows2KPlus = ((v_fUnicodeAPI) && (LOBYTE(LOWORD(dwVersion)) > 4)); - } - InitializeCriticalSection(&v_csecThreadSynch); - DisableThreadLibraryCalls(hDllHandle); - break; - - case DLL_PROCESS_DETACH: - if (v_icoOffDocIcon) DeleteObject(v_icoOffDocIcon); - if (v_hPrivateHeap) HeapDestroy(v_hPrivateHeap); - DeleteCriticalSection(&v_csecThreadSynch); - break; - } - return TRUE; -} - -#ifdef DSO_MIN_CRT_STARTUP -extern "C" BOOL APIENTRY _DllMainCRTStartup(HINSTANCE hDllHandle, DWORD dwReason, LPVOID lpReserved) -{return DllMain(hDllHandle, dwReason, lpReserved);} -#endif - -//////////////////////////////////////////////////////////////////////// -// Standard COM DLL Entry Points -// -// -//////////////////////////////////////////////////////////////////////// -// DllCanUnloadNow -// -// -STDAPI DllCanUnloadNow() -{ - return ((v_cLocks == 0) ? S_OK : S_FALSE); -} - -//////////////////////////////////////////////////////////////////////// -// DllGetClassObject -// -// Returns IClassFactory instance for FramerControl. We only support -// this one object for creation. -// -STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerClassFactory* pcf; - - CHECK_NULL_RETURN(ppv, E_POINTER); - *ppv = NULL; - - // The only component we can create is the BinderControl... - if (rclsid != CLSID_FramerControl) - return CLASS_E_CLASSNOTAVAILABLE; - - // Create the needed class factory... - pcf = new CDsoFramerClassFactory(); - CHECK_NULL_RETURN(pcf, E_OUTOFMEMORY); - - // Get requested interface. - if (FAILED(hr = pcf->QueryInterface(riid, ppv))) - { - *ppv = NULL; delete pcf; - } - else InterlockedIncrement((LPLONG)&v_cLocks); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllRegisterServer -// -// Registration of the OCX. -// -STDAPI DllRegisterServer() -{ - HRESULT hr = S_OK; - HKEY hk, hk2; - DWORD dwret; - CHAR szbuffer[256]; - LPWSTR pwszModule; - ITypeInfo* pti; - - // If we can't find the path to the DLL, we can't register... - if (!FGetModuleFileName(v_hModule, &pwszModule)) - return E_FAIL; - - // Setup the CLSID. This is the most important. If there is a critical failure, - // we will set HR = GetLastError and return... - if ((dwret = RegCreateKeyEx(HKEY_CLASSES_ROOT, - "CLSID\\"DSOFRAMERCTL_CLSIDSTR, 0, NULL, 0, KEY_WRITE, NULL, &hk, NULL)) != ERROR_SUCCESS) - { - DsoMemFree(pwszModule); - return HRESULT_FROM_WIN32(dwret); - } - - lstrcpy(szbuffer, DSOFRAMERCTL_SHORTNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // Setup the InprocServer32 key... - dwret = RegCreateKeyEx(hk, "InprocServer32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "Apartment"); - RegSetValueEx(hk2, "ThreadingModel", 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // We call a wrapper function for this setting since the path should be - // stored in Unicode to handle non-ANSI file path names on some systems. - // This wrapper will convert the path to ANSI if we are running on Win9x. - // The rest of the Reg calls should be OK in ANSI since they do not - // contain non-ANSI/Unicode-specific characters... - if (!FSetRegKeyValue(hk2, pwszModule)) - hr = E_ACCESSDENIED; - - RegCloseKey(hk2); - - dwret = RegCreateKeyEx(hk, "ProgID", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_PROGID); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - } - else hr = HRESULT_FROM_WIN32(dwret); - - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "Control", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - RegCloseKey(hk2); - } - else hr = HRESULT_FROM_WIN32(dwret); - } - - - // If we succeeded so far, andle the remaining (non-critical) reg keys... - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "ToolboxBitmap32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - LPWSTR pwszT = DsoCopyStringCat(pwszModule, L",102"); - if (pwszT) - { - FSetRegKeyValue(hk2, pwszT); - DsoMemFree(pwszT); - } - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "TypeLib", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_TLIBSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "Version", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_VERSIONSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "MiscStatus", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "131473"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "DataFormats\\GetSet\\0", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "3,1,32,1"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - } - - RegCloseKey(hk); - DsoMemFree(pwszModule); - - // This should catch any critical failures during setup of CLSID... - RETURN_ON_FAILURE(hr); - - // Setup the ProgID (non-critical)... - if (RegCreateKeyEx(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID, 0, - NULL, 0, KEY_WRITE, NULL, &hk, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_FULLNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - if (RegCreateKeyEx(hk, "CLSID", 0, - NULL, 0, KEY_WRITE, NULL, &hk2, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_CLSIDSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - RegCloseKey(hk); - } - - // Load the type info (this should register the lib once)... - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, &pti); - if (SUCCEEDED(hr)) pti->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// RegRecursiveDeleteKey -// -// Helper function called by DllUnregisterServer for nested key removal. -// -static HRESULT RegRecursiveDeleteKey(HKEY hkParent, LPCSTR pszSubKey) -{ - HRESULT hr = S_OK; - HKEY hk; - DWORD dwret, dwsize; - FILETIME time ; - CHAR szbuffer[512]; - - dwret = RegOpenKeyEx(hkParent, pszSubKey, 0, KEY_ALL_ACCESS, &hk); - if (dwret != ERROR_SUCCESS) - return HRESULT_FROM_WIN32(dwret); - - // Enumerate all of the decendents of this child... - dwsize = 510 ; - while (RegEnumKeyEx(hk, 0, szbuffer, &dwsize, NULL, NULL, NULL, &time) == ERROR_SUCCESS) - { - // If there are any sub-folders, delete them first (to make NT happy)... - hr = RegRecursiveDeleteKey(hk, szbuffer); - if (FAILED(hr)) break; - dwsize = 510; - } - - // Close the child... - RegCloseKey(hk); - - RETURN_ON_FAILURE(hr); - - // Delete this child. - dwret = RegDeleteKey(hkParent, pszSubKey); - if (dwret != ERROR_SUCCESS) - hr = HRESULT_FROM_WIN32(dwret); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllUnregisterServer -// -// Removal code for the OCX. -// -STDAPI DllUnregisterServer() -{ - HRESULT hr; - hr = RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "CLSID\\"DSOFRAMERCTL_CLSIDSTR); - if (SUCCEEDED(hr)) - { - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID); - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "TypeLib\\"DSOFRAMERCTL_TLIBSTR); - } - - // This means the key does not exist (i.e., the DLL - // was alreay unregistered, so return OK)... - if (hr == 0x80070002) hr = S_OK; - - return hr; -} diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/rbbinder.h b/PROMS/DSOFramer/DSOFramer/Source2005/rbbinder.h deleted file mode 100644 index c312a2bb..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/rbbinder.h +++ /dev/null @@ -1,253 +0,0 @@ -/*************************************************************************** - * RBBINDER.H - * - * DSOFramer: Internet Publishing Provider (MSDAIPP) Compatible Header - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_RBBINDER_H -#define DS_RBBINDER_H - -//////////////////////////////////////////////////////////////////////// -// The Microsoft OLEDB Provider for Internet Publishing (MSDAIPP) is now -// standard with MDAC 2.5. However, it will run with MDAC 2.1, so this -// header will allow us to safely compile without 2.5. -// -#define OLEDBVER 0x0250 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include // 2-byte structure packing - -#ifndef BEGIN_INTERFACE -#define BEGIN_INTERFACE -#endif - - -//////////////////////////////////////////////////////////////////////// -// MSDAIPP Specific GUIDs (not defined in OLEDB.H) -// -DEFINE_GUID(CLSID_MSDAIPP_DSO, 0xAF320921L, 0x9381, 0x11d1, 0x9C, 0x3C, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(CLSID_MSDAIPP_BINDER, 0xE1D2BF40L, 0xA96B, 0x11d1, 0x9C, 0x6B, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(DBPROPSET_MSDAIPP_INIT, 0x8F1033E3L, 0xB2CD, 0x11d1, 0x9C, 0x74, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); - - -//////////////////////////////////////////////////////////////////////// -// OLEDB Additional defines -- included for machines with MDAC 2.0/2.1 -// - -//////////////////////////////////////////////////////////////////////// -// OLEDB 2.5 GUIDS Redefined for use here; this is to avoid linker errors -// on machines that have different versions of MDAC libs. -// -DEFINE_GUID(IIDX_IBindResource, 0x0c733ab1L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IDBBinderProperties, 0x0c733ab3L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_ICreateRow, 0x0c733ab2L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IAuthenticate, 0x79eac9d0L, 0xbaf9, 0x11ce, 0x8c, 0x82, 0x00, 0xaa, 0x00, 0x4b, 0xa9, 0x0b); -DEFINE_GUID(DBGUIDX_STREAM, 0xc8b522f9L, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); - - -/////////////////////////////////////////////////////////////////////// -// MSDAIPP Binding Interfaces (all this should be standard in MDAC 2.5) -// -#ifndef __IBindResource_FWD_DEFINED__ -#define __IBindResource_FWD_DEFINED__ - -typedef interface IBindResource IBindResource; - -typedef DWORD DBBINDURLFLAG; -enum DBBINDURLFLAGENUM -{ - DBBINDURLFLAG_READ = 0x1L, - DBBINDURLFLAG_WRITE = 0x2L, - DBBINDURLFLAG_READWRITE = 0x3L, - DBBINDURLFLAG_SHARE_DENY_READ = 0x4L, - DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8L, - DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xcL, - DBBINDURLFLAG_SHARE_DENY_NONE = 0x10L, - DBBINDURLFLAG_ASYNCHRONOUS = 0x1000L, - DBBINDURLFLAG_COLLECTION = 0x2000L, - DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000L, - DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000L, - DBBINDURLFLAG_RECURSIVE = 0x400000L, - DBBINDURLFLAG_OUTPUT = 0x800000L, - DBBINDURLFLAG_WAITFORINIT = 0x1000000L, - DBBINDURLFLAG_OPENIFEXISTS = 0x2000000L, - DBBINDURLFLAG_OVERWRITE = 0x4000000L, - DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000L -}; - -typedef DWORD DBBINDURLSTATUS; -enum DBBINDURLSTATUSENUM -{ - DBBINDURLSTATUS_S_OK = 0L, - DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1L, - DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4L, - DBBINDURLSTATUS_S_REDIRECTED = 0x8L -}; - -enum DBPROP_OLEDB25_RB -{ - DBPROP_INIT_BINDFLAGS = 0x10eL, - DBPROP_INIT_LOCKOWNER = 0x10fL -}; - -typedef ULONG DBCOUNTITEM; - -typedef struct tagDBIMPLICITSESSION - { - IUnknown __RPC_FAR *pUnkOuter; - IID __RPC_FAR *piid; - IUnknown __RPC_FAR *pSession; - } DBIMPLICITSESSION; - -#endif //__IBindResource_FWD_DEFINED__ - - -#ifndef __IBindResource_INTERFACE_DEFINED__ -#define __IBindResource_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IBindResource -DECLARE_INTERFACE_(IBindResource, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IBindResource methods */ - STDMETHOD(Bind)(THIS_ - /* [in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ DBIMPLICITSESSION __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__IBindResource_INTERFACE_DEFINED__ - - - -#ifndef __ICreateRow_INTERFACE_DEFINED__ -#define __ICreateRow_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE ICreateRow -DECLARE_INTERFACE_(ICreateRow, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* ICreateRow methods */ - STDMETHOD(CreateRow)(THIS_ - /* [unique][in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [unique][in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ IUnknown __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [out] */ LPOLESTR __RPC_FAR *ppwszNewURL, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__ICreateRow_INTERFACE_DEFINED__ - - -#ifndef __IDBBinderProperties_INTERFACE_DEFINED__ -#define __IDBBinderProperties_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IDBBinderProperties -DECLARE_INTERFACE_(IDBBinderProperties, IDBProperties) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IDBProperties methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - - STDMETHOD(GetProperties)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertySets, DBPROPSET __RPC_FAR *__RPC_FAR *prgPropertySets) PURE; - STDMETHOD(GetPropertyInfo)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertyInfoSets, DBPROPINFOSET __RPC_FAR *__RPC_FAR *prgPropertyInfoSets, OLECHAR __RPC_FAR *__RPC_FAR *ppDescBuffer) PURE; - STDMETHOD(SetProperties)(THIS_ ULONG cPropertySets, DBPROPSET __RPC_FAR rgPropertySets[]) PURE; -#endif - /* IDBBinderProperties methods */ - STDMETHOD(Reset)(THIS) PURE; -}; - -#endif //__IDBBinderProperties_INTERFACE_DEFINED__ - - -//////////////////////////////////////////////////////////////////////// -// IAuthenticate (borrowed from urlmon.h to avoid extra includes) -// -#ifndef __IAuthenticate_INTERFACE_DEFINED__ -#define __IAuthenticate_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IAuthenticate -DECLARE_INTERFACE_(IAuthenticate, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IAuthenticate methods */ - STDMETHOD(Authenticate)(THIS_ HWND __RPC_FAR *phwnd, LPWSTR __RPC_FAR *pszUsername, LPWSTR __RPC_FAR *pszPassword) PURE; -}; - -#endif //__IAuthenticate_INTERFACE_DEFINED__ - -//OLEDB 2.1 Error values -#ifndef DB_E_READONLY -#define DB_E_READONLY ((HRESULT)0x80040E94L) -#define DB_E_RESOURCELOCKED ((HRESULT)0x80040E92L) -#define DB_E_CANNOTCONNECT ((HRESULT)0x80040E96L) -#define DB_E_TIMEOUT ((HRESULT)0x80040E97L) -#define DB_E_RESOURCEEXISTS ((HRESULT)0x80040E98L) -#define DB_E_OUTOFSPACE ((HRESULT)0x80040E9AL) -#endif - -//OLEDB 2.5 Error values -#ifndef DB_SEC_E_SAFEMODE_DENIED -#define DB_SEC_E_SAFEMODE_DENIED ((HRESULT)0x80040E9BL) -#endif - -#ifdef __cplusplus -} //extern "C" -#endif - -#endif // DS_RBBINDER_H - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/utilities.cpp deleted file mode 100644 index 9b34cdf1..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.cpp +++ /dev/null @@ -1,1359 +0,0 @@ -/*************************************************************************** - * UTILITIES.CPP - * - * Shared helper functions and routines. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// Core Utility Functions -// -//////////////////////////////////////////////////////////////////////// -// Heap Allocation (Private Heap) -// -extern HANDLE v_hPrivateHeap; -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize) -{ - CHECK_NULL_RETURN(v_hPrivateHeap, NULL); - return HeapAlloc(v_hPrivateHeap, HEAP_ZERO_MEMORY, cbSize); -} - -STDAPI_(void) DsoMemFree(LPVOID ptr) -{ - if ((v_hPrivateHeap) && (ptr)) - HeapFree(v_hPrivateHeap, 0, ptr); -} - -void * _cdecl operator new(size_t size){ return DsoMemAlloc(size);} -void _cdecl operator delete(void *ptr){ DsoMemFree(ptr); } -int __cdecl _purecall(){__asm{int 3}; return 0;} - -//////////////////////////////////////////////////////////////////////// -// Global String Functions -// -//////////////////////////////////////////////////////////////////////// -// DsoConvertToUnicodeEx -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pwszUnicode, E_POINTER); - pwszUnicode[0] = L'\0'; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = MultiByteToWideChar(iCode, 0, pszMbcsString, cbMbcsLen, pwszUnicode, cbUniLen); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pwszUnicode[cbRet] = L'\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCSEx -// -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pszMbcsString, DWORD cbMbcsLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - pszMbcsString[0] = L'\0'; - - CHECK_NULL_RETURN(pwszUnicodeString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = WideCharToMultiByte(iCode, 0, pwszUnicodeString, -1, pszMbcsString, cbMbcsLen, NULL, NULL); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pszMbcsString[cbRet] = '\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPWSTR -// -// Takes a MBCS string and returns a LPWSTR allocated on private heap. -// -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString) -{ - LPWSTR pwsz = NULL; - UINT cblen, cbnew; - - if ((pszMbcsString) && - ((cblen = lstrlen(pszMbcsString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((pwsz = (LPWSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToUnicodeEx(pszMbcsString, cblen, pwsz, cbnew, GetACP()))) - { - DsoMemFree(pwsz); - pwsz = NULL; - } - } - } - - return pwsz; -} -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCS -// -// Takes a WCHAR string and returns a LPSTR on the private heap. -// -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString) -{ - LPSTR psz = NULL; - UINT cblen, cbnew; - - if ((pwszUnicodeString) && - ((cblen = lstrlenW(pwszUnicodeString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((psz = (LPSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToMBCSEx(pwszUnicodeString, cblen, psz, cbnew, GetACP()))) - { - DsoMemFree(psz); psz = NULL; - } - } - } - - return psz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToBSTR -// -// Takes a MBCS string and returns a BSTR. NULL is returned if the -// function fails or the string is empty. -// -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString) -{ - BSTR bstr = NULL; - LPWSTR pwsz = DsoConvertToLPWSTR(pszMbcsString); - if (pwsz) - { - bstr = SysAllocString(pwsz); - DsoMemFree(pwsz); - } - return bstr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPOLESTR -// -// Returns Unicode string in COM Task Memory (CoTaskMemAlloc). -// -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszUnicodeString, NULL); - cblen = lstrlenW(pwszUnicodeString); - - pwsz = (LPWSTR)CoTaskMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszUnicodeString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyString -// -// Duplicates the string into private heap string. -// -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszString, NULL); - cblen = lstrlenW(pwszString); - - pwsz = (LPWSTR)DsoMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCat -// -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2) -{return DsoCopyStringCatEx(pwszString1, 1, &pwszString2);} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCatEx -// -// Duplicates the string into private heap string and appends one or more -// strings to the end (concatenation). -// -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs) -{ - LPWSTR pwsz; - UINT i, cblenb, cblent; - UINT *pcblens; - - // We assume you have a base string to start with. If not, we return NULL... - if ((pwszBaseString == NULL) || - ((cblenb = lstrlenW(pwszBaseString)) < 1)) - return NULL; - - // If we have nothing to append, just do a plain copy... - if ((cStrs == 0) || (ppwszStrs == NULL)) - return DsoCopyString(pwszBaseString); - - // Determine the size of the final string by finding the lengths - // of each. We create an array of sizes to use later on... - cblent = cblenb; - pcblens = new UINT[cStrs]; - CHECK_NULL_RETURN(pcblens, NULL); - - for (i = 0; i < cStrs; i++) - { - pcblens[i] = lstrlenW(ppwszStrs[i]); - cblent += pcblens[i]; - } - - // If we have data to append, create the new string and append the - // data by copying them in place. We expect UTF-16 Unicode strings - // for this to work, but this should be normal... - if (cblent > cblenb) - { - pwsz = (LPWSTR)DsoMemAlloc(((cblent + 1) * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, NULL); - - memcpy(pwsz, pwszBaseString, (cblenb * sizeof(WCHAR))); - cblent = cblenb; - - for (i = 0; i < cStrs; i++) - { - memcpy((pwsz + cblent), ppwszStrs[i], (pcblens[i] * sizeof(WCHAR))); - cblent += pcblens[i]; - } - } - else pwsz = DsoCopyString(pwszBaseString); - - delete [] pcblens; - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCLSIDtoLPSTR -// -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid) -{ - LPSTR psz = NULL; - LPWSTR pwsz; - if (SUCCEEDED(StringFromCLSID(clsid, &pwsz))) - { - psz = DsoConvertToMBCS(pwsz); - CoTaskMemFree(pwsz); - } - return psz; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoCompareStringsEx -// -// Calls CompareString API using Unicode version (if available on OS). Otherwise, -// we have to thunk strings down to MBCS to compare. This is fairly inefficient for -// Win9x systems that don't handle Unicode, but hey...this is only a sample. -// -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2) -{ - UINT iret; - LCID lcid = GetThreadLocale(); - UINT cblen1, cblen2; - - // Check that valid parameters are passed and then contain somethimg... - if ((pwsz1 == NULL) || (cch1 == 0) || - ((cblen1 = ((cch1 > 0) ? cch1 : lstrlenW(pwsz1))) == 0)) - return CSTR_LESS_THAN; - - if ((pwsz2 == NULL) || (cch2 == 0) || - ((cblen2 = ((cch2 > 0) ? cch2 : lstrlenW(pwsz2))) == 0)) - return CSTR_GREATER_THAN; - - // If the string is of the same size, then we do quick compare to test for - // equality (this is slightly faster than calling the API, but only if we - // expect the calls to find an equal match)... - if (cblen1 == cblen2) - { - for (iret = 0; iret < cblen1; iret++) - { - if (pwsz1[iret] == pwsz2[iret]) - continue; - - if (((pwsz1[iret] >= 'A') && (pwsz1[iret] <= 'Z')) && - ((pwsz1[iret] + ('a' - 'A')) == pwsz2[iret])) - continue; - - if (((pwsz2[iret] >= 'A') && (pwsz2[iret] <= 'Z')) && - ((pwsz2[iret] + ('a' - 'A')) == pwsz1[iret])) - continue; - - break; // don't continue if we can't quickly match... - } - - // If we made it all the way, then they are equal... - if (iret == cblen1) - return CSTR_EQUAL; - } - - // Now ask the OS to check the strings and give us its read. (We prefer checking - // in Unicode since this is faster and we may have strings that can't be thunked - // down to the local ANSI code page)... - if (v_fUnicodeAPI) - { - iret = CompareStringW(lcid, NORM_IGNORECASE | NORM_IGNOREWIDTH, pwsz1, cblen1, pwsz2, cblen2); - } - else - { - // If we are on Win9x, we don't have much of choice (thunk the call)... - LPSTR psz1 = DsoConvertToMBCS(pwsz1); - LPSTR psz2 = DsoConvertToMBCS(pwsz2); - iret = CompareStringA(lcid, NORM_IGNORECASE, psz1, -1, psz2, -1); - DsoMemFree(psz2); - DsoMemFree(psz1); - } - - return iret; -} - - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -//////////////////////////////////////////////////////////////////////// -// General Functions (checks to see if we can recognize type) -// -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz) -{ - return ((pwsz) && (*pwsz == L'\\') && (*(pwsz + 1) == L'\\') && (*(pwsz + 2) != L'\\')); -} - -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz) -{ - return ((pwsz) && - (((*pwsz > 64) && (*pwsz < 91)) || ((*pwsz > 96) && (*pwsz < 123))) && - (*(pwsz + 1) == L':') && (*(pwsz + 2) == L'\\')); -} - -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz) -{ - return ((pwsz) && ((*pwsz == L'H') || (*pwsz == L'h')) && - ((*(pwsz + 1) == L'T') || (*(pwsz + 1) == L't')) && - ((*(pwsz + 2) == L'T') || (*(pwsz + 2) == L't')) && - ((*(pwsz + 3) == L'P') || (*(pwsz + 3) == L'p')) && - ((*(pwsz + 4) == L':') || (((*(pwsz + 4) == L'S') || (*(pwsz + 4) == L's')) && (*(pwsz + 5) == L':')))); -} - -//////////////////////////////////////////////////////////////////////// -// GetTempPathForURLDownload -// -// Constructs a temp path for a downloaded file. Note we scan the URL -// to find the name of the file so we can use its exention for server -// association (in case it is a non-docfile -- like RTF) and also -// create our own subfolder to try and avoid name conflicts in temp -// folder itself. -// -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile) -{ - DWORD dw; - LPWSTR pwszTPath = NULL; - LPWSTR pwszTFile = NULL; - CHAR szTmpPath[MAX_PATH]; - - // Do a little parameter checking and find length of the URL... - if (!(pwszURL) || ((dw = lstrlenW(pwszURL)) < 6) || - !(LooksLikeHTTP(pwszURL)) || !(ppwszLocalFile)) - return FALSE; - - *ppwszLocalFile = NULL; - - if (GetTempPath(MAX_PATH, szTmpPath)) - { - DWORD dwtlen = lstrlen(szTmpPath); - if (dwtlen > 0 && szTmpPath[dwtlen-1] != '\\') - lstrcat(szTmpPath, "\\"); - - lstrcat(szTmpPath, "DsoFramer"); - - if (CreateDirectory(szTmpPath, NULL) || GetLastError() == ERROR_ALREADY_EXISTS) - { - lstrcat(szTmpPath, "\\"); - pwszTPath = DsoConvertToLPWSTR(szTmpPath); - } - } - - if (pwszTPath) - { - if (pwszTFile = DsoCopyString(pwszURL)) - { - LPWSTR pwszT = pwszTFile; - while (*(++pwszT)) - if (*pwszT == L'?'){*pwszT = L'\0'; break;} - - while (*(--pwszT)) - if (*pwszT == L'/'){++pwszT; break;} - - *ppwszLocalFile = DsoCopyStringCat(pwszTPath, pwszT); - - DsoMemFree(pwszTFile); - } - - DsoMemFree(pwszTPath); - } - - return (BOOL)(*ppwszLocalFile); -} - -//////////////////////////////////////////////////////////////////////// -// URLDownloadFile -// -// Does a simple URLMON download of file (no save back to server allowed), -// and no dependent files will be downloaded (just one temp file). -// -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile) -{ - typedef HRESULT (WINAPI *PFN_URLDTFW)(LPUNKNOWN, LPCWSTR, LPCWSTR, DWORD, LPUNKNOWN); - static PFN_URLDTFW pfnURLDownloadToFileW = NULL; - HMODULE hUrlmon; - - if (pfnURLDownloadToFileW == NULL) - { - if (hUrlmon = LoadLibrary("URLMON.DLL")) - pfnURLDownloadToFileW = (PFN_URLDTFW)GetProcAddress(hUrlmon, "URLDownloadToFileW"); - } - - if (pfnURLDownloadToFileW == NULL) - return E_UNEXPECTED; - - return pfnURLDownloadToFileW(punk, pwszURL, pwszLocalFile, 0, NULL); -} - - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -#define HIMETRIC_PER_INCH 2540 // number HIMETRIC units per inch -#define PTS_PER_INCH 72 // number points (font size) per inch - -#define MAP_PIX_TO_LOGHIM(x,ppli) MulDiv(HIMETRIC_PER_INCH, (x), (ppli)) -#define MAP_LOGHIM_TO_PIX(x,ppli) MulDiv((ppli), (x), HIMETRIC_PER_INCH) - -//////////////////////////////////////////////////////////////////////// -// DsoHimetricToPixels -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_LOGHIM_TO_PIX(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_LOGHIM_TO_PIX(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// DsoPixelsToHimetric -// -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_PIX_TO_LOGHIM(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_PIX_TO_LOGHIM(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd) -{ - HBITMAP hbmpold, hbmp = NULL; - HDC hdcWin, hdcMem; - RECT rc; - INT x, y; - - if (!GetWindowRect(hwnd, &rc)) - return NULL; - - x = (rc.right - rc.left); if (x < 0) x = 1; - y = (rc.bottom - rc.top); if (y < 0) y = 1; - - hdcWin = GetDC(hwnd); - hdcMem = CreateCompatibleDC(hdcWin); - - hbmp = CreateCompatibleBitmap(hdcWin, x, y); - hbmpold = (HBITMAP)SelectObject(hdcMem, hbmp); - - BitBlt(hdcMem, 0,0, x, y, hdcWin, 0,0, SRCCOPY); - - SelectObject(hdcMem, hbmpold); - DeleteDC(hdcMem); - ReleaseDC(hwnd, hdcWin); - - return hbmp; -} - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild) -{ - HWND hwnd; - - if ((hwndChild == NULL) || !IsWindow(hwndChild)) - return FALSE; - - if (hwndParent == NULL) - return TRUE; - - if (!IsWindow(hwndParent)) - return FALSE; - - hwnd = hwndChild; - - while (hwnd = GetParent(hwnd)) - if (hwnd == hwndParent) - return TRUE; - - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// DsoGetTypeInfoEx -// -// Gets an ITypeInfo from the LIBID specified. Optionally can load and -// register the typelib from a module resource (if specified). Used to -// load our typelib on demand. -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti) -{ - HRESULT hr; - ITypeLib* ptlib; - - CHECK_NULL_RETURN(ppti, E_POINTER); - *ppti = NULL; - - // Try to pull information from the registry... - hr = LoadRegTypeLib(rlibid, wVerMaj, wVerMin, lcid, &ptlib); - - // If that failed, and we have a resource module to load from, - // try loading it from the module... - if (FAILED(hr) && (hResource)) - { - LPWSTR pwszPath; - if (FGetModuleFileName(hResource, &pwszPath)) - { - // Now, load the type library from module resource file... - hr = LoadTypeLib(pwszPath, &ptlib); - - // Register library to make things easier next time... - if (SUCCEEDED(hr)) - RegisterTypeLib(ptlib, pwszPath, NULL); - - DsoMemFree(pwszPath); - } - } - - // We have the typelib. Now get the requested typeinfo... - if (SUCCEEDED(hr)) - hr = ptlib->GetTypeInfoOfGuid(rguid, ppti); - - // Release the type library interface. - SAFE_RELEASE_INTERFACE(ptlib); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoDispatchInvoke -// -// Wrapper for IDispatch::Invoke calls to event sinks, or late bound call -// to embedded object to get ambient property. -// -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret) -{ - HRESULT hr = S_FALSE; - DISPID dspidPut = DISPID_PROPERTYPUT; - DISPPARAMS dspparm = {NULL, NULL, 0, 0}; - - CHECK_NULL_RETURN(pdisp, E_POINTER); - - dspparm.rgvarg = rgargs; - dspparm.cArgs = cargs; - - if ((wflags & DISPATCH_PROPERTYPUT) || (wflags & DISPATCH_PROPERTYPUTREF)) - { - dspparm.rgdispidNamedArgs = &dspidPut; - dspparm.cNamedArgs = 1; - } - - SEH_TRY - - if (pwszname) - hr = pdisp->GetIDsOfNames(IID_NULL, &pwszname, 1, LOCALE_USER_DEFAULT, &dspid); - - if (SUCCEEDED(hr)) - hr = pdisp->Invoke(dspid, IID_NULL, LOCALE_USER_DEFAULT, (WORD)(DISPATCH_METHOD | wflags), &dspparm, pvtret, NULL, NULL); - - SEH_EXCEPT(hr) - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoReportError -- Report Error for both ComThreadError and DispError. -// -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx) -{ - BSTR bstrSource, bstrDescription; - ICreateErrorInfo* pcerrinfo; - IErrorInfo* perrinfo; - CHAR szError[MAX_PATH]; - UINT nID = 0; - - // Don't need to do anything unless this is an error. - if ((hr == S_OK) || SUCCEEDED(hr)) return hr; - - // Is this one of our custom errors (if so we will pull description from resource)... - if ((hr > DSO_E_ERR_BASE) && (hr < DSO_E_ERR_MAX)) - nID = (hr & 0xFF); - - // Set the source name... - bstrSource = SysAllocString(L"DsoFramerControl"); - - // Set the error description... - if (pwszCustomMessage) - { - bstrDescription = SysAllocString(pwszCustomMessage); - } - else if (((nID) && LoadString(v_hModule, nID, szError, sizeof(szError))) || - (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, hr, 0, szError, sizeof(szError), NULL))) - { - bstrDescription = DsoConvertToBSTR(szError); - } - else bstrDescription = NULL; - - // Set ErrorInfo so that vtable clients can get rich error information... - if (SUCCEEDED(CreateErrorInfo(&pcerrinfo))) - { - pcerrinfo->SetSource(bstrSource); - pcerrinfo->SetDescription(bstrDescription); - - if (SUCCEEDED(pcerrinfo->QueryInterface(IID_IErrorInfo, (void**) &perrinfo))) - { - SetErrorInfo(0, perrinfo); - perrinfo->Release(); - } - pcerrinfo->Release(); - } - - // Fill-in DispException Structure for late-boud clients... - if (peiDispEx) - { - peiDispEx->scode = hr; - peiDispEx->bstrSource = SysAllocString(bstrSource); - peiDispEx->bstrDescription = SysAllocString(bstrDescription); - } - - // Free temp strings... - SAFE_FREEBSTR(bstrDescription); - SAFE_FREEBSTR(bstrSource); - - // We always return error passed (so caller can chain this in return call). - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// Variant Type Helpers (Fast Access to Variant Data) -// -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px) -{return ((px->vt == (VT_VARIANT|VT_BYREF)) ? (px->pvarVal) : px);} - -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px) -{return ((px->vt == VT_EMPTY) || ((px->vt & VT_ERROR) == VT_ERROR));} - -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px) -{return ((px->vt == VT_BSTR) ? px->bstrVal : ((px->vt == (VT_BSTR|VT_BYREF)) ? *(px->pbstrVal) : NULL));} - -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px) -{return (((px->vt & (VT_BYREF|VT_ARRAY)) == (VT_BYREF|VT_ARRAY)) ? *(px->pparray) : (((px->vt & VT_ARRAY) == VT_ARRAY) ? px->parray : NULL));} - -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px) -{return (((px->vt == VT_DISPATCH) || (px->vt == VT_UNKNOWN)) ? px->punkVal : (((px->vt == (VT_DISPATCH|VT_BYREF)) || (px->vt == (VT_UNKNOWN|VT_BYREF))) ? *(px->ppunkVal) : NULL));} - -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef) -{return (((px->vt & 0xFF) != VT_I2) ? fdef : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->piVal) : px->iVal);} - -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef) -{return (((px->vt & 0xFF) != VT_I4) ? (LONG)DsoPVarShortFromPVar(px, (SHORT)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->plVal) : px->lVal);} - -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef) -{return (((px->vt & 0xFF) != VT_BOOL) ? (BOOL)DsoPVarLongFromPVar(px, (LONG)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? (BOOL)(*(px->pboolVal)) : (BOOL)(px->boolVal));} - - -//////////////////////////////////////////////////////////////////////// -// Win32 Unicode API wrappers -// -// This project is not compiled to Unicode in order for it to run on Win9x -// machines. However, in order to try to keep the code language/locale neutral -// we use these wrappers to call the Unicode API functions when supported, -// and thunk down strings to local code page if must run MBCS API. -// - -//////////////////////////////////////////////////////////////////////// -// FFileExists -// -// Returns TRUE if the given file exists. Does not handle URLs. -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath) -{ - DWORD dw = 0xFFFFFFFF; - if (v_fUnicodeAPI) - { - dw = GetFileAttributesW(wzPath); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzPath); - if (psz) dw = GetFileAttributesA(psz); - DsoMemFree(psz); - } - return (dw != 0xFFFFFFFF); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenLocalFile -// -// Returns TRUE if the file can be opened with the access required. -// Use the handle for ReadFile/WriteFile operations as normal. -// -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile) -{ - CHECK_NULL_RETURN(phFile, FALSE); - *phFile = INVALID_HANDLE_VALUE; - if (v_fUnicodeAPI) - { - *phFile = CreateFileW(wzFilePath, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzFilePath); - if (psz) *phFile = CreateFileA(psz, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - DsoMemFree(psz); - } - return (*phFile != INVALID_HANDLE_VALUE); -} - - -//////////////////////////////////////////////////////////////////////// -// FPerformShellOp -// -// This function started as a wrapper for SHFileOperation, but that -// shell function had an enormous performance hit, especially on Win9x -// and NT4. To speed things up we removed the shell32 call and are -// using the kernel32 APIs instead. The only drawback is we can't -// handle multiple files, but that is not critical for this project. -// -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo) -{ - BOOL f = FALSE; - if (v_fUnicodeAPI) - { - switch (dwOp) - { - case FO_COPY: f = CopyFileW(wzFrom, wzTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileW(wzFrom, wzTo); break; - case FO_DELETE: f = DeleteFileW(wzFrom); break; - } - } - else - { - LPSTR pszFrom = DsoConvertToMBCS(wzFrom); - LPSTR pszTo = DsoConvertToMBCS(wzTo); - - switch (dwOp) - { - case FO_COPY: f = CopyFileA(pszFrom, pszTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileA(pszFrom, pszTo); break; - case FO_DELETE: f = DeleteFileA(pszFrom); break; - } - - if (pszFrom) DsoMemFree(pszFrom); - if (pszTo) DsoMemFree(pszTo); - } - - return f; -} - -//////////////////////////////////////////////////////////////////////// -// FGetModuleFileName -// -// Handles Unicode/ANSI paths from a module handle. -// -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName) -{ - LPWSTR pwsz; - DWORD dw; - - CHECK_NULL_RETURN(wzFileName, FALSE); - *wzFileName = NULL; - - pwsz = (LPWSTR)DsoMemAlloc((MAX_PATH * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, FALSE); - - if (v_fUnicodeAPI) - { - dw = GetModuleFileNameW(hModule, pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - } - else - { - dw = GetModuleFileNameA(hModule, (LPSTR)pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - - LPWSTR pwsz2 = DsoConvertToLPWSTR((LPSTR)pwsz); - if (pwsz2 == NULL) - { - DsoMemFree(pwsz); - return FALSE; - } - - DsoMemFree(pwsz); - pwsz = pwsz2; - } - - *wzFileName = pwsz; - return TRUE; -} - - -//////////////////////////////////////////////////////////////////////// -// FIsIECacheFile -// -// Determines if file came from IE Cache (treat as read-only). -// -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile) -{ - BOOL fIsCacheFile = FALSE; - LPWSTR pwszTmpCache = NULL; - BYTE rgbuffer[MAX_PATH * sizeof(WCHAR)]; - HKEY hk; - - if (RegOpenKey(HKEY_CURRENT_USER, - "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hk) == ERROR_SUCCESS) - { - DWORD dwT, dwS; dwT = MAX_PATH; - memset(rgbuffer, 0, (MAX_PATH * sizeof(WCHAR))); - - if (v_fUnicodeAPI) - { - if ((RegQueryValueExA(hk, "Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoConvertToLPWSTR((LPSTR)rgbuffer); - } - else - { - if ((RegQueryValueExW(hk, L"Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoCopyString((LPWSTR)rgbuffer); - } - - RegCloseKey(hk); - - if (pwszTmpCache) - { - dwS = lstrlenW(pwszTmpCache); - dwT = lstrlenW(pwszFile); - fIsCacheFile = ((dwS < dwT) && - (DsoCompareStringsEx(pwszTmpCache, dwS, pwszFile, dwS) == CSTR_EQUAL)); - DsoMemFree(pwszTmpCache); - } - } - - return fIsCacheFile; -} - -//////////////////////////////////////////////////////////////////////// -// FDrawText -// -// This is used by the control for drawing the caption in the titlebar. -// Since a custom caption could contain Unicode characters only printable -// on Unicode OS, we should try to use the Unicode version when available. -// -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt) -{ - BOOL f; - if (v_fUnicodeAPI) - { - f = (BOOL)DrawTextW(hdc, pwsz, -1, prc, fmt); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - f = (BOOL)DrawTextA(hdc, psz, -1, prc, fmt); - DsoMemFree(psz); - } - return f; -} - - -//////////////////////////////////////////////////////////////////////// -// FSetRegKeyValue -// -// We use this for registration when dealing with the file path, since -// that path may have Unicode characters on some systems. Win9x boxes -// will have to be converted to ANSI. -// -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz) -{ - LONG lret; - if (v_fUnicodeAPI) - { - lret = RegSetValueExW(hk, NULL, 0, REG_SZ, (BYTE*)pwsz, (lstrlenW(pwsz) * sizeof(WCHAR))); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - lret = RegSetValueExA(hk, NULL, 0, REG_SZ, (BYTE*)psz, lstrlen(psz)); - DsoMemFree(psz); - } - return (lret == ERROR_SUCCESS); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenPrinter -// -// Open the specified printer by name. -// -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - if (v_fUnicodeAPI) - { - PRINTER_DEFAULTSW prtdef; - memset(&prtdef, 0, sizeof(PRINTER_DEFAULTSW)); - prtdef.DesiredAccess = PRINTER_ACCESS_USE; - fRet = OpenPrinterW((LPWSTR)pwszPrinter, phandle, &prtdef); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwszPrinter); - fRet = OpenPrinterA(psz, phandle, NULL); - if (!fRet) dwLastError = GetLastError(); - DsoMemFree(psz); - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - -//////////////////////////////////////////////////////////////////////// -// FGetPrinterSettings -// -// Returns the default device, port name, and DEVMODE structure for the -// printer passed. Handles Unicode translation of DEVMODE if on Win9x. -// -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - DWORD cbNeed, cbAlloc = 0; - - if ((ppwszProcessor == NULL) || (ppwszDevice == NULL) || (ppwszOutput == NULL) || - (ppdvmode == NULL) || (pcbSize == NULL)) - return FALSE; - - *ppwszProcessor = NULL; *ppwszDevice = NULL; *ppwszOutput = NULL; - *ppdvmode = NULL; *pcbSize = 0; - - if (v_fUnicodeAPI) // Use Unicode API if possible (much easier)... - { - GetPrinterW(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2W *pinfo = (PRINTER_INFO_2W*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterW(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoCopyString(pinfo->pDriverName); - *ppwszOutput = DsoCopyString(pinfo->pPortName); - - if (pinfo->pDevMode) // If we have the devmode, just need to copy it... - { - DWORD cbData = (pinfo->pDevMode->dmSize) + (pinfo->pDevMode->dmDriverExtra); - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - memcpy(*ppdvmode, pinfo->pDevMode, cbData); - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - else - { - GetPrinterA(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2A *pinfo = (PRINTER_INFO_2A*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterA(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoConvertToLPWSTR(pinfo->pDriverName); - *ppwszOutput = DsoConvertToLPWSTR(pinfo->pPortName); - - if (pinfo->pDevMode) // For Win9x API, we have to convert the DEVMODEA - { // into DEVMODEW so we have Unicode names for TARGETDEVICE... - DWORD cbData = sizeof(DEVMODEW) + - ((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? (pinfo->pDevMode->dmSize - sizeof(DEVMODEA)) : 0) + - pinfo->pDevMode->dmDriverExtra; - - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmDeviceName), CCHDEVICENAME, - (LPWSTR)((*ppdvmode)->dmDeviceName), CCHDEVICENAME, 0); - - // The rest of the copy depends on the default size of the DEVMODE. - // Just check the size and convert the form name if it exists... - if (pinfo->pDevMode->dmSize <= FIELD_OFFSET(DEVMODEA, dmFormName)) - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - pinfo->pDevMode->dmSize - CCHDEVICENAME); - } - else - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - FIELD_OFFSET(DEVMODEA, dmFormName) - - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); - - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmFormName), CCHFORMNAME, - (LPWSTR)((*ppdvmode)->dmFormName), CCHFORMNAME, 0); - - if (pinfo->pDevMode->dmSize > FIELD_OFFSET(DEVMODEA, dmLogPixels)) - memcpy(&((*ppdvmode)->dmLogPixels), - &(pinfo->pDevMode->dmLogPixels), - pinfo->pDevMode->dmSize - FIELD_OFFSET(DEVMODEA, dmLogPixels)); - } - - (*ppdvmode)->dmSize = (WORD)((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? - (sizeof(DEVMODEW) + (pinfo->pDevMode->dmSize - sizeof(DEVMODEA))) : - sizeof(DEVMODEW)); - - memcpy((((BYTE*)(*ppdvmode)) + ((*ppdvmode)->dmSize)), - (((BYTE*)(pinfo->pDevMode)) + (pinfo->pDevMode->dmSize)), - pinfo->pDevMode->dmDriverExtra); - - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetFileFromUser -// -// Displays the Open/Save dialog using Unicode version if available. Returns the -// path as a unicode BSTR regardless of OS. -// -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - BOOL fSuccess; - DWORD dw; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrFile, E_POINTER); - *pbstrFile = NULL; - - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call. If so, we use OPENFILENAMEW and - // get the file path in Unicode, returned as BSTR... - if (v_fUnicodeAPI) - { - OPENFILENAMEW ofnw; - memset(&ofnw, 0, sizeof(OPENFILENAMEW)); - ofnw.lStructSize = sizeof(OPENFILENAMEW); - ofnw.hwndOwner = hwndOwner; - ofnw.lpstrFilter = pwzFilter; - ofnw.nFilterIndex = dwFiltIdx; - ofnw.lpstrDefExt = pwszDefExt; - ofnw.lpstrTitle = pwzTitle; - ofnw.lpstrFile = (LPWSTR)&buffer[0]; - ofnw.nMaxFile = MAX_PATH; - ofnw.Flags = dwFlags; - - if (pwszCurrentItem) - { - dw = lstrlenW(pwszCurrentItem); - if ((dw) && (dw < MAX_PATH)) - { - memcpy(ofnw.lpstrFile, pwszCurrentItem, dw * sizeof(WCHAR)); - ofnw.lpstrFile[dw] = L'\0'; - } - } - - if (fShowSave) - fSuccess = GetSaveFileNameW(&ofnw); - else - fSuccess = GetOpenFileNameW(&ofnw); - - if (fSuccess) - { - *pbstrFile = SysAllocString((LPWSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofnw.Flags & OFN_READONLY); - } - } - else - { // If not, then we use OPENFILENAMEA and thunk down our params to - // the MBCS of the system, and then thunk back the Unicode for the return... - OPENFILENAMEA ofn; - memset(&ofn, 0, sizeof(OPENFILENAMEA)); - ofn.lStructSize = sizeof(OPENFILENAMEA); - ofn.hwndOwner = hwndOwner; - ofn.lpstrFilter = DsoConvertToMBCS(pwzFilter); - ofn.nFilterIndex = dwFiltIdx; - ofn.lpstrDefExt = DsoConvertToMBCS(pwszDefExt); - ofn.lpstrTitle = DsoConvertToMBCS(pwzTitle); - ofn.lpstrFile = (LPSTR)&buffer[0]; - ofn.nMaxFile = MAX_PATH; - ofn.Flags = dwFlags; - - if (pwszCurrentItem) - DsoConvertToMBCSEx(pwszCurrentItem, lstrlenW(pwszCurrentItem), (LPSTR)&buffer[0], MAX_PATH, GetACP()); - - if (fShowSave) - fSuccess = GetSaveFileNameA(&ofn); - else - fSuccess = GetOpenFileNameA(&ofn); - - - if (fSuccess) - { - *pbstrFile = DsoConvertToBSTR((LPCSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofn.Flags & OFN_READONLY); - } - - DsoMemFree((void*)(ofn.lpstrDefExt)); - DsoMemFree((void*)(ofn.lpstrFilter)); - DsoMemFree((void*)(ofn.lpstrTitle)); - } - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrFile == NULL) ? E_FAIL : S_OK); -} - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetOleInsertObjectFromUser -// -// Displays the OLE InsertObject dialog using Unicode version if available. -// -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - LPCLSID lpNewExcludeList = NULL; - int nNewExcludeCount = 0; - int nNewExcludeLen = 0; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrResult, E_POINTER); - *pbstrResult = NULL; - - // To limit list to just those marked as DocObject servers, you have to enum - // the registry and create an exclude list for OLE dialog. Exclude all except - // those that are marked DocObject under their ProgID. - if (fDocObjectOnly) - { - HKEY hkCLSID; - HKEY hkItem; - HKEY hkDocObject; - DWORD dwIndex = 0; - CHAR szName[MAX_PATH+1]; - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_READ|KEY_ENUMERATE_SUB_KEYS, &hkCLSID) == ERROR_SUCCESS) - { - while (RegEnumKey(hkCLSID, dwIndex++, szName, MAX_PATH) == ERROR_SUCCESS) - { - if (RegOpenKeyEx(hkCLSID, szName, 0, KEY_READ, &hkItem) == ERROR_SUCCESS) - { - if ((RegOpenKeyEx(hkItem, "DocObject", 0, KEY_READ, &hkDocObject) != ERROR_SUCCESS)) - { - CLSID clsid; - LPWSTR pwszClsid = DsoConvertToLPWSTR(szName); - if ((pwszClsid) && SUCCEEDED(CLSIDFromString(pwszClsid, &clsid))) - { - if (lpNewExcludeList == NULL) - { - nNewExcludeCount = 0; - nNewExcludeLen = 16; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - } - if (nNewExcludeCount == nNewExcludeLen) - { - LPCLSID lpOldList = lpNewExcludeList; - nNewExcludeLen <<= 2; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - memcpy(lpNewExcludeList, lpOldList, sizeof(CLSID) * nNewExcludeCount); - delete [] lpOldList; - } - - lpNewExcludeList[nNewExcludeCount] = clsid; - nNewExcludeCount++; - } - SAFE_FREESTRING(pwszClsid); - RegCloseKey(hkDocObject); - } - - RegCloseKey(hkItem); - } - } - RegCloseKey(hkCLSID); - } - } - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call... - if (v_fUnicodeAPI) - { - OLEUIINSERTOBJECTW oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTW); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = pwzTitle; - oidlg.lpszFile = (LPWSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectW(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = SysAllocString((LPWSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - } - else - { - OLEUIINSERTOBJECTA oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTA); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = DsoConvertToMBCS(pwzTitle); - oidlg.lpszFile = (LPSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectA(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = DsoConvertToBSTR((LPSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - - DsoMemFree((void*)(oidlg.lpszCaption)); - } - - if (lpNewExcludeList) - delete [] lpNewExcludeList; - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrResult == NULL) ? E_FAIL : S_OK); -} diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.h b/PROMS/DSOFramer/DSOFramer/Source2005/utilities.h deleted file mode 100644 index b0da4dec..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.h +++ /dev/null @@ -1,242 +0,0 @@ -/*************************************************************************** - * UTILITIES.H - * - * DSOFramer: Common Utilities and Macros (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_UTILITIES_H -#define DS_UTILITIES_H - -#include -#include - -//////////////////////////////////////////////////////////////////////// -// Fixed Win32 Errors as HRESULTs -// -#define E_WIN32_BUFFERTOOSMALL 0x8007007A //HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) -#define E_WIN32_ACCESSVIOLATION 0x800701E7 //HRESULT_FROM_WIN32(ERROR_INVALID_ADDRESS) -#define E_WIN32_LASTERROR (0x80070000 | GetLastError()) // Assured Error with last Win32 code -#define E_VBA_NOREMOTESERVER 0x800A01CE - -//////////////////////////////////////////////////////////////////////// -// Heap Allocation -// -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize); -STDAPI_(void) DsoMemFree(LPVOID ptr); - -// Override new/delete to use our task allocator -// (removing CRT dependency will improve code performance and size)... -void * _cdecl operator new(size_t size); -void _cdecl operator delete(void *ptr); - -//////////////////////////////////////////////////////////////////////// -// String Manipulation Functions -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage); -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pwszMbcsString, DWORD cbMbcsLen, UINT uiCodePage); - -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString); -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString); -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString); -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString); -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2); -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString); -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2); -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs); -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid); - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz); -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile); -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile); - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py); -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py); - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd); - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild); - -//////////////////////////////////////////////////////////////////////// -// OLE/Typelib Function Wrappers -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti); -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret); -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx); - -//////////////////////////////////////////////////////////////////////// -// Unicode Win32 API wrappers (handles thunk down for Win9x) -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath); -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile); -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo); -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName); -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile); -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt); -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz); - -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle); -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize); - -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly); - -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype); - -//////////////////////////////////////////////////////////////////////// -// Common macros -- Used to make code more readable. -// -#define SEH_TRY __try { -#define SEH_EXCEPT(hr) } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){hr = E_WIN32_ACCESSVIOLATION;} -#define SEH_EXCEPT_NULL } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){} -#define SEH_START_FINALLY } __finally { -#define SEH_END_FINALLY } - -#define RETURN_ON_FAILURE(x) if (FAILED(x)) return (x) -#define GOTO_ON_FAILURE(x, lbl) if (FAILED(x)) goto lbl -#define CHECK_NULL_RETURN(v, e) if ((v) == NULL) return (e) - -#define SAFE_ADDREF_INTERFACE if (x) { (x)->AddRef(); } -#define SAFE_RELEASE_INTERFACE(x) if (x) { (x)->Release(); (x) = NULL; } -#define SAFE_SET_INTERFACE(x, y) if (((x) = (y)) != NULL) ((IUnknown*)(x))->AddRef() -#define SAFE_FREESTRING(s) if (s) { DsoMemFree(s); (s) = NULL; } -#define SAFE_FREEBSTR(s) if (s) { SysFreeString(s); (s) = NULL; } - -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px); -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px); -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px); -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px); -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px); -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef); -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef); -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef); - -#define PARAM_IS_MISSING(x) DsoIsVarParamMissing(DsoPVarFromPVarRef((x))) -#define LPWSTR_FROM_VARIANT(x) DsoPVarWStrFromPVar(DsoPVarFromPVarRef(&(x))) -#define LONG_FROM_VARIANT(x, y) DsoPVarLongFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define BOOL_FROM_VARIANT(x, y) DsoPVarBoolFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define PUNK_FROM_VARIANT(x) DsoPVarUnkFromPVar(DsoPVarFromPVarRef(&(x))) -#define PSARRAY_FROM_VARIANT(x) DsoPVarArrayFromPVar(DsoPVarFromPVarRef(&(x))) - -#define ASCII_UPPERCASE(x) ((((x) > 96) && ((x) < 123)) ? (x) - 32 : (x)) -#define ASCII_LOWERCASE(x) ((((x) > 64) && ((x) < 91)) ? (x) + 32 : (x)) - -//////////////////////////////////////////////////////////////////////// -// Debug macros -// -#ifdef _DEBUG - -#define ASSERT(x) if(!(x)) DebugBreak() -#define ODS(x) OutputDebugString(x) - -#define TRACE1(sz, arg1) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1)); \ - ODS(ach); } - -#define TRACE2(sz, arg1, arg2) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2)); \ - ODS(ach); } - -#define TRACE3(sz, arg1, arg2, arg3) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2), (arg3)); \ - ODS(ach); } - -#define TRACE_LPRECT(sz, lprc) { \ - CHAR ach[1024]; \ - wsprintf(ach, "RECT %s - left=%d, top=%d, right=%d, bottom=%d\n", \ - (sz), (lprc)->left, (lprc)->top, (lprc)->right, (lprc)->bottom); \ - ODS(ach); } - -#else // !defined(_DEBUG) - -#define ASSERT(x) -#define ODS(x) -#define TRACE1(sz, arg1) -#define TRACE2(sz, arg1, arg2) -#define TRACE3(sz, arg1, arg2, arg3) -#define TRACE_LPRECT(sz, lprc) - -#endif // (_DEBUG) - -//////////////////////////////////////////////////////////////////////// -// Macros for Nested COM Interfaces -// -#ifdef _DEBUG -#define DEFINE_REFCOUNT ULONG m_cRef; -#define IMPLEMENT_DEBUG_ADDREF m_cRef++; -#define IMPLEMENT_DEBUG_RELEASE(x) ASSERT(m_cRef > 0); m_cRef--; if (m_cRef == 0){ODS(" > I" #x " released\n");} -#define IMPLEMENT_DEBUG_REFSET m_cRef = 0; -#define IMPLEMENT_DEBUG_REFCHECK(x) ASSERT(m_cRef == 0); if (m_cRef != 0){ODS(" * I" #x " NOT released!!\n");} -#else -#define DEFINE_REFCOUNT -#define IMPLEMENT_DEBUG_ADDREF -#define IMPLEMENT_DEBUG_RELEASE(x) -#define IMPLEMENT_DEBUG_REFSET -#define IMPLEMENT_DEBUG_REFCHECK(x) -#endif /* !_DEBUG */ - -#define BEGIN_INTERFACE_PART(localClass, baseClass) \ -class X##localClass : public baseClass \ -{ public: X##localClass(){IMPLEMENT_DEBUG_REFSET} \ - ~X##localClass(){IMPLEMENT_DEBUG_REFCHECK(##localClass)} \ - STDMETHOD(QueryInterface)(REFIID iid, PVOID* ppvObj); \ - STDMETHOD_(ULONG, AddRef)(); \ - STDMETHOD_(ULONG, Release)(); \ - DEFINE_REFCOUNT - -#define END_INTERFACE_PART(localClass) \ -} m_x##localClass; \ -friend class X##localClass; - -#define METHOD_PROLOGUE(theClass, localClass) \ - theClass* pThis = \ - ((theClass*)(((BYTE*)this) - (size_t)&(((theClass*)0)->m_x##localClass))); - -#define IMPLEMENT_INTERFACE_UNKNOWN(theClass, localClass) \ - ULONG theClass::X##localClass::AddRef() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_ADDREF \ - return pThis->AddRef(); \ - } \ - ULONG theClass::X##localClass::Release() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_RELEASE(##localClass) \ - return pThis->Release(); \ - } \ - STDMETHODIMP theClass::X##localClass::QueryInterface(REFIID iid, void **ppvObj) { \ - METHOD_PROLOGUE(theClass, localClass) \ - return pThis->QueryInterface(iid, ppvObj); \ - } - - -#endif //DS_UTILITIES_H \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/version.h b/PROMS/DSOFramer/DSOFramer/Source2005/version.h deleted file mode 100644 index fcc71283..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/version.h +++ /dev/null @@ -1,59 +0,0 @@ -/*************************************************************************** - * VERSION.H - Contol version defines - * - * DSOFramer: Version Information Header (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: If you modify this sample, you should change all of the values - * below to differentiate your control from this sample. - * - ***************************************************************************/ -#ifndef DS_VERSION_H -#define DS_VERSION_H - -#define DSOFRAMERCTL_VERSION 1.3 -#define DSOFRAMERCTL_VERSION_MAJOR 1 -#define DSOFRAMERCTL_VERSION_MINOR 3 -#define DSOFRAMERCTL_VERSION_BUILD 1323 -#define DSOFRAMERCTL_VERSIONSTR "1.3" -#define DSOFRAMERCTL_VERSIONSTRFULL "1.3.1323.1" - -#define DSOFRAMERCTL_FULLNAME "DSO ActiveX Document Framer Control" -#define DSOFRAMERCTL_SHORTNAME "DSO Framer Control Object" - -#define DSOFRAMERCTL_PROGID "DSOFramer.FramerControl" - -#define DSOFRAMERCTL_TLIB 00460180-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_TLIBSTR "{00460180-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_INTERFACE 00460181-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOFRAMERCTL_CLSID 00460182-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_CLSIDSTR "{00460182-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_DISPEVTS 00460185-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOF_DISPID_FILECMD 1 -#define DSOF_DISPID_DOCOPEN 2 -#define DSOF_DISPID_DOCCLOSE 3 -#define DSOF_DISPID_ACTIVATE 4 -#define DSOF_DISPID_BDOCCLOSE 5 -#define DSOF_DISPID_BDOCSAVE 6 -#define DSOF_DISPID_ENDPREVIEW 7 -#define DSOF_DISPID_SAVECOMPLETE 8 - -#endif //DS_VERSION_H diff --git a/PROMS/DSOFramer/Source2005/Lib/dsoframer.idl b/PROMS/DSOFramer/Source2005/Lib/dsoframer.idl deleted file mode 100644 index d818958e..00000000 --- a/PROMS/DSOFramer/Source2005/Lib/dsoframer.idl +++ /dev/null @@ -1,281 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.IDL - DSO Framer ActiveX Control Type Library - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: You should not attempt to modify this library unless you are - * sure you do not break binary compatibility, or you change all the GUIDs - * listed in version.h so as to build a completely new control. - * - ***************************************************************************/ -#include -#include "..\version.h" - -[ - uuid(DSOFRAMERCTL_TLIB), helpstring(DSOFRAMERCTL_FULLNAME), - version(DSOFRAMERCTL_VERSION), lcid(0x0000), control -] -library DSOFramer -{ - importlib("STDOLE2.TLB"); - - typedef enum dsoBorderStyle - { - dsoBorderNone = 0, - dsoBorderFlat, - dsoBorder3D, - dsoBorder3DThin - } dsoBorderStyle; - - typedef enum dsoShowDialogType - { - dsoDialogNew = 0, - dsoDialogOpen, - dsoDialogSave, - dsoDialogSaveCopy, - dsoDialogPrint, - dsoDialogPageSetup, - dsoDialogProperties - } dsoShowDialogType; - - typedef enum dsoFileCommandType - { - dsoFileNew = 0, - dsoFileOpen, - dsoFileClose, - dsoFileSave, - dsoFileSaveAs, - dsoFilePrint, - dsoFilePageSetup, - dsoFileProperties, - dsoFilePrintPreview - } dsoFileCommandType; - - - [ - uuid(DSOFRAMERCTL_INTERFACE), hidden, version(DSOFRAMERCTL_VERSION), - dual, oleautomation, odl - ] - interface _FramerControl : IDispatch - { - [id(0x00010001), helpstring("Activates the current document object.")] - HRESULT Activate(); - - [propget, id(0x00010002), helpstring("Returns the Automation interface of the document object.")] - HRESULT ActiveDocument([out,retval] IDispatch** ppdisp); - - [id(0x00010003), helpstring("Creates a new document based on the ProgId or Template file provided.")] - HRESULT CreateNew([in] BSTR ProgIdOrTemplate); - - [id(0x00010004), helpstring("Opens a document from a file, URL, or Automation object.")] - HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly, [in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010005), helpstring("Saves the document to specified location or its original location.")] - HRESULT Save([in, optional] VARIANT SaveAsDocument, [in, optional] VARIANT OverwriteExisting, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010008), hidden] - HRESULT _PrintOutOld([in, optional] VARIANT PromptToSelectPrinter); - - [id(0x00010009), helpstring("Closes the currently open document.")] - HRESULT Close(); - - [propput, id(0x0001000A), helpstring("Returns/sets the titlebar caption.")] - HRESULT Caption([in] BSTR bstr); - [propget, id(0x0001000A)] - HRESULT Caption([out,retval] BSTR* pbstr); - - [propput, id(0x0001000B), helpstring("Returns/sets whether the titlebar should be displayed.")] - HRESULT Titlebar([in] VARIANT_BOOL vbool); - [propget, id(0x0001000B)] - HRESULT Titlebar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001000C), helpstring("Returns/sets whether toolbars should be displayed.")] - HRESULT Toolbars([in] VARIANT_BOOL vbool); - [propget, id(0x0001000C)] - HRESULT Toolbars([out,retval] VARIANT_BOOL* pbool); - - [propput, nonbrowsable, id(0x0001000D), helpstring("Returns/sets the controls modal state.")] - HRESULT ModalState([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x0001000D)] - HRESULT ModalState([out,retval] VARIANT_BOOL* pbool); - - [id(0x0001000E), helpstring("Displays a modal dialog of the given type for user action.")] - HRESULT ShowDialog([in] dsoShowDialogType DlgType); - - [propput, id(0x0001000F), helpstring("Returns/sets whether a specific action item is enabled.")] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [in] VARIANT_BOOL vbool); - [propget, id(0x0001000F)] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [out,retval] VARIANT_BOOL* pbool); - - [propput, id(DISPID_BORDERSTYLE), helpstring("Returns/sets the border style for the control.")] - HRESULT BorderStyle([in] dsoBorderStyle style); - [propget, id(DISPID_BORDERSTYLE)] - HRESULT BorderStyle([out, retval] dsoBorderStyle* pstyle); - - [propput, id(DISPID_BORDERCOLOR), helpstring("Returns/sets the border color of the control.")] - HRESULT BorderColor([in] OLE_COLOR clr); - [propget, id(DISPID_BORDERCOLOR)] - HRESULT BorderColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color of the control.")] - HRESULT BackColor([in] OLE_COLOR clr); - [propget, id(DISPID_BACKCOLOR)] - HRESULT BackColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_FORECOLOR), helpstring("Returns/sets the foreground color of the control.")] - HRESULT ForeColor([in]OLE_COLOR clr); - [propget, id(DISPID_FORECOLOR)] - HRESULT ForeColor([out,retval]OLE_COLOR* pclr); - - [propput, id(0x00010010), helpstring("Returns/sets the color of the titlebar.")] - HRESULT TitlebarColor([in] OLE_COLOR clr); - [propget, id(0x00010010)] - HRESULT TitlebarColor([out,retval] OLE_COLOR* pclr); - - [propput, id(0x00010011), helpstring("Returns/sets the color of text for the titlebar.")] - HRESULT TitlebarTextColor([in] OLE_COLOR clr); - [propget, id(0x00010011)] - HRESULT TitlebarTextColor([out,retval] OLE_COLOR* pclr); - - [id(0x00010012), helpstring("Calls IOleCommandTarget::Exec on embedded object.")] - HRESULT ExecOleCommand([in] LONG OLECMDID, [in, optional] VARIANT Options, [in, optional] VARIANT* vInParam, [in, out, optional] VARIANT* vInOutParam); - - [propput, id(0x00010013), helpstring("Returns/sets whether a menu bar should be displayed.")] - HRESULT Menubar([in] VARIANT_BOOL vbool); - [propget, id(0x00010013)] - HRESULT Menubar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x00010014), helpstring("Returns/sets host application name (used in embedding).")] - HRESULT HostName([in] BSTR bstr); - [propget, id(0x00010014)] - HRESULT HostName([out,retval] BSTR* pbstr); - - [propget, id(0x00010015), helpstring("Returns full document path name for object.")] - HRESULT DocumentFullName([out,retval] BSTR* pbstr); - - [id(0x00010016), helpstring("Prints current document to specific printer with settings.")] - HRESULT PrintOut([in, optional] VARIANT PromptUser, [in, optional] VARIANT PrinterName, [in, optional] VARIANT Copies, - [in, optional] VARIANT FromPage, [in, optional] VARIANT ToPage, [in, optional] VARIANT OutputFile); - - [id(0x00010017), helpstring("Starts a print preview (if document supports it).")] - HRESULT PrintPreview(); - - [id(0x00010018), helpstring("Exits a current print preview.")] - HRESULT PrintPreviewExit(); - - [propget, id(0x00010019), helpstring("Returns True/False if file was open read-only, or has not been saved.")] - HRESULT IsReadOnly([out,retval] VARIANT_BOOL* pbool); - - [propget, id(0x0001001A), helpstring("Returns True/False if file has been altered or needs save.")] - HRESULT IsDirty([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001001B), helpstring("Sets lock on the current embed server to keep it running (document must be open first).")] - HRESULT LockServer([in] VARIANT_BOOL vbool); - [propget, id(0x0001001B)] - HRESULT LockServer([out,retval] VARIANT_BOOL* pvbool); - - [id(0x0001001C), nonbrowsable, helpstring("Gets the content of the body of the document (excluding headers/footers).")] - HRESULT GetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [out,retval] VARIANT *pvResults); - - [id(0x0001001D), nonbrowsable, helpstring("Sets the content of the body of the document.")] - HRESULT SetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [in] VARIANT DataByteArray); - - [propput, id(0x0001001E), helpstring("Allows host to set policy on activation behavior.")] - HRESULT ActivationPolicy([in] enum dsoActivationPolicy lPolicy); - [propget, id(0x0001001E)] - HRESULT ActivationPolicy([out,retval] enum dsoActivationPolicy *plPolicy); - - [propput, id(0x0001001F), helpstring("Allows host to set policy on use of the frame hook.")] - HRESULT FrameHookPolicy([in] enum dsoFrameHookPolicy lPolicy); - [propget, id(0x0001001F)] - HRESULT FrameHookPolicy([out,retval] enum dsoFrameHookPolicy *plPolicy); - - [propput, id(0x00010020), helpstring("Gets/sets whether control should try to handle menu accelerators or pass to host window.")] - HRESULT MenuAccelerators([in] VARIANT_BOOL vbool); - [propget, id(0x00010020)] - HRESULT MenuAccelerators([out,retval] VARIANT_BOOL* pvbool); - - [propput, nonbrowsable, id(0x00010021), helpstring("Gets/sets whether control events are raised.")] - HRESULT EventsEnabled([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x00010021)] - HRESULT EventsEnabled([out,retval] VARIANT_BOOL* pvbool); - - [propget, id(0x00010022), helpstring("Returns just the document name (excluding path).")] - HRESULT DocumentName([out,retval] BSTR* pbstr); - }; - - [ - uuid(DSOFRAMERCTL_DISPEVTS), hidden - ] - dispinterface _DFramerCtlEvents - { - properties: - methods: - [id(DSOF_DISPID_FILECMD), helpstring("Called when File menu item is selected by user (may be canceled).")] - HRESULT OnFileCommand([in] dsoFileCommandType Item, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_DOCOPEN), helpstring("Called when document is opened or new document added.")] - HRESULT OnDocumentOpened([in] BSTR File, [in] IDispatch* Document); - - [id(DSOF_DISPID_DOCCLOSE), helpstring("Called when document is closed.")] - HRESULT OnDocumentClosed(); - - [id(DSOF_DISPID_ACTIVATE), helpstring("Called when component gains/loses activation.")] - HRESULT OnActivationChange([in] VARIANT_BOOL fGoingActive); - - [id(DSOF_DISPID_BDOCCLOSE), helpstring("Called before document is closed (may be canceled).")] - HRESULT BeforeDocumentClosed([in] IDispatch* Document, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_BDOCSAVE), helpstring("Called before document is saved (may be canceled).")] - HRESULT BeforeDocumentSaved([in] IDispatch* Document, [in] BSTR Location, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_ENDPREVIEW), helpstring("Called when print preview is closed.")] - HRESULT OnPrintPreviewExit(); - - [id(DSOF_DISPID_SAVECOMPLETE), helpstring("Called when save is successful.")] - HRESULT OnSaveCompleted([in] IDispatch* Document, [in] BSTR DocName, [in] BSTR FullFileLocation); - - }; - - [ - uuid(DSOFRAMERCTL_CLSID), - helpstring(DSOFRAMERCTL_SHORTNAME), control - ] - coclass FramerControl - { - [default] interface _FramerControl; - [default, source] dispinterface _DFramerCtlEvents; - }; - - - typedef enum dsoFrameHookPolicy - { - dsoNormalBehavior = 0, - dsoSetOnFirstOpen, - dsoResetNow, - dsoDisableHook = 0xFFFFFFFF - } dsoFrameHookPolicy; - - typedef enum dsoActivationPolicy - { - dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x01, - dsoCompDeactivateOnLostFocus = 0x02, - dsoIPDeactivateOnCompDeactive = 0x04 - } dsoActivationPolicy; - -}; - diff --git a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.c b/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.c deleted file mode 100644 index 20e9c1e1..00000000 --- a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.c +++ /dev/null @@ -1,87 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* at Mon Jan 18 22:14:07 2038 - */ -/* Compiler settings for Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -/* @@MIDL_FILE_HEADING( ) */ - - - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif // !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_DSOFramer,0x00460180,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, IID__FramerControl,0x00460181,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, DIID__DFramerCtlEvents,0x00460185,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(CLSID, CLSID_FramerControl,0x00460182,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - diff --git a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.h b/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.h deleted file mode 100644 index e7ba4ea1..00000000 --- a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.h +++ /dev/null @@ -1,971 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* at Mon Jan 18 22:14:07 2038 - */ -/* Compiler settings for Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - - -#ifndef __dsoframerlib_h__ -#define __dsoframerlib_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef ___FramerControl_FWD_DEFINED__ -#define ___FramerControl_FWD_DEFINED__ -typedef interface _FramerControl _FramerControl; - -#endif /* ___FramerControl_FWD_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_FWD_DEFINED__ -#define ___DFramerCtlEvents_FWD_DEFINED__ -typedef interface _DFramerCtlEvents _DFramerCtlEvents; - -#endif /* ___DFramerCtlEvents_FWD_DEFINED__ */ - - -#ifndef __FramerControl_FWD_DEFINED__ -#define __FramerControl_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class FramerControl FramerControl; -#else -typedef struct FramerControl FramerControl; -#endif /* __cplusplus */ - -#endif /* __FramerControl_FWD_DEFINED__ */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_dsoframer_0000_0000 */ -/* [local] */ - -#pragma external_header(push) -#pragma external_header(pop) - - -extern RPC_IF_HANDLE __MIDL_itf_dsoframer_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dsoframer_0000_0000_v0_0_s_ifspec; - - -#ifndef __DSOFramer_LIBRARY_DEFINED__ -#define __DSOFramer_LIBRARY_DEFINED__ - -/* library DSOFramer */ -/* [control][lcid][version][helpstring][uuid] */ - -typedef -enum dsoBorderStyle - { - dsoBorderNone = 0, - dsoBorderFlat = ( dsoBorderNone + 1 ) , - dsoBorder3D = ( dsoBorderFlat + 1 ) , - dsoBorder3DThin = ( dsoBorder3D + 1 ) - } dsoBorderStyle; - -typedef -enum dsoShowDialogType - { - dsoDialogNew = 0, - dsoDialogOpen = ( dsoDialogNew + 1 ) , - dsoDialogSave = ( dsoDialogOpen + 1 ) , - dsoDialogSaveCopy = ( dsoDialogSave + 1 ) , - dsoDialogPrint = ( dsoDialogSaveCopy + 1 ) , - dsoDialogPageSetup = ( dsoDialogPrint + 1 ) , - dsoDialogProperties = ( dsoDialogPageSetup + 1 ) - } dsoShowDialogType; - -typedef -enum dsoFileCommandType - { - dsoFileNew = 0, - dsoFileOpen = ( dsoFileNew + 1 ) , - dsoFileClose = ( dsoFileOpen + 1 ) , - dsoFileSave = ( dsoFileClose + 1 ) , - dsoFileSaveAs = ( dsoFileSave + 1 ) , - dsoFilePrint = ( dsoFileSaveAs + 1 ) , - dsoFilePageSetup = ( dsoFilePrint + 1 ) , - dsoFileProperties = ( dsoFilePageSetup + 1 ) , - dsoFilePrintPreview = ( dsoFileProperties + 1 ) - } dsoFileCommandType; - -typedef -enum dsoFrameHookPolicy - { - dsoNormalBehavior = 0, - dsoSetOnFirstOpen = ( dsoNormalBehavior + 1 ) , - dsoResetNow = ( dsoSetOnFirstOpen + 1 ) , - dsoDisableHook = 0xffffffff - } dsoFrameHookPolicy; - -typedef -enum dsoActivationPolicy - { - dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x1, - dsoCompDeactivateOnLostFocus = 0x2, - dsoIPDeactivateOnCompDeactive = 0x4 - } dsoActivationPolicy; - - -EXTERN_C const IID LIBID_DSOFramer; - -#ifndef ___FramerControl_INTERFACE_DEFINED__ -#define ___FramerControl_INTERFACE_DEFINED__ - -/* interface _FramerControl */ -/* [object][oleautomation][dual][version][hidden][uuid] */ - - -EXTERN_C const IID IID__FramerControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460181-9E5E-11d5-B7C8-B8269041DD57") - _FramerControl : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveDocument( - /* [retval][out] */ IDispatch **ppdisp) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateNew( - /* [in] */ BSTR ProgIdOrTemplate) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE _PrintOutOld( - /* [optional][in] */ VARIANT PromptToSelectPrinter) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Titlebar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Titlebar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Toolbars( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Toolbars( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_ModalState( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_ModalState( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowDialog( - /* [in] */ dsoShowDialogType DlgType) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderStyle( - /* [in] */ dsoBorderStyle style) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderStyle( - /* [retval][out] */ dsoBorderStyle *pstyle) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BackColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BackColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ForeColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ForeColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarTextColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarTextColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecOleCommand( - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Menubar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Menubar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_HostName( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_HostName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentFullName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintOut( - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreview( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreviewExit( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsReadOnly( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsDirty( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LockServer( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_LockServer( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE GetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE SetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ActivationPolicy( - /* [in] */ enum dsoActivationPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ActivationPolicy( - /* [retval][out] */ enum dsoActivationPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FrameHookPolicy( - /* [in] */ enum dsoFrameHookPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_FrameHookPolicy( - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MenuAccelerators( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_MenuAccelerators( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_EventsEnabled( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_EventsEnabled( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentName( - /* [retval][out] */ BSTR *pbstr) = 0; - - }; - - -#else /* C style interface */ - - typedef struct _FramerControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _FramerControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _FramerControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _FramerControl * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _FramerControl * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _FramerControl * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveDocument )( - _FramerControl * This, - /* [retval][out] */ IDispatch **ppdisp); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateNew )( - _FramerControl * This, - /* [in] */ BSTR ProgIdOrTemplate); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( - _FramerControl * This, - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( - _FramerControl * This, - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *_PrintOutOld )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptToSelectPrinter); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Close )( - _FramerControl * This); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Titlebar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Titlebar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Toolbars )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Toolbars )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ModalState )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModalState )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowDialog )( - _FramerControl * This, - /* [in] */ dsoShowDialogType DlgType); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderStyle )( - _FramerControl * This, - /* [in] */ dsoBorderStyle style); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderStyle )( - _FramerControl * This, - /* [retval][out] */ dsoBorderStyle *pstyle); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BackColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BackColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ForeColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ForeColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarTextColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarTextColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecOleCommand )( - _FramerControl * This, - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Menubar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Menubar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HostName )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentFullName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintOut )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreview )( - _FramerControl * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreviewExit )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsReadOnly )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDirty )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LockServer )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockServer )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActivationPolicy )( - _FramerControl * This, - /* [in] */ enum dsoActivationPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActivationPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoActivationPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FrameHookPolicy )( - _FramerControl * This, - /* [in] */ enum dsoFrameHookPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FrameHookPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MenuAccelerators )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MenuAccelerators )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EventsEnabled )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventsEnabled )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - END_INTERFACE - } _FramerControlVtbl; - - interface _FramerControl - { - CONST_VTBL struct _FramerControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _FramerControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define _FramerControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define _FramerControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define _FramerControl_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define _FramerControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define _FramerControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define _FramerControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define _FramerControl_Activate(This) \ - ( (This)->lpVtbl -> Activate(This) ) - -#define _FramerControl_get_ActiveDocument(This,ppdisp) \ - ( (This)->lpVtbl -> get_ActiveDocument(This,ppdisp) ) - -#define _FramerControl_CreateNew(This,ProgIdOrTemplate) \ - ( (This)->lpVtbl -> CreateNew(This,ProgIdOrTemplate) ) - -#define _FramerControl_Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) \ - ( (This)->lpVtbl -> Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) ) - -#define _FramerControl_Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) \ - ( (This)->lpVtbl -> Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) ) - -#define _FramerControl__PrintOutOld(This,PromptToSelectPrinter) \ - ( (This)->lpVtbl -> _PrintOutOld(This,PromptToSelectPrinter) ) - -#define _FramerControl_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define _FramerControl_put_Caption(This,bstr) \ - ( (This)->lpVtbl -> put_Caption(This,bstr) ) - -#define _FramerControl_get_Caption(This,pbstr) \ - ( (This)->lpVtbl -> get_Caption(This,pbstr) ) - -#define _FramerControl_put_Titlebar(This,vbool) \ - ( (This)->lpVtbl -> put_Titlebar(This,vbool) ) - -#define _FramerControl_get_Titlebar(This,pbool) \ - ( (This)->lpVtbl -> get_Titlebar(This,pbool) ) - -#define _FramerControl_put_Toolbars(This,vbool) \ - ( (This)->lpVtbl -> put_Toolbars(This,vbool) ) - -#define _FramerControl_get_Toolbars(This,pbool) \ - ( (This)->lpVtbl -> get_Toolbars(This,pbool) ) - -#define _FramerControl_put_ModalState(This,vbool) \ - ( (This)->lpVtbl -> put_ModalState(This,vbool) ) - -#define _FramerControl_get_ModalState(This,pbool) \ - ( (This)->lpVtbl -> get_ModalState(This,pbool) ) - -#define _FramerControl_ShowDialog(This,DlgType) \ - ( (This)->lpVtbl -> ShowDialog(This,DlgType) ) - -#define _FramerControl_put_EnableFileCommand(This,Item,vbool) \ - ( (This)->lpVtbl -> put_EnableFileCommand(This,Item,vbool) ) - -#define _FramerControl_get_EnableFileCommand(This,Item,pbool) \ - ( (This)->lpVtbl -> get_EnableFileCommand(This,Item,pbool) ) - -#define _FramerControl_put_BorderStyle(This,style) \ - ( (This)->lpVtbl -> put_BorderStyle(This,style) ) - -#define _FramerControl_get_BorderStyle(This,pstyle) \ - ( (This)->lpVtbl -> get_BorderStyle(This,pstyle) ) - -#define _FramerControl_put_BorderColor(This,clr) \ - ( (This)->lpVtbl -> put_BorderColor(This,clr) ) - -#define _FramerControl_get_BorderColor(This,pclr) \ - ( (This)->lpVtbl -> get_BorderColor(This,pclr) ) - -#define _FramerControl_put_BackColor(This,clr) \ - ( (This)->lpVtbl -> put_BackColor(This,clr) ) - -#define _FramerControl_get_BackColor(This,pclr) \ - ( (This)->lpVtbl -> get_BackColor(This,pclr) ) - -#define _FramerControl_put_ForeColor(This,clr) \ - ( (This)->lpVtbl -> put_ForeColor(This,clr) ) - -#define _FramerControl_get_ForeColor(This,pclr) \ - ( (This)->lpVtbl -> get_ForeColor(This,pclr) ) - -#define _FramerControl_put_TitlebarColor(This,clr) \ - ( (This)->lpVtbl -> put_TitlebarColor(This,clr) ) - -#define _FramerControl_get_TitlebarColor(This,pclr) \ - ( (This)->lpVtbl -> get_TitlebarColor(This,pclr) ) - -#define _FramerControl_put_TitlebarTextColor(This,clr) \ - ( (This)->lpVtbl -> put_TitlebarTextColor(This,clr) ) - -#define _FramerControl_get_TitlebarTextColor(This,pclr) \ - ( (This)->lpVtbl -> get_TitlebarTextColor(This,pclr) ) - -#define _FramerControl_ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) \ - ( (This)->lpVtbl -> ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) ) - -#define _FramerControl_put_Menubar(This,vbool) \ - ( (This)->lpVtbl -> put_Menubar(This,vbool) ) - -#define _FramerControl_get_Menubar(This,pbool) \ - ( (This)->lpVtbl -> get_Menubar(This,pbool) ) - -#define _FramerControl_put_HostName(This,bstr) \ - ( (This)->lpVtbl -> put_HostName(This,bstr) ) - -#define _FramerControl_get_HostName(This,pbstr) \ - ( (This)->lpVtbl -> get_HostName(This,pbstr) ) - -#define _FramerControl_get_DocumentFullName(This,pbstr) \ - ( (This)->lpVtbl -> get_DocumentFullName(This,pbstr) ) - -#define _FramerControl_PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) \ - ( (This)->lpVtbl -> PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) ) - -#define _FramerControl_PrintPreview(This) \ - ( (This)->lpVtbl -> PrintPreview(This) ) - -#define _FramerControl_PrintPreviewExit(This) \ - ( (This)->lpVtbl -> PrintPreviewExit(This) ) - -#define _FramerControl_get_IsReadOnly(This,pbool) \ - ( (This)->lpVtbl -> get_IsReadOnly(This,pbool) ) - -#define _FramerControl_get_IsDirty(This,pbool) \ - ( (This)->lpVtbl -> get_IsDirty(This,pbool) ) - -#define _FramerControl_put_LockServer(This,vbool) \ - ( (This)->lpVtbl -> put_LockServer(This,vbool) ) - -#define _FramerControl_get_LockServer(This,pvbool) \ - ( (This)->lpVtbl -> get_LockServer(This,pvbool) ) - -#define _FramerControl_GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) \ - ( (This)->lpVtbl -> GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) ) - -#define _FramerControl_SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) \ - ( (This)->lpVtbl -> SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) ) - -#define _FramerControl_put_ActivationPolicy(This,lPolicy) \ - ( (This)->lpVtbl -> put_ActivationPolicy(This,lPolicy) ) - -#define _FramerControl_get_ActivationPolicy(This,plPolicy) \ - ( (This)->lpVtbl -> get_ActivationPolicy(This,plPolicy) ) - -#define _FramerControl_put_FrameHookPolicy(This,lPolicy) \ - ( (This)->lpVtbl -> put_FrameHookPolicy(This,lPolicy) ) - -#define _FramerControl_get_FrameHookPolicy(This,plPolicy) \ - ( (This)->lpVtbl -> get_FrameHookPolicy(This,plPolicy) ) - -#define _FramerControl_put_MenuAccelerators(This,vbool) \ - ( (This)->lpVtbl -> put_MenuAccelerators(This,vbool) ) - -#define _FramerControl_get_MenuAccelerators(This,pvbool) \ - ( (This)->lpVtbl -> get_MenuAccelerators(This,pvbool) ) - -#define _FramerControl_put_EventsEnabled(This,vbool) \ - ( (This)->lpVtbl -> put_EventsEnabled(This,vbool) ) - -#define _FramerControl_get_EventsEnabled(This,pvbool) \ - ( (This)->lpVtbl -> get_EventsEnabled(This,pvbool) ) - -#define _FramerControl_get_DocumentName(This,pbstr) \ - ( (This)->lpVtbl -> get_DocumentName(This,pbstr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* ___FramerControl_INTERFACE_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ -#define ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface _DFramerCtlEvents */ -/* [hidden][uuid] */ - - -EXTERN_C const IID DIID__DFramerCtlEvents; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460185-9E5E-11d5-B7C8-B8269041DD57") - _DFramerCtlEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct _DFramerCtlEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _DFramerCtlEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _DFramerCtlEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _DFramerCtlEvents * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _DFramerCtlEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _DFramerCtlEvents * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - END_INTERFACE - } _DFramerCtlEventsVtbl; - - interface _DFramerCtlEvents - { - CONST_VTBL struct _DFramerCtlEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _DFramerCtlEvents_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define _DFramerCtlEvents_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define _DFramerCtlEvents_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define _DFramerCtlEvents_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define _DFramerCtlEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define _DFramerCtlEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define _DFramerCtlEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_FramerControl; - -#ifdef __cplusplus - -class DECLSPEC_UUID("00460182-9E5E-11d5-B7C8-B8269041DD57") -FramerControl; -#endif -#endif /* __DSOFramer_LIBRARY_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/PROMS/DSOFramer/Source2005/Res/Thumbs.db b/PROMS/DSOFramer/Source2005/Res/Thumbs.db deleted file mode 100644 index 06ff02e7..00000000 Binary files a/PROMS/DSOFramer/Source2005/Res/Thumbs.db and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/Res/dso.ico b/PROMS/DSOFramer/Source2005/Res/dso.ico deleted file mode 100644 index 4dc671e5..00000000 Binary files a/PROMS/DSOFramer/Source2005/Res/dso.ico and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/Res/dsoframer.rc b/PROMS/DSOFramer/Source2005/Res/dsoframer.rc deleted file mode 100644 index ef7828e4..00000000 --- a/PROMS/DSOFramer/Source2005/Res/dsoframer.rc +++ /dev/null @@ -1,154 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" -#include "..\version.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// TYPELIB -// -#ifdef _DEBUG -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Debug\\dsoframer.tlb" -#else -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Release\\dsoframer.tlb" -#endif // _DEBUG - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,DSOFRAMERCTL_VERSION_BUILD,0 - PRODUCTVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", "UNSUPPORTED BY MICROSOFT\0" - VALUE "CompanyName", "Your Company\0" - VALUE "FileDescription", "Your Company's Office Framer Control Sample\0" - VALUE "FileVersion", DSOFRAMERCTL_VERSIONSTRFULL "\0" - VALUE "OriginalFilename", "dsoframer.ocx\0" - VALUE "ProductName", "DSOFRAMER\0" - VALUE "ProductVersion", DSOFRAMERCTL_VERSIONSTR "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_TOOLBOX BITMAP DISCARDABLE "toolbox.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SMALLOFFDOC ICON DISCARDABLE "dso.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - RES_DSO_E_UNKNOWN "An unknown problem has occurred." - RES_DSO_E_INVALIDPROGID "The ProgID/Template could not be found or is not associated with a COM server." - RES_DSO_E_INVALIDSERVER "The associated COM server does not support ActiveX Document embedding." - RES_DSO_E_COMMANDNOTSUPPORTED - "The command is not supported by the document server." - RES_DSO_E_DOCUMENTREADONLY - "Unable to perform action because document was opened in read-only mode." - RES_DSO_E_REQUIRESMSDAIPP - "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." - RES_DSO_E_DOCUMENTNOTOPEN "No document is open to perform the operation requested." - RES_DSO_E_INMODALSTATE "Cannot access document when in modal condition." - RES_DSO_E_NOTBEENSAVED "Cannot Save file without a file path." - RES_DSO_E_FRAMEHOOKFAILED "Unable to set frame hook for the parent window." -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/PROMS/DSOFramer/Source2005/Res/resource.h b/PROMS/DSOFramer/Source2005/Res/resource.h deleted file mode 100644 index b9060358..00000000 --- a/PROMS/DSOFramer/Source2005/Res/resource.h +++ /dev/null @@ -1,39 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by dsoframer.rc -// -#define IDR_TYPELIB 1 -#define RES_DSO_E_UNKNOWN 1 -#define RES_DSO_E_INVALIDPROGID 2 -#define RES_DSO_E_INVALIDSERVER 3 -#define RES_DSO_E_COMMANDNOTSUPPORTED 4 -#define RES_DSO_E_DOCUMENTREADONLY 5 -#define RES_DSO_E_REQUIRESMSDAIPP 6 -#define RES_DSO_E_DOCUMENTNOTOPEN 7 -#define RES_DSO_E_INMODALSTATE 8 -#define RES_DSO_E_NOTBEENSAVED 9 -#define RES_DSO_E_FRAMEHOOKFAILED 10 -#define IDB_TOOLBOX 102 -#define IDB_TOOLBAR 103 -#define IDR_BINDMENU 104 -#define IDI_SMALLOFFDOC 105 -#define MNU_NEW 40001 -#define MNU_OPEN 40002 -#define MNU_CLOSE 40003 -#define MNU_SAVE 40004 -#define MNU_SAVEAS 40005 -#define MNU_PGSETUP 40006 -#define MNU_PRINT 40007 -#define MNU_PROPS 40008 -#define MNU_PRINTPV 40009 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 107 -#define _APS_NEXT_COMMAND_VALUE 40011 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/PROMS/DSOFramer/Source2005/Res/toolbox.bmp b/PROMS/DSOFramer/Source2005/Res/toolbox.bmp deleted file mode 100644 index e0e7d4d3..00000000 Binary files a/PROMS/DSOFramer/Source2005/Res/toolbox.bmp and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/UpgradeLog.XML b/PROMS/DSOFramer/Source2005/UpgradeLog.XML deleted file mode 100644 index 126c1c78..00000000 --- a/PROMS/DSOFramer/Source2005/UpgradeLog.XML +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.css b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.css deleted file mode 100644 index fae98af0..00000000 --- a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.css +++ /dev/null @@ -1,207 +0,0 @@ -BODY -{ - BACKGROUND-COLOR: white; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px -} -P -{ - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 70%; - LINE-HEIGHT: 12pt; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 10px -} -.note -{ - BACKGROUND-COLOR: #ffffff; - COLOR: #336699; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px; - PADDING-RIGHT: 10px -} -.infotable -{ - BACKGROUND-COLOR: #f0f0e0; - BORDER-BOTTOM: #ffffff 0px solid; - BORDER-COLLAPSE: collapse; - BORDER-LEFT: #ffffff 0px solid; - BORDER-RIGHT: #ffffff 0px solid; - BORDER-TOP: #ffffff 0px solid; - FONT-SIZE: 70%; - MARGIN-LEFT: 10px -} -.issuetable -{ - BACKGROUND-COLOR: #ffffe8; - BORDER-COLLAPSE: collapse; - COLOR: #000000; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 10px; - MARGIN-LEFT: 13px; - MARGIN-TOP: 0px -} -.issuetitle -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px; - COLOR: #003366; - FONT-WEIGHT: normal -} -.header -{ - BACKGROUND-COLOR: #cecf9c; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - COLOR: #000000; - FONT-WEIGHT: bold -} -.issuehdr -{ - BACKGROUND-COLOR: #E0EBF5; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - COLOR: #000000; - FONT-WEIGHT: normal -} -.issuenone -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: 0px; - BORDER-LEFT: 0px; - BORDER-RIGHT: 0px; - BORDER-TOP: 0px; - COLOR: #000000; - FONT-WEIGHT: normal -} -.content -{ - BACKGROUND-COLOR: #e7e7ce; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - PADDING-LEFT: 3px -} -.issuecontent -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - PADDING-LEFT: 3px -} -A:link -{ - COLOR: #cc6633; - TEXT-DECORATION: underline -} -A:visited -{ - COLOR: #cc6633; -} -A:active -{ - COLOR: #cc6633; -} -A:hover -{ - COLOR: #cc3300; - TEXT-DECORATION: underline -} -H1 -{ - BACKGROUND-COLOR: #003366; - BORDER-BOTTOM: #336699 6px solid; - COLOR: #ffffff; - FONT-SIZE: 130%; - FONT-WEIGHT: normal; - MARGIN: 0em 0em 0em -20px; - PADDING-BOTTOM: 8px; - PADDING-LEFT: 30px; - PADDING-TOP: 16px -} -H2 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 3px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px; - PADDING-LEFT: 0px -} -H3 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: -5px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px -} -H4 -{ - COLOR: #000000; - FONT-SIZE: 70%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 0px; - MARGIN-TOP: 15px; - PADDING-BOTTOM: 0px -} -UL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -OL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -LI -{ - LIST-STYLE: square; - MARGIN-LEFT: 0px -} -.expandable -{ - CURSOR: hand -} -.expanded -{ - color: black -} -.collapsed -{ - DISPLAY: none -} -.foot -{ -BACKGROUND-COLOR: #ffffff; -BORDER-BOTTOM: #cecf9c 1px solid; -BORDER-TOP: #cecf9c 2px solid -} -.settings -{ -MARGIN-LEFT: 25PX; -} -.help -{ -TEXT-ALIGN: right; -margin-right: 10px; -} diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.xslt b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.xslt deleted file mode 100644 index 83f4304a..00000000 --- a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.xslt +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - Solution: - Project: - - - - - - - -

    - -
  • - - - - - - - - - - - - - - - - - - - - - - src - - - - - - - - - - - - -
    FilenameStatusErrorsWarnings
    - javascript:document.images[''].click()src - - - - Converted - - - - Converted - -
    - - files - - - 1 file - - - Converted:
    - Not converted -
    - - - - - - : - - - - - - - - - Conversion Report - <xsl:if test="Properties/Property[@Name='LogNumber']"> - <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> - </xsl:if> - - - - -

    Conversion Report -

    - -

    - Time of Conversion:
    -

    - - - - - - - - - - - - - - - - - - - - - - - - -

    - - - - - -
    - Conversion Settings -

    - - -
    - diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Minus.gif b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Minus.gif deleted file mode 100644 index 17751cb2..00000000 Binary files a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Minus.gif and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Plus.gif b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Plus.gif deleted file mode 100644 index f6009ca3..00000000 Binary files a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Plus.gif and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/classfactory.cpp b/PROMS/DSOFramer/Source2005/classfactory.cpp deleted file mode 100644 index ad99d1a0..00000000 --- a/PROMS/DSOFramer/Source2005/classfactory.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/*************************************************************************** - * CLASSFACTORY.CPP - * - * CDsoFramerClassFactory: The Class Factroy for the control. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory - IClassFactory Implementation -// -// This is a fairly simple CF. We don't provide support for licensing -// in this sample because it is just a sample. If licensing is important -// you should change the class to support IClassFactory2. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::QueryInterface -// -STDMETHODIMP CDsoFramerClassFactory::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoFramerClassFactory::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - if ((IID_IUnknown == riid) || (IID_IClassFactory == riid)) - { - SAFE_SET_INTERFACE(*ppv, (IClassFactory*)this); - return S_OK; - } - - *ppv = NULL; - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::AddRef -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::AddRef(void) -{ - TRACE1("CDsoFramerClassFactory::AddRef - %d\n", m_cRef+1); - return ++m_cRef; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::Release -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::Release(void) -{ - TRACE1("CDsoFramerClassFactory::Release - %d\n", m_cRef-1); - if (0 != --m_cRef) return m_cRef; - - ODS("CDsoFramerClassFactory delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete this; - return 0; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::CreateInstance -// -// Creates an instance of our control. -// -STDMETHODIMP CDsoFramerClassFactory::CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerControl* pocx; - IUnknown* pnkInternal; - - ODS("CDsoFramerClassFactory::CreateInstance\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); *ppv = NULL; - - // Aggregation requires you ask for (internal) IUnknown - if ((punk) && (riid != IID_IUnknown)) - return E_INVALIDARG; - - // Create a new instance of the control... - pocx = new CDsoFramerControl(punk); - CHECK_NULL_RETURN(pocx, E_OUTOFMEMORY); - - // Grab the internal IUnknown to use for the QI (you don't agg in CF:CreateInstance)... - pnkInternal = (IUnknown*)&(pocx->m_xInternalUnknown); - - // Initialize the control (windows, etc.) and QI for requested interface... - if (SUCCEEDED(hr = pocx->InitializeNewInstance()) && - SUCCEEDED(hr = pnkInternal->QueryInterface(riid, ppv))) - { - InterlockedIncrement((LPLONG)&v_cLocks); // on success, bump up the lock count... - } - else {delete pocx; *ppv = NULL;} // else cleanup the object - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::LockServer -// -// Keeps the server loaded in memory. -// -STDMETHODIMP CDsoFramerClassFactory::LockServer(BOOL fLock) -{ - TRACE1("CDsoFramerClassFactory::LockServer - %d\n", fLock); - if (fLock) InterlockedIncrement((LPLONG)&v_cLocks); - else InterlockedDecrement((LPLONG)&v_cLocks); - return S_OK; -} - diff --git a/PROMS/DSOFramer/Source2005/dsofauto.cpp b/PROMS/DSOFramer/Source2005/dsofauto.cpp deleted file mode 100644 index a7268452..00000000 --- a/PROMS/DSOFramer/Source2005/dsofauto.cpp +++ /dev/null @@ -1,1321 +0,0 @@ -/*************************************************************************** - * DSOFAUTO.CPP - * - * CDsoFramerControl: Automation interface for Binder Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - _FramerControl Implementation -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Activate -// -// Activate the current embedded document (i.e, forward focus). -// -STDMETHODIMP CDsoFramerControl::Activate() -{ - HRESULT hr; - ODS("CDsoFramerControl::Activate\n"); - - if (m_fInControlActivate) - return S_FALSE; - - // Don't allow recursion of this function or we could get stuck in - // loop trying to constantly grab focus. - m_fInControlActivate = TRUE; - - // All we need to do is grab focus. This will tell the host to - // UI activate our OCX, set focus to our window, and set this control - // as the active component with the hook manager. - hr = UIActivate(TRUE); - - // Invalidate windows to update painting... - if (SUCCEEDED(hr)) - InvalidateAllChildWindows(m_hwnd); - - m_fInControlActivate = FALSE; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_ActiveDocument -// -// Returns the automation object currently embedded. -// -// Since we only support a single instance at a time, it might have been -// better to call this property Object or simply Document, but VB reserves -// the first name for use by the control extender, and IE reserves the second -// in its extender, so we decided on the "Office sounding" name. ;-) -// -STDMETHODIMP CDsoFramerControl::get_ActiveDocument(IDispatch** ppdisp) -{ - HRESULT hr = DSO_E_DOCUMENTNOTOPEN; - IUnknown* punk; - - ODS("CDsoFramerControl::get_ActiveDocument\n"); - CHECK_NULL_RETURN(ppdisp, E_POINTER); *ppdisp = NULL; - - // Get IDispatch from open document object. - if ((m_pDocObjFrame) && (punk = (IUnknown*)(m_pDocObjFrame->GetActiveObject()))) - { - // Cannot access object if in print preview.. - if (m_pDocObjFrame->InPrintPreview()) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Ask ip active object for IDispatch interface. If it is not supported on - // active object interface, try to get it from OLE object iface... - if (FAILED(hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp)) && - (punk = (IUnknown*)(m_pDocObjFrame->GetOleObject()))) - { - hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp); - } - ASSERT(SUCCEEDED(hr)); - } - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ExecOleCommand -// -// Allows caller to pass commands to embedded object via IOleCommandTarget and -// gives access to a few extra commands to extend functionality for certain object -// types (not all objects may support all commands). -// -STDMETHODIMP CDsoFramerControl::ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr = E_INVALIDARG; - DWORD dwOptions = (DWORD)LONG_FROM_VARIANT(Options, 0); - - TRACE1("CDsoFramerControl::DoOleCommand(%d)\n", OLECMDID); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Handle some custom commands that don't need doc open to call... - switch (OLECMDID) - { - case OLECMDID_RESETFRAMEHOOK: - { - LONG lhwnd = (DWORD)LONG_FROM_VARIANT(*vInParam, 0); - return ResetFrameHook((HWND)lhwnd); - } - case OLECMDID_LOCKSERVER: - if (BOOL_FROM_VARIANT(Options, TRUE) == FALSE) - return put_LockServer(VARIANT_FALSE); - } - - // The rest require a doc object loaded first... - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - switch (OLECMDID) - { - case OLECMDID_GETDATAFORMAT: - // If requesting special data get... - hr = m_pDocObjFrame->HrGetDataFromObject(vInParam, vInOutParam); - break; - - case OLECMDID_SETDATAFORMAT: - // If requesting special data set... - hr = m_pDocObjFrame->HrSetDataInObject(vInParam, vInOutParam, BOOL_FROM_VARIANT(Options, TRUE)); - break; - - case OLECMDID_LOCKSERVER: // optional lock on server... - if (BOOL_FROM_VARIANT(Options, FALSE)) - hr = put_LockServer(VARIANT_TRUE); - break; - - case OLECMDID_NOTIFYACTIVE: - if (vInParam) // Force notify server that it should be active... - { - m_pDocObjFrame->OnNotifyAppActivate(BOOL_FROM_VARIANT(*vInParam, FALSE), 0); - hr = S_OK; - } - break; - - default: - // Do normal IOleCommandTarget call on object... - - // If options was not passed as long, but as bool, we expect the caller meant to - // specify if user should be prompted or not, so update the options to allow the - // assuption to still work as expected (this is for compatibility)... - if ((dwOptions == 0) && ((DsoPVarFromPVarRef(&Options)->vt & 0xFF) == VT_BOOL)) - dwOptions = (BOOL_FROM_VARIANT(Options, FALSE) ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT); - - // Ask object server to do the command... - hr = m_pDocObjFrame->DoOleCommand(OLECMDID, dwOptions, vInParam, vInOutParam); - } - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::CreateNew -// -// Creates a new document object based on the passed in ProgID or Template. -// ProgID should map to the "document" object, such as "Word.Document", -// "Excel.Sheet", "PowerPoint.Slide", etc. A Template name should be full -// path to the file, whether local, UNC, or HTTP path. No relative paths. -// -STDMETHODIMP CDsoFramerControl::CreateNew(BSTR ProgIdOrTemplate) -{ - HRESULT hr; - CLSID clsid; - HCURSOR hCur; - IStorage *pstgTemplate = NULL; - LPWSTR pwszTempFile = NULL; - - TRACE1("CDsoFramerControl::CreateNew(%S)\n", ProgIdOrTemplate); - - // Check the string to make sure a valid item is passed... - if (!(ProgIdOrTemplate) || (SysStringLen(ProgIdOrTemplate) < 4)) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Make sure any open document is closed first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - if (!(m_pDocObjFrame)) return E_OUTOFMEMORY; - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // If the string passed looks like a URL, it is a web template. We need - // to download it to temp location and use for new object... - if (LooksLikeHTTP(ProgIdOrTemplate) && - GetTempPathForURLDownload(ProgIdOrTemplate, &pwszTempFile)) - { - // Ask URLMON to download the file... - if (FAILED(hr = URLDownloadFile(NULL, ProgIdOrTemplate, pwszTempFile))) - { - DsoMemFree(pwszTempFile); pwszTempFile = NULL; - goto error_out; - } - - // If that worked, switch out the name of the template to local file... - ProgIdOrTemplate = SysAllocString(pwszTempFile); - } - - // If the string is path to file, then it must be a template. It must be - // a storage file with CLSID associated with it, like any Office templates - // (.dot,.xlt,.pot,.vst,etc.), and path must be fully qualified... - if (LooksLikeUNC(ProgIdOrTemplate) || LooksLikeLocalFile(ProgIdOrTemplate)) - { - if ((hr = StgIsStorageFile(ProgIdOrTemplate)) != S_OK) - { - hr = (FAILED(hr) ? hr : STG_E_NOTFILEBASEDSTORAGE); - goto error_out; - } - - // Open the template for read access only... - hr = StgOpenStorage(ProgIdOrTemplate, NULL, - (STGM_READ | STGM_SHARE_DENY_WRITE | STGM_TRANSACTED), - NULL, 0, &pstgTemplate); - GOTO_ON_FAILURE(hr, error_out); - - // We get the CLSID from the template... - hr = ReadClassStg(pstgTemplate, &clsid); - if (FAILED(hr) || (clsid == GUID_NULL)) - { - hr = (FAILED(hr) ? hr : STG_E_OLDFORMAT); - goto error_out; - } - // Otherwise the string passed is assumed a ProgID... - } - else if (FAILED(CLSIDFromProgID(ProgIdOrTemplate, &clsid))) - { - hr = DSO_E_INVALIDPROGID; - goto error_out; - } - - // If we are here, we must have a valid CLSID for the object... - ASSERT(clsid != GUID_NULL); - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) {hr = DSO_E_FRAMEHOOKFAILED; goto error_out;} - } - - SEH_TRY - - // If we are loading a template, init the storage before the create... - if (pstgTemplate) - { - hr = m_pDocObjFrame->CreateDocObject(pstgTemplate); - } - else - { - // Create a new doc object and IP activate... - hr = m_pDocObjFrame->CreateDocObject(clsid); - } - - // If the call worked, we can activate it... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { -error_out: - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = NULL; - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - - SAFE_RELEASE_INTERFACE(pstgTemplate); - - // Delete the temp file used in the URL download (if any)... - if (pwszTempFile) - { - FPerformShellOp(FO_DELETE, pwszTempFile, NULL); - DsoMemFree(pwszTempFile); - SysFreeString(ProgIdOrTemplate); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Open -// -// Creates a document object based on a file or URL. This simulates an -// "open", but preserves the correct OLE embedding activation required -// by ActiveX Documents. Opening directly from a file is not recommended. -// We keep a lock on the original file (unless opened read-only) so the -// user cannot tell we don't have the file "open". -// -// The alternate ProgID allows us to open a file that is not associated -// with an DocObject server (like *.asp) with the server specified. Also -// the username/password are for web access (if Document is a URL). -// -STDMETHODIMP CDsoFramerControl::Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword) -{ - HRESULT hr; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(Document); - LPWSTR pwszAltProgId = LPWSTR_FROM_VARIANT(ProgId); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOpenReadOnly = BOOL_FROM_VARIANT(ReadOnly, FALSE); - CLSID clsidAlt = GUID_NULL; - HCURSOR hCur; - IUnknown* punk = NULL; - - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, 0, 10000}; - - TRACE1("CDsoFramerControl::Open(%S)\n", pwszDocument); - - // We must have either a string (file path or URL) or an object to open from... - if (!(pwszDocument) || (*pwszDocument == L'\0')) - { - if (!(pwszDocument) && ((punk = PUNK_FROM_VARIANT(Document)) == NULL)) - return E_INVALIDARG; - } - - // If the user passed the ProgId, find the alternative CLSID for server... - if ((pwszAltProgId) && FAILED(CLSIDFromProgID(pwszAltProgId, &clsidAlt))) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // OK. If here, all the parameters look good and it is time to try and open - // the document object. Start by closing any existing document first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - if (!(m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite))) - return E_OUTOFMEMORY; - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // Setup the bind options based on read-only flag.... - bopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | (fOpenReadOnly ? STGM_READ : STGM_READWRITE)); - - SEH_TRY - - // Normally user gives a string that is path to file... - if (pwszDocument) - { - // Check if we are opening from a URL, and load that way... - if (LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromURL(pwszDocument, clsidAlt, &bopts, pwszUserName, pwszPassword); - } - // Otherwise, check if it is a local file and open that... - else if (FFileExists(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromFile(pwszDocument, clsidAlt, &bopts); - } - else hr = E_INVALIDARG; - } - else if (punk) - { - // If we have an object to load from, try loading it direct... - hr = m_pDocObjFrame->CreateFromRunningObject(punk, NULL, &bopts); - } - else hr = E_UNEXPECTED; // Unhandled load type?? - - // If successful, we can activate the object... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Save -// -// Saves the current object. The optional SaveAs paramter lets the same -// function act as a SaveAs method. -// -STDMETHODIMP CDsoFramerControl::Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword) -{ - HCURSOR hCur; - HRESULT hr = S_FALSE; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(SaveAsDocument); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOverwrite = BOOL_FROM_VARIANT(OverwriteExisting, FALSE); - - TRACE1("CDsoFramerControl::Save(%S)\n", pwszDocument); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If user passed a value for SaveAs, it must be a valid string... - if (!(PARAM_IS_MISSING(&SaveAsDocument)) && - ((pwszDocument == NULL) || (*pwszDocument == L'\0'))) - return E_INVALIDARG; - - // Raise the BeforeDocumentSaved event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - RaiseAutomationEvent(DSOF_DISPID_BDOCSAVE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - - // Setting Cancel param will abort the save... - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - } - - // Now do the save... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Determine if they want to save to a URL... - if ((pwszDocument) && LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->SaveToURL(pwszDocument, fOverwrite, pwszUserName, pwszPassword); - } - else if (pwszDocument) - { - // Save to file (local or UNC)... - hr = m_pDocObjFrame->SaveToFile(pwszDocument, fOverwrite); - } - else - { - // Save back to open location... - hr = m_pDocObjFrame->Save(); - } - - SEH_EXCEPT(hr) - - // If save was successful... - if (SUCCEEDED(hr)) - { - // Raise the SaveComplete event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceDocName()); - rgargs[0].vt = VT_BSTR; rgargs[0].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceName()); - RaiseAutomationEvent(DSOF_DISPID_SAVECOMPLETE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - } - - // Redraw the caption as needed... - RedrawCaption(); - } - - SetCursor(hCur); - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Close -// -// Closes the current object. -// -STDMETHODIMP CDsoFramerControl::Close() -{ - ODS("CDsoFramerControl::Close\n"); - - CDsoDocObject* pdframe = m_pDocObjFrame; - if (pdframe) - { - // Fire the BeforeDocumentClosed event to give host chance to cancel... - VARIANT rgargs[2]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[1].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[1].pdispVal)); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - // Setting Cancel param should abort the close... - RaiseAutomationEvent(DSOF_DISPID_BDOCCLOSE, 2, rgargs); - VariantClear(&rgargs[1]); - - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - - // If not canceled, clear the member variable then call close on doc frame... - m_pDocObjFrame = NULL; - - SEH_TRY - pdframe->Close(); - SEH_EXCEPT_NULL - delete pdframe; - - // Notify host that item is now closed... - RaiseAutomationEvent(DSOF_DISPID_DOCCLOSE, 0, NULL); - } - - // Redraw the caption as needed... - RedrawCaption(); - EnableDropFile(TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Caption/get_Caption) -// -// Allows you to set a custom cation for the titlebar. -// -STDMETHODIMP CDsoFramerControl::put_Caption(BSTR bstr) -{ - // Free exsiting caption (if any) and save new one (always dirties control)... - SAFE_FREEBSTR(m_bstrCustomCaption); - - // Set the new one (if provided)... - if ((bstr) && (SysStringLen(bstr) > 0)) - m_bstrCustomCaption = SysAllocString(bstr); - - ViewChanged(); - m_fDirty = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Caption(BSTR* pbstr) -{ - if (pbstr) *pbstr = (m_bstrCustomCaption ? - SysAllocString(m_bstrCustomCaption) : - SysAllocString(L"Office Framer Control")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Titlebar/get_Titlebar) -// -// True/False. Should we display the titlebar or not? -// -STDMETHODIMP CDsoFramerControl::put_Titlebar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Titlebar(%d)\n", vbool); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowTitlebar != (WORD)(BOOL)vbool) - { - m_fShowTitlebar = (BOOL)vbool; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Titlebar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Titlebar\n"); - if (pbool) *pbool = (m_fShowTitlebar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Toolbars/get_Toolbars) -// -// True/False. Should we display toolbars or not? -// -STDMETHODIMP CDsoFramerControl::put_Toolbars(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Toolbars(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle toolbars... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowToolbars != (WORD)(BOOL)vbool) - { - m_fShowToolbars = (BOOL)vbool; - m_fDirty = TRUE; - - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyChangeToolState(m_fShowToolbars); - - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Toolbars(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Toolbars\n"); - if (pbool) *pbool = (m_fShowToolbars ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_ModalState/get_ModalState) -// -// True/False. Disables the active object (if any) thereby setting it -// up to behave "modal". Any time a dialog or other blocking window -// on the same thread is called, the developer should set this to True -// to let the IP object know it should stay modal in the background. -// Set it back to False when the dialog is removed. -// -// Technically, this should be a counter to allow for nested modal states. -// However, we thought that might be confusing to some VB/Web developers -// and since this is only a sample, made it a Boolean property. -// -STDMETHODIMP CDsoFramerControl::put_ModalState(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_ModalState(%d)\n", vbool); - - // you can't force modal state change unless active... - if ((m_fNoInteractive) || (!m_fComponentActive)) - return ProvideErrorInfo(E_ACCESSDENIED); - - if (m_fModalState != (WORD)(BOOL)vbool) - UpdateModalState((vbool != VARIANT_FALSE), TRUE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ModalState(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_ModalState\n"); - if (pbool) *pbool = ((m_fModalState) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ShowDialog -// -// Uses IOleCommandTarget to get the embedded object to display one of -// these standard dialogs for the user. -// -STDMETHODIMP CDsoFramerControl::ShowDialog(dsoShowDialogType DlgType) -{ - HRESULT hr = E_ACCESSDENIED; - - TRACE1("CDsoFramerControl::ShowDialog(%d)\n", DlgType); - if ((DlgType < dsoFileNew) || (DlgType > dsoDialogProperties)) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // The first three dialog types we handle... - if (DlgType < dsoDialogSaveCopy) - { - hr = DoDialogAction(DlgType); - } - // The others are provided by the server via IOleCommandTarget... - else if (m_pDocObjFrame) - { - DWORD dwOleCmd; - switch (DlgType) - { - case dsoDialogSaveCopy: dwOleCmd = OLECMDID_SAVECOPYAS; break; - case dsoDialogPageSetup: dwOleCmd = OLECMDID_PAGESETUP; break; - case dsoDialogProperties: dwOleCmd = OLECMDID_PROPERTIES; break; - default: dwOleCmd = OLECMDID_PRINT; - } - hr = m_pDocObjFrame->DoOleCommand(dwOleCmd, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - return ProvideErrorInfo(hr); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_EnableFileCommand/get_EnableFileCommand) -// -// True/False. This allows the developer to disable certain menu/toolbar -// items that are considered "file-level" -- New, Save, Print, etc. -// -// We use the Item parameter to set a bit flag which is used when -// displaying the menu to enable/disable the item. The OnFileCommand -// event will not fire for disabled commands. -// -STDMETHODIMP CDsoFramerControl::put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool) -{ - TRACE2("CDsoFramerControl::put_EnableFileCommand(%d, %d)\n", Item, vbool); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - // You cannot access menu when in a modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // We keep bit flags for menu state. Just set the bit and a update - // the embedded object as needed. User will see change next time menu is shown... - UINT code = (1 << Item); - if (vbool == 0) m_wFileMenuFlags &= ~(code); - else m_wFileMenuFlags |= code; - - if (m_pDocObjFrame) // This should update toolbar icon (if server supports it) - m_pDocObjFrame->DoOleCommand(OLECMDID_UPDATECOMMANDS, 0, NULL, NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool) -{ - TRACE1("CDsoFramerControl::get_EnableFileCommand(%d)\n", Item); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - UINT code = (1 << Item); - if (pbool) *pbool = ((m_wFileMenuFlags & code) ? VARIANT_TRUE : VARIANT_FALSE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_BorderStyle/get_BorderStyle) -// -// Change the border style for the control. -// -STDMETHODIMP CDsoFramerControl::put_BorderStyle(dsoBorderStyle style) -{ - ODS("CDsoFramerControl::put_BorderStyle\n"); - - if ((style < dsoBorderNone) || (style > dsoBorder3DThin)) - return E_INVALIDARG; - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fBorderStyle != (DWORD)style) - { - m_fBorderStyle = style; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderStyle(dsoBorderStyle* pstyle) -{ - ODS("CDsoFramerControl::get_BorderStyle\n"); - if (pstyle) *pstyle = (dsoBorderStyle)m_fBorderStyle; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// Control Color Properties... -// -// -STDMETHODIMP CDsoFramerControl::put_BorderColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BorderColor\n"); - if (m_clrBorderColor != clr) - { - m_clrBorderColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBorderColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_BackColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BackColor\n"); - if (m_clrBackColor != clr) - { - m_clrBackColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BackColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBackColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_ForeColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_ForeColor\n"); - if (m_clrForeColor != clr) - { - m_clrForeColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ForeColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrForeColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_TitlebarColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarColor\n"); - if (m_clrTBarColor != clr) - { - m_clrTBarColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarColor; return S_OK;} - - -STDMETHODIMP CDsoFramerControl::put_TitlebarTextColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarTextColor\n"); - if (m_clrTBarTextColor != clr) - { - m_clrTBarTextColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarTextColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarTextColor; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Menubar/get_Menubar) -// -// True/False. Should we display menu bar? -// -STDMETHODIMP CDsoFramerControl::put_Menubar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Menubar(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle menu bar... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowMenuBar != (WORD)(BOOL)vbool) - { - m_fShowMenuBar = (BOOL)vbool; - m_fDirty = TRUE; - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Menubar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Menubar\n"); - if (pbool) *pbool = (m_fShowMenuBar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_HostName/get_HostName) -// -// String setting used for host application name (used in embedding) -// -STDMETHODIMP CDsoFramerControl::put_HostName(BSTR bstr) -{ - TRACE1("CDsoFramerControl::put_HostName(%S)\n", bstr); - SAFE_FREESTRING(m_pwszHostName); - - if ((bstr) && (SysStringLen(bstr) > 0)) - m_pwszHostName = DsoCopyString(bstr); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_HostName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_HostName\n"); - if (pbstr) - *pbstr = SysAllocString((m_pwszHostName ? m_pwszHostName : L"DsoFramerControl")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentFullName -// -// Gets FullName of embedded source file (where default save will save to). -// -STDMETHODIMP CDsoFramerControl::get_DocumentFullName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentFullName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentName -// -// Gets just the file name of embedded source file. -// -STDMETHODIMP CDsoFramerControl::get_DocumentName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source doc name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceDocName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsReadOnly -// -// Returns if file open read-only. -// -STDMETHODIMP CDsoFramerControl::get_IsReadOnly(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsReadOnly\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsReadOnly() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsDirty -// -// Returns TRUE if doc object says it has changes. -// -STDMETHODIMP CDsoFramerControl::get_IsDirty(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsDirty\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsDirty() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::LockServer -// -// Allows host to temporarily lock the current document server running, -// so that when closing and reopening files using the same server doesn't -// suffer startup/shutdown penelty of the server going away between calls. -// -STDMETHODIMP CDsoFramerControl::put_LockServer(VARIANT_BOOL vbool) -{ - BOOL fLock = (vbool != VARIANT_FALSE); - TRACE1("CDsoFramerControl::put_LockServer(%d)\n", (DWORD)vbool); - - // We must have a server open to set a lock... - if ((fLock) && (m_pDocObjFrame == NULL)) - return ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN); - - return SetTempServerLock(fLock); -} - -STDMETHODIMP CDsoFramerControl::get_LockServer(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_LockServer\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (VARIANT_BOOL)((m_pServerLock) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to get data from document in clipboard format but without -// using the clipboard (instead it uses IDataObject). The server has to -// support the request format to return the data. Data is returned as byte array. -// -// NOTE: This only gets the document body content, not the entire document. If -// you want the entire document, use the Save method with temp filename to save to. -// -STDMETHODIMP CDsoFramerControl::GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults) -{ - ODS("CDsoFramerControl::GetDataObjectContent()\n"); - CHECK_NULL_RETURN(pvResults, E_POINTER); VariantInit(pvResults); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrGetDataFromObject(&ClipFormatNameOrNumber, pvResults); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to set data into the document body (similar to a paste, but -// without using the clipboard). You must supply the format name or number and -// the data in a byte array format. -// -STDMETHODIMP CDsoFramerControl::SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray) -{ - ODS("CDsoFramerControl::SetDataObjectContent()\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrSetDataInObject(&ClipFormatNameOrNumber, &DataByteArray, TRUE); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_ActivationPolicy -// -// Allows caller to set policy for how activation changes affect the embedded -// object. This is actually a bit flag, so user can OR settings. -// -STDMETHODIMP CDsoFramerControl::put_ActivationPolicy(dsoActivationPolicy lPolicy) -{ - TRACE1("CDsoFramerControl::put_ActivationPolicy(%d)\n", lPolicy); - if (m_pDocObjFrame) return E_ACCESSDENIED; - - if ((lPolicy < dsoDefaultBehavior) || (lPolicy > 0x0F)) - return E_INVALIDARG; - - m_lActivationPolicy = lPolicy; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ActivationPolicy(dsoActivationPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoActivationPolicy)m_lActivationPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_FrameHookPolicy -// -// Allows caller to set policy for the frame hook. -// -STDMETHODIMP CDsoFramerControl::put_FrameHookPolicy(dsoFrameHookPolicy lPolicy) -{ - HRESULT hr = E_ACCESSDENIED; - TRACE1("CDsoFramerControl::put_FrameHookPolicy(%d)\n", lPolicy); - - switch (lPolicy) - { - case dsoDisableHook: - if (m_pHookManager) break; - // else fallthrough... - - case dsoNormalBehavior: - case dsoSetOnFirstOpen: - m_lHookPolicy = lPolicy; hr = S_OK; - break; - - case dsoResetNow: - if (!FRunningInDesignMode()) - hr = ResetFrameHook(0); - break; - - default: - hr = E_INVALIDARG; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoFrameHookPolicy)m_lHookPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_MenuAccelerators -// -// Sets flag to determine if control should try to handle keys for menu -// shortcuts when the menus are displayed. -// -STDMETHODIMP CDsoFramerControl::put_MenuAccelerators(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_MenuAccelerators\n"); - m_fDisableMenuAccel = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_MenuAccelerators(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_MenuAccelerators\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fDisableMenuAccel ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_EventsEnabled -// -// Sets flag to determine if events are frozen or not. -// -STDMETHODIMP CDsoFramerControl::put_EventsEnabled(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_EventsEnabled\n"); - m_fFreezeEvents = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EventsEnabled(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_EventsEnabled\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fFreezeEvents ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - IDispatch Implementation -// - -//////////////////////////////////////////////////////////////////////// -// Control's IDispatch Functions -// -// These are largely standard and just forward calls to the functions -// above. The only interesting thing here is the "hack" in Invoke to -// tell VB/IE that the control is always "Enabled". -// -STDMETHODIMP CDsoFramerControl::GetTypeInfoCount(UINT* pctinfo) -{if (pctinfo) *pctinfo = 1; return S_OK;} - -STDMETHODIMP CDsoFramerControl::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) -{ - HRESULT hr = S_OK; - - ODS("CDsoFramerControl::GetTypeInfo\n"); - CHECK_NULL_RETURN(ppTInfo, E_POINTER); *ppTInfo = NULL; - - // We only support default interface late bound... - CHECK_NULL_RETURN((iTInfo == 0), DISP_E_BADINDEX); - - // Load the type lib if we don't have the information already. - if (NULL == m_ptiDispType) - { - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, - v_hModule, IID__FramerControl, &m_ptiDispType); - } - - // Return interface with ref count (if we have it, otherwise error)... - SAFE_SET_INTERFACE(*ppTInfo, m_ptiDispType); - return hr; -} - -STDMETHODIMP CDsoFramerControl::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) -{ - HRESULT hr; - ITypeInfo *pti; - - ODS("CDsoFramerControl::GetIDsOfNames\n"); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Ask OLE to translate the name... - hr = pti->GetIDsOfNames(rgszNames, cNames, rgDispId); - pti->Release(); - return hr; -} - -STDMETHODIMP CDsoFramerControl::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) -{ - HRESULT hr; - ITypeInfo *pti;; - - // VB loves to check for this property (Enabled) during design time. - // We don't implement it for this control, but we'll return TRUE to - // to let it know if is enabled and don't bother with call to ITypeInfo... - if ((dispIdMember == DISPID_ENABLED) && (wFlags & DISPATCH_PROPERTYGET)) - { - if (pVarResult) // We are always enabled... - {pVarResult->vt = VT_BOOL; pVarResult->boolVal = VARIANT_TRUE; } - return S_OK; - } - - TRACE1("CDsoFramerControl::Invoke(dispid = %d)\n", dispIdMember); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Store pExcepInfo (to fill-in disp excepinfo if error occurs)... - m_pDispExcep = pExcepInfo; - - // Call the method using TypeInfo (OLE will call v-table method for us)... - hr = pti->Invoke((PVOID)this, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - - m_pDispExcep = NULL; // Don't need this anymore... - pti->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ProvideErrorInfo -// -// Fills in custom error information (as needed). -// -STDMETHODIMP CDsoFramerControl::ProvideErrorInfo(HRESULT hres) -{ - // Don't need to do anything on success... - if ((hres == S_OK) || SUCCEEDED(hres)) - return hres; - - // Fill in the error information as needed... - return DsoReportError(hres, NULL, m_pDispExcep); -} diff --git a/PROMS/DSOFramer/Source2005/dsofcontrol.cpp b/PROMS/DSOFramer/Source2005/dsofcontrol.cpp deleted file mode 100644 index 17bd4094..00000000 --- a/PROMS/DSOFramer/Source2005/dsofcontrol.cpp +++ /dev/null @@ -1,4313 +0,0 @@ -/*************************************************************************** - * DSOFCONTROL.CPP - * - * CDsoFramerControl: The Base Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - The Main Control Class -// -// Serves as a base for the ActiveX Document site object which will do -// the actual embedding. -// -CDsoFramerControl::CDsoFramerControl(LPUNKNOWN punk) -{ - ODS("CDsoFramerControl::CDsoFramerControl\n"); - m_pOuterUnknown = ((punk) ? punk : (IUnknown*)&m_xInternalUnknown); -} - -CDsoFramerControl::~CDsoFramerControl(void) -{ - ODS("CDsoFramerControl::~CDsoFramerControl\n"); - - SAFE_RELEASE_INTERFACE(m_ptiDispType); - SAFE_RELEASE_INTERFACE(m_pClientSite); - SAFE_RELEASE_INTERFACE(m_pControlSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(m_pInPlaceUIWindow); - SAFE_RELEASE_INTERFACE(m_pViewAdviseSink); - SAFE_RELEASE_INTERFACE(m_pOleAdviseHolder); - SAFE_RELEASE_INTERFACE(m_pDataAdviseHolder); - SAFE_RELEASE_INTERFACE(m_dispEvents); - SAFE_RELEASE_INTERFACE(m_pOleStorage); - SAFE_FREESTRING(m_pwszHostName); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InitializeNewInstance -// -// Sets up the inital state for the control. Any other member variable -// not set here will be NULL/FALSE thanks to zero-init in MemAlloc. -// -STDMETHODIMP CDsoFramerControl::InitializeNewInstance() -{ - m_clrBorderColor = 0x80000010; // System Button Shadow Color - m_clrBackColor = 0x80000005; // System Window Background Color - m_clrForeColor = 0x80000008; // System Window Text Color - m_clrTBarColor = 0x8000000D; // System Highlight Color - m_clrTBarTextColor = 0x8000000E; // System Highlight Text Color - m_fBorderStyle = dsoBorderFlat; - m_fShowTitlebar = TRUE; - m_fShowToolbars = TRUE; - m_fShowMenuBar = TRUE; - m_wFileMenuFlags = 0xFFFF; // All items are "enabled" by default - m_Size.cx = 240; - m_Size.cy = 240; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InPlaceActivate -// -// Does all the work in-place activating and/or ui activating the -// control when asked to do so. Sets up the main control window, the -// needed interfaces, and (if not in design) subclasses the main top-level -// window we can monitor messages that must be forwarded to an ip active -// DocObject when we have one loaded. -// -STDMETHODIMP CDsoFramerControl::InPlaceActivate(LONG lVerb) -{ - HRESULT hr; - SIZEL sizel; - - TRACE1("CDsoFramerControl::InPlaceActivate - %d\n", lVerb); - - // if we don't have a client site, then there's not much to do. - if (!m_pClientSite) return S_OK; - - // get an InPlace site pointer. - if (NULL == m_pInPlaceSite) - { - hr = m_pClientSite->QueryInterface(IID_IOleInPlaceSite, (void **)&m_pInPlaceSite); - RETURN_ON_FAILURE(hr); - } - - // if we're not already active, go and do it. - if (!m_fInPlaceActive) - { - OLEINPLACEFRAMEINFO InPlaceFrameInfo; - RECT rcPos, rcClip; - - hr = m_pInPlaceSite->CanInPlaceActivate(); - if (hr != S_OK){ if (!FAILED(hr)) hr = E_FAIL; goto cleanup;} - - // if we are here, then we have permission to go in-place active. - // now, announce our intentions to actually go ahead and do this. - hr = m_pInPlaceSite->OnInPlaceActivate(); - GOTO_ON_FAILURE(hr, cleanup); - - // if we're here, we're ready to go in-place active. we just need - // to set up some flags, and then create the window [if we have one] - m_fInPlaceActive = TRUE; - - // we need to get some information about our location in the parent - // window, as well as some information about the parent - hr = m_pInPlaceSite->GetWindow(&m_hwndParent); - if (FAILED(hr) || !IsWindow(m_hwndParent)) - { - hr = OLE_E_INVALIDHWND; - goto cleanup; - } - - InPlaceFrameInfo.cb = sizeof(OLEINPLACEFRAMEINFO); - hr = m_pInPlaceSite->GetWindowContext(&m_pInPlaceFrame, &m_pInPlaceUIWindow, &rcPos, &rcClip, &InPlaceFrameInfo); - GOTO_ON_FAILURE(hr, cleanup); - - // make sure we'll display ourselves in the correct location with the correct size - sizel.cx = rcPos.right - rcPos.left; - sizel.cy = rcPos.bottom - rcPos.top; - m_Size = sizel; - - m_xOleInplaceObject.SetObjectRects(&rcPos, &rcClip); - - // finally, create our window if we have to! - if (NULL == m_hwnd) - { - WNDCLASS wndclass; - - EnterCriticalSection(&v_csecThreadSynch); - - // if class info has not yet been registered, need to do that now... - if (GetClassInfo(v_hModule, "DSOFramerOCXWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoFramerControl::ControlWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerOCXWnd"; - RegisterClass(&wndclass); - } - - // create the window with the extent size and position... - m_hwnd = CreateWindowEx(0, "DSOFramerOCXWnd", NULL, - WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE, - rcPos.left, rcPos.top, m_Size.cx, m_Size.cy, - m_hwndParent, NULL, v_hModule, NULL); - - if (m_hwnd) SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - LeaveCriticalSection(&v_csecThreadSynch); - - if (!m_hwnd) {hr = E_FAIL; goto cleanup;} - } - - // finally, tell the host of this - m_pClientSite->ShowObject(); - } - - // if we're not inplace visible yet, do so now. - if (!m_fInPlaceVisible) - SetInPlaceVisible(TRUE); - - - // if we were asked to UIActivate, and we currently are not, do so! - if ((lVerb == OLEIVERB_PRIMARY || - lVerb == OLEIVERB_UIACTIVATE) && (!m_fUIActive)) - { - // It is not typical to UI activate ocx during design mode, but if it happens and host - // has not customized the hook policy, let's switch to delay set so that we don't - // accidently hook the VS/VB IDE designer window. - if (FRunningInDesignMode() && (m_lHookPolicy == 0)) - m_lHookPolicy = dsoSetOnFirstOpen; - - // if we don't have it already, hook top-level parent window when we go - // ui active; this is needed to track WM_ACTIVATEAPP and other critical messages - // needed by ole docobjs.... - if ((m_pHookManager == NULL) && FUseFrameHook() && !FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) - { - ODS(" ** UIActivate FAILED (DSO_E_FRAMEHOOKFAILED)\n"); - return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - } - - // Now UI activate the control for the host. This implies taking focus and - // setting up the control as the current active object... - hr = UIActivate(FALSE); - - } - - // Setup drop file support (but only when there is no current embedding)... - if (m_pDocObjFrame == NULL) - EnableDropFile(TRUE); - - return S_OK; // be-de-be-de-be-de that's all folks! - -cleanup: - // something catastrophic happened [or, at least something bad]. - // die a horrible fiery mangled painful death... - TRACE1(" *** InPlaceActivate FAILED (hr=0x%X) ***\n", hr); - m_fInPlaceActive = FALSE; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UIActivate -// -// Make sure our control is UI Active and set as ActiveObject for host. -// -STDMETHODIMP CDsoFramerControl::UIActivate(BOOL fForceUIActive) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::UIActivate(fForceUIActive=%d)\n", fForceUIActive); - - // We can't do anything if we aren't inplace active and visible! - if (!(m_fInPlaceActive) || !(m_fInPlaceVisible)) - return E_UNEXPECTED; - - // If we are not already UI active or are being asked to force it, do the call - if ((!(m_fUIActive) || (fForceUIActive)) && (m_pInPlaceSite)) - { - m_fUIActive = TRUE; - - // inform the container of our intent - hr = m_pInPlaceSite->OnUIActivate(); - - if (SUCCEEDED(hr) || (fForceUIActive)) - { - // take the focus [which is what UI Activation is all about !] - SetFocus(m_hwnd); - - // set ourselves up in the host. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - // we have to explicitly say we don't wany any border space. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetBorderSpace(NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetBorderSpace(NULL); - - // Ensure docobj component state is active as well... - if (!m_fComponentActive) - { - // Tell manager we are the active component now... - if (m_pHookManager) m_pHookManager->SetActiveComponent(m_hwnd); - else OnComponentActivationChange(TRUE); - } - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetInPlaceVisible -// -// Make sure our control is visible or not (does not actually take ui -// focus, that should be done in InPlaceActivate). -// -STDMETHODIMP_(void) CDsoFramerControl::SetInPlaceVisible(BOOL fShow) -{ - BOOL fVisible; - m_fInPlaceVisible = fShow; - - // don't do anything if we don't have a window. otherwise, set it - if (m_hwnd) - { - fVisible = IsWindowVisible(m_hwnd); - - if (fVisible && !fShow) - ShowWindow(m_hwnd, SW_HIDE); - else if (!fVisible && fShow) - ShowWindow(m_hwnd, SW_SHOWNA); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDraw -// -// Drawing is largely limited to border and titlebar, except when in -// design mode. We don't do any background painting to avoid paint problems -// when we have an ui active DocObject. It should do any painting for us. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - COLORREF clrBackground, clrForeground, clrBorder, clrT; - HBRUSH hbshBackground, hbshBorder; - HFONT hfontText, hfontOld; - HPALETTE hpal, hpalOld; - LOGFONT lfText = {-11,0,0,0,FW_NORMAL,0,0,0,0,0,0,0,FF_SWISS, "Tahoma"}; - RECT rc, rcT; - int iTxtMode, iMapMode; - - // Copy out the bounding rect... - CopyRect(&rc, prcBounds); - - // On 256 color systems, we may need a palette... - if ((GetDeviceCaps(hdcDraw, RASTERCAPS) & RC_PALETTE) && - ((GetDeviceCaps(hdcDraw, BITSPIXEL) * GetDeviceCaps(hdcDraw, PLANES)) == 8)) - { - hpal = CreateHalftonePalette(hdcDraw); - hpalOld = SelectPalette(hdcDraw, hpal, TRUE); - RealizePalette(hdcDraw); - } - else hpal = NULL; - - // Translate the OLE_COLOR values to a matching COLORREF in palette... - OleTranslateColor(m_clrBackColor, hpal, &clrBackground); - OleTranslateColor(m_clrForeColor, hpal, &clrForeground); - OleTranslateColor(m_clrBorderColor, hpal, &clrBorder); - - // Create the resources we need for drawing and setting up the DC... - hbshBackground = CreateSolidBrush(clrBackground); - hbshBorder = CreateSolidBrush(clrBorder); - - hfontText = CreateFontIndirect(&lfText); - hfontOld = (HFONT)SelectObject(hdcDraw, hfontText); - iTxtMode = SetBkMode(hdcDraw, TRANSPARENT); - iMapMode = SetMapMode(hdcDraw, MM_TEXT); - - // Based on the choosen border style, draw the border and deflate the - // drawing rect accordingly... - switch (m_fBorderStyle) - { - case 1: - { - HBRUSH hbT = GetSysColorBrush(COLOR_BTNFACE); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbT); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - } - break; - - case 2: - DrawEdge(hdcDraw, &rc, EDGE_SUNKEN, BF_RECT); - InflateRect(&rc, -2, -2); - break; - - case 3: - DrawEdge(hdcDraw, &rc, BDR_SUNKENOUTER, BF_RECT); - InflateRect(&rc, -1, -1); - break; - - //default: no border... - } - - // Draw the titlebar if visible... - if (m_fShowTitlebar) - { - COLORREF clrTitlebar, clrTitlebarText; - HBRUSH hbshTitlebar, hbshT; - LPWSTR pwszDCaption = NULL; - LPWSTR pwszROCaption = NULL; - LPWSTR pwszCaption = ((m_bstrCustomCaption) ? - m_bstrCustomCaption : L"KB311765: Office Framer Control Sample"); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - - OleTranslateColor(m_clrTBarColor, hpal, &clrTitlebar); - OleTranslateColor(m_clrTBarTextColor, hpal, &clrTitlebarText); - - hbshTitlebar = CreateSolidBrush(clrTitlebar); - FillRect(hdcDraw, &rcT, hbshTitlebar); - - DrawIconEx(hdcDraw, rcT.left+2, rcT.top+2, v_icoOffDocIcon, 16, 16, 0, NULL, DI_NORMAL); - - clrT = SetTextColor(hdcDraw, clrTitlebarText); - rcT.left += 22; - - // If we have an embedded object, check to see if it is an open doc and - // append the name to the titlebar. Also append "Read-Only" string if file - // was open in read-only mode. - if (m_pDocObjFrame) - { - if ((pwszDCaption = (LPWSTR)m_pDocObjFrame->GetSourceDocName()) != NULL) - { - LPCWSTR pwszCat[2] = {L" - ", pwszDCaption}; - pwszDCaption = DsoCopyStringCatEx(pwszCaption, 2, pwszCat); - pwszCaption = pwszDCaption; - } - - if (m_pDocObjFrame->IsReadOnly()) - { - pwszROCaption = DsoCopyStringCat(pwszCaption, L" (Read-Only)"); - pwszCaption = pwszROCaption; - } - } - - // Draw out the custom titlebar caption in Unicode if on NT/XP OS, since - // a custom caption may have non-ANSI characters... - FDrawText(hdcDraw, pwszCaption, &rcT, DT_VCENTER|DT_SINGLELINE); - - // Cleanup temp strings... - if (pwszROCaption) DsoMemFree(pwszROCaption); - if (pwszDCaption) DsoMemFree(pwszDCaption); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - rcT.top = rcT.bottom - 1; - - hbshT = GetSysColorBrush(COLOR_BTNSHADOW); - FillRect(hdcDraw, &rcT, hbshT); - - SetTextColor(hdcDraw, clrT); - DeleteObject(hbshTitlebar); - } - - // Draw menu bar if visible... - if (m_fShowMenuBar) - { - GetSizeRectForMenuBar(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - - // When in design mode, we just draw placeholder... - if (FRunningInDesignMode()) - { - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Menu Bar", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - else - { - HMENU hCurMenu; - CHAR szbuf[DSO_MAX_MENUNAME_LENGTH]; - UINT i, yTop, yBottom, xLast, xNext; - SIZE ptMItem; RECT rcMDraw; - BOOL fSelected; - DWORD dwDTFlags = (DT_SINGLELINE | DT_VCENTER); - - // Get the current menu and setup to draw the number of items in it... - if (hCurMenu = GetActivePopupMenu()) - { - yTop = rcT.top + 3; yBottom = rcT.bottom - 3; xLast = rcT.left + 2; - if (hCurMenu == m_hmenuFilePopup) - { m_cMenuItems = 1; } - else - { - if ((m_cMenuItems = (USHORT)GetMenuItemCount(hCurMenu)) > DSO_MAX_MENUITEMS) - m_cMenuItems = DSO_MAX_MENUITEMS; - } - - // If we are on an OS that supports it, hide the prefix when we are not UI active - // or if the host has disabled menu accelerators for this instance... - if (v_fWindows2KPlus && (!(m_fUIActive) || (m_fDisableMenuAccel))) - dwDTFlags |= DT_HIDEPREFIX; - - // For each item in the menu, get the menu name and draw it to the - // menu bar. We need to calculate the size taken by the font used and - // store the information in an array used by mouse move handler to - // determine which menu item the user is over... - for (i = 0; i < m_cMenuItems; i++) - { - szbuf[0] = '\0'; - if (i == 0) lstrcpy(szbuf, "&File"); - else GetMenuString(hCurMenu, i, szbuf, DSO_MAX_MENUNAME_LENGTH, MF_BYPOSITION); - - GetTextExtentPoint32(hdcDraw, szbuf, lstrlen(szbuf), &ptMItem); - xNext = (xLast + ptMItem.cx + 2); - if (xNext > (UINT)(rcT.right)){ m_cMenuItems = (USHORT)i; break; } - SetRect(&rcMDraw, xLast, yTop, xNext, yBottom); - - if (fOptimize) - CopyRect(&m_rgrcMenuItems[i], &rcMDraw); - - // If user is over this particular item, we draw it as selected... - fSelected = ((m_wSelMenuItem) && (i == (UINT)(m_wSelMenuItem - 1))); - if (fSelected) - { - FillRect(hdcDraw, &rcMDraw, GetSysColorBrush(COLOR_HIGHLIGHT)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_HIGHLIGHTTEXT)); - } - rcMDraw.left += 4; - DrawText(hdcDraw, szbuf, lstrlen(szbuf), &rcMDraw, dwDTFlags); - - if (fSelected) - SetTextColor(hdcDraw, clrT); - - xLast = xNext + 2; - } - } - } - rcT.top = rcT.bottom - 1; // Draw a line to separate menu from workspace... - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNSHADOW)); - } - - - // Fill in the background (but only if there is no active object)... - if (!m_pDocObjFrame) - { - GetSizeRectForDocument(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, hbshBackground); - - // When in design mode, we do a little extra stuff to help the - // developer visualize some of the control settings (toolbars, - // foreground color, etc.)... - if (FRunningInDesignMode()) - { - if (m_fShowToolbars) - { - rcT.bottom = rcT.top + 25; - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Toolbar Space", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - - GetSizeRectForDocument(prcBounds, &rcT); - rcT.top = rcT.top + 25; - } - - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "ActiveX Document Object", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } - else if ((m_pDocObjFrame) && (!m_fAppActive || !m_fComponentActive) && (FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange())) - { - // In the case we have more than one component, and this component is - // has an object but is not ui active we draw a bitmap representation - // of the obect to fill the area. This gives the user a sense the object - // is there but in background, and can click to reactivate... - GetSizeRectForDocument(prcBounds, &rcT); - - if (m_hbmDeactive) - { - HDC hdcT = CreateCompatibleDC(hdcDraw); - HBITMAP bmpOld = (HBITMAP)SelectObject(hdcT, m_hbmDeactive); - BITMAP bm; - - if (GetObject(m_hbmDeactive, sizeof(BITMAP), &bm)) - { - StretchBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), - hdcT, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY); - } - else - { - BitBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), hdcT, 0,0, SRCCOPY); - } - - SelectObject(hdcT, bmpOld); - DeleteDC(hdcT); - } - else if (!m_fInDocumentLoad) - { - FillRect(hdcDraw, &rcT, hbshBackground); - rcT.top = ((rc.bottom - rc.top) / 2); - clrT = SetTextColor(hdcDraw, clrForeground); - DrawText(hdcDraw, "Unable to display inactive document. Click here to reactivate the object.", -1, &rcT, DT_WORDBREAK | DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } // else The docobj draws the rest... - - // Cleanup the hDC as required... - DeleteObject(hbshBackground); - DeleteObject(hbshBorder); - - SelectObject(hdcDraw, hfontOld); - DeleteObject(hfontText); - - if (hpal) - { - SelectPalette(hdcDraw, hpalOld, TRUE); - DeleteObject(hpal); - } - - SetBkMode(hdcDraw, iTxtMode); - SetMapMode(hdcDraw, iMapMode); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDestroyWindow -// -// When the window closes make sure the object closes and release the -// subclass we have on the parent's top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDestroyWindow() -{ - ODS("CDsoFramerControl::OnDestroyWindow\n"); - - if (m_pDocObjFrame) - Close(); - - if (m_pHookManager) - { - m_pHookManager->DetachComponent(m_hwnd); - m_pHookManager = NULL; - } - - m_hwnd = NULL; - - if (m_pServerLock) - SetTempServerLock(FALSE); - - if (m_hbmDeactive) - { - DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - - if (m_hmenuFilePopup) - { - DestroyMenu(m_hmenuFilePopup); - m_hmenuFilePopup = NULL; - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnResize -// -// Resize the window and notify the doc site. -// -STDMETHODIMP_(void) CDsoFramerControl::OnResize() -{ - RECT rcPlace; - ODS("CDsoFramerControl::OnResize\n"); - if (m_pDocObjFrame) - { - if (FChangeObjActiveOnFocusChange() && (!m_fUIActive)) - UIActivate(FALSE); - - GetSizeRectForDocument(NULL, &rcPlace); - m_pDocObjFrame->OnNotifySizeChange(&rcPlace); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMouseMove -// -// We watch for mouse movement on menu bar (when visible). -// -STDMETHODIMP_(void) CDsoFramerControl::OnMouseMove(UINT x, UINT y) -{ - // TRACE2("CDsoFramerControl::OnMouseMove(%d, %d)\n", x, y); - // TRACE3(" fAppActive=%d, fUIActive=%d, fCompActive=%d\n", m_fAppActive, m_fUIActive, m_fComponentActive); - // TRACE2(" fModalState=%d, fNoInteractive=%d\n", m_fModalState, m_fNoInteractive); - - // When we are in mouse move, watch for menu selection. Only need to - // do this if bar is visible and we are not in modal state... - if ((m_fShowMenuBar) && (m_fComponentActive) && (m_fUIActive) && (m_fAppActive) && - (!m_fModalState) && (!m_fNoInteractive)) - { - UINT item; - POINT pt; pt.x = x; pt.y = y; - - // If we already have item selected, check to see if we are still - // over it. If so, we can exit now. If not, we sould unselect it. - if (m_wSelMenuItem) - { - item = m_wSelMenuItem - 1; - if (PtInRect(&m_rgrcMenuItems[item], pt)) - return; - - ReleaseCapture(); m_wSelMenuItem = 0; - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - } - - // Now loop through the menu items and see if mouse is over them. - // If it is, we set a mouse capture and draw item as selected... - for (item = 0; item < m_cMenuItems; item++) - { - if (PtInRect(&m_rgrcMenuItems[item], pt)) - { - SetCapture(m_hwnd); - m_wSelMenuItem = (USHORT)(item + 1); - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - break; - } - } - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnButtonDown -// -// We watch for mouse button down events when the titlebar is visible -// so we can drop down our popup menu if the user clicks around the -// area of the file icon. This is our workaround for menu merging. -// -STDMETHODIMP_(void) CDsoFramerControl::OnButtonDown(UINT x, UINT y) -{ - HMENU hCurMenu = NULL; - RECT rc; - - // Don't do anything if we are in modal state... - if (m_fModalState) return; - - // We don't handle commands when m_fNoInteractive is set, except for the - // condition where we are in print preview and want to display custom menu - // item to end the preview. Office apps have toolbar button to do this, but - // we will provide this option just in case user needs it to exit preview mode... - if (m_fNoInteractive) - { - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // Create a temp popup menu. We do this on fly to save resources since - // this is only needed in rare cases... - if ((m_fShowTitlebar) && ((x < 22) && (y < 22))) - { - hCurMenu = CreatePopupMenu(); - if (hCurMenu) - { - // Add the command to the menu... - AppendMenu(hCurMenu, MF_STRING, MNU_PRINTPV, "E&xit Preview"); - // Display the menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - // Cleanup... - DestroyMenu(hCurMenu); - hCurMenu = NULL; - } - } - } - - // Otherwise we do nothing when m_fNoInteractive == TRUE. - return; - } - - // We know we must be app active if user clicked on control... - if (!m_fAppActive) m_fAppActive = TRUE; - - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // If the caption is showing, we are not modal, and user clicked in the - // area around the office doc icon, show the popup menu... - if ((m_fShowTitlebar) && (!m_fShowMenuBar) && ((x < 22) && (y < 22))) - { - // This will get the File menu or the merged menu based on current state... - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) - { - // We'll place it right below the titlebar just like sys menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - } - } - else if ((m_fShowMenuBar) && (m_wSelMenuItem)) - { - POINT pt; - UINT item = m_wSelMenuItem - 1; - - // If we are over a visible menu bar item, find the right popup - // menu for the item using the selitem as an index... - if (item == 0) - { hCurMenu = m_hmenuFilePopup; } - else - { - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) hCurMenu = GetSubMenu(hCurMenu, item); - } - - // Map the location to display the popup into screen points... - pt.x = m_rgrcMenuItems[item].left; - pt.y = m_rgrcMenuItems[item].bottom; - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&pt, 1); - - HWND hwndCurFocus = GetFocus(); - m_fInFocusChange = TRUE; - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(m_hwnd); - - // Display the menu... - TrackPopupMenu(hCurMenu, 0, pt.x, pt.y, 0, m_hwnd, NULL); - - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(hwndCurFocus); - m_fInFocusChange = FALSE; - - // When user clicks off, we will resolve the mouse location to - // our control coordinates and call mousemove to free/reset selection... - if (GetCursorPos(&pt)) - { - RECT rcMenu; GetSizeRectForMenuBar(NULL, &rcMenu); - MapWindowPoints(HWND_DESKTOP, m_hwnd, (POINT*)&pt, 1); - if (!PtInRect(&rcMenu, pt)) {pt.x = 0; pt.y = 0;} - } - else {pt.x = 0; pt.y = 0;} - OnMouseMove(pt.x, pt.y); - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMenuMessage -// -// We should get these messages when we are displaying the popup menu. -// The "File" menu is ours, but the popup may have other menus copied -// from the merged menu set by the ui active docobject, so we need to -// forward those messages (as needed) to the right window handler. -// -// In addition, code is added to enable/disable File menu items based -// on flags set by developer in EnableFileCommand, and/or call the -// correct function if one of those commands was selected by user. -// -STDMETHODIMP_(void) CDsoFramerControl::OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam) -{ - HMENU hmenu, hmenuMerged = NULL; - BOOL fAlwaysSendMessage = FALSE; - HWND hwndObjectMenu = NULL; - - if (m_pDocObjFrame) - { - hwndObjectMenu = m_pDocObjFrame->GetMenuHWND(); - hmenuMerged = m_pDocObjFrame->GetMergedMenu(); - } - - switch (msg) - { - case WM_INITMENU: m_fObjectMenu = FALSE; //fall through... - case WM_ENTERIDLE: fAlwaysSendMessage = TRUE; - break; - - case WM_MENUSELECT: - if ((lParam == 0) && (HIWORD(wParam) == 0xFFFF)) - fAlwaysSendMessage = TRUE; - break; - - case WM_INITMENUPOPUP: - hmenu = (HMENU)wParam; - m_fObjectMenu = ((hmenu != m_hmenuFilePopup) && (hmenu != hmenuMerged)); - - if ((!m_fObjectMenu) && (hmenu == m_hmenuFilePopup)) - { - EnableMenuItem(hmenu, MNU_NEW, MF_BYCOMMAND | ((m_wFileMenuFlags & 1) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_OPEN, MF_BYCOMMAND | ((m_wFileMenuFlags & 2) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_CLOSE, MF_BYCOMMAND | (((m_wFileMenuFlags & 4) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVE, MF_BYCOMMAND | (((m_wFileMenuFlags & 8) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVEAS, MF_BYCOMMAND | (((m_wFileMenuFlags & 16) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PGSETUP, MF_BYCOMMAND | (((m_wFileMenuFlags & 64) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINTPV, MF_BYCOMMAND | (((m_wFileMenuFlags & 256) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINT, MF_BYCOMMAND | (((m_wFileMenuFlags & 32) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PROPS, MF_BYCOMMAND | (((m_wFileMenuFlags & 128) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - } - break; - - case WM_COMMAND: - // We handle one special case for print preview exit, but otherwise - // we need to either forward to the merged menu handler (if enabled), - // or handle command through an asynchronous callback... - if ((m_fNoInteractive) && (LOWORD(wParam) == MNU_PRINTPV)) - { - PrintPreviewExit(); - } - else if ((m_fObjectMenu) && (hwndObjectMenu)) - { - PostMessage(hwndObjectMenu, msg, wParam, lParam); - } - else - { - DWORD dwCmd = 0; - switch ((int)LOWORD(wParam)) - { - case MNU_NEW: dwCmd = OLECMDID_NEW; break; - case MNU_OPEN: dwCmd = OLECMDID_OPEN; break; - case MNU_SAVE: dwCmd = OLECMDID_SAVE; break; - case MNU_SAVEAS: dwCmd = OLECMDID_SAVEAS; break; - case MNU_PGSETUP: dwCmd = OLECMDID_PAGESETUP; break; - case MNU_PRINT: dwCmd = OLECMDID_PRINT; break; - case MNU_PROPS: dwCmd = OLECMDID_PROPERTIES; break; - case MNU_PRINTPV: dwCmd = OLECMDID_PRINTPREVIEW; break; - } - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, dwCmd, 0); - } - - return; // we just return - } - - if ((hwndObjectMenu) && ((m_fObjectMenu) || (fAlwaysSendMessage))) - SendMessage(hwndObjectMenu, msg, wParam, lParam); - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnToolbarAction -// -// Does an associated OLECMDID action and raises the OnFileCommand event -// for developer to override as needed. The name comes from the fact that -// most Office servers will call this (via IOleCommandTarget) when user -// clicks on a toolbar button for file-command item. It also serves for -// our menu commands to keep the code consistant. Both menu and toolbar -// call this method asynchronously (via PostMessage) to avoid blocking the -// remote docobject server. -// -STDMETHODIMP_(void) CDsoFramerControl::OnToolbarAction(DWORD cmd) -{ - ODS("CDsoFramerControl::OnToolbarAction\n"); - HRESULT hr = S_OK; - VARIANT_BOOL wCancelAction = VARIANT_FALSE; - VARIANT rgargs[2]; - VARIANT vtT = {0}; - - // We don't reenter if in a modal state already... - if (m_fModalState) return; - - // If not interactive, we cannot run command... - if (m_fNoInteractive) - { - // unless we are in preview, in which case we can force exit - // and then run command after preview completes... - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - PrintPreviewExit(); - if (cmd != OLECMDID_PRINTPREVIEW) - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, cmd, 0); - } - return; - } - - // We will do a default action by default, but give developer a chance - // to override in OnFileCommand event... - rgargs[0].vt = VT_BOOL|VT_BYREF; - rgargs[0].pboolVal = &wCancelAction; - - // Map the OLECMDID to one of our values... - rgargs[1].vt = VT_I4; - switch (cmd) - { - case OLECMDID_NEW: rgargs[1].lVal = dsoFileNew; break; - case OLECMDID_OPEN: rgargs[1].lVal = dsoFileOpen; break; - case OLECMDID_SAVE: rgargs[1].lVal = dsoFileSave; break; - case OLECMDID_SAVEAS: rgargs[1].lVal = dsoFileSaveAs; break; - case OLECMDID_PRINT: rgargs[1].lVal = dsoFilePrint; break; - case OLECMDID_PAGESETUP: rgargs[1].lVal = dsoFilePageSetup; break; - case OLECMDID_PROPERTIES: rgargs[1].lVal = dsoFileProperties; break; - case OLECMDID_PRINTPREVIEW: rgargs[1].lVal = dsoFilePrintPreview; break; - default: rgargs[1].lVal = dsoFileClose; - } - - // Only do action if item is enabled... - if ((1 << rgargs[1].lVal) & m_wFileMenuFlags) - { - // Let control developer handle the event first... - hr = RaiseAutomationEvent(DSOF_DISPID_FILECMD, 2, rgargs); - TRACE1("Disp event returned 0x%X \n", hr); - - // If the event was canceled (or event handler threw an - // unhandled error from user code), bail out now... - if ((wCancelAction) || (hr == DISP_E_EXCEPTION)) - return; - - // Do the action based on the event... - switch (rgargs[1].lVal) - { - case dsoFileClose: hr = Close(); break; - case dsoFilePrint: hr = ShowDialog(dsoDialogPrint); break; - case dsoFilePageSetup: hr = ShowDialog(dsoDialogPageSetup); break; - case dsoFileProperties: hr = ShowDialog(dsoDialogProperties); break; - case dsoFilePrintPreview: hr = PrintPreview(); break; - - case dsoFileSave: - hr = Save(vtT, vtT, vtT, vtT); - if ((hr != DSO_E_DOCUMENTREADONLY) && - (hr != DSO_E_NOTBEENSAVED)) - break; // fall through to SaveAs if file is read-only or never been saved... - - default: - hr = DoDialogAction( - (rgargs[1].lVal == dsoFileNew) ? dsoDialogNew : - (rgargs[1].lVal == dsoFileOpen) ? dsoDialogOpen : dsoDialogSave); - } - - // Display error information to user if we failed... - if (FAILED(hr) && (hr != E_ABORT)) - FAlertUser(hr, NULL); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FAlertUser -// -// Display an error alert to the user based on failed HRESULT. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FAlertUser(HRESULT hr, LPWSTR pwsFileName) -{ - LPSTR pszError = NULL; - LPSTR pszTitle = NULL; - DWORD dwFlags = MB_ICONINFORMATION|MB_SETFOREGROUND; - - switch (hr) - { - case STG_E_ACCESSDENIED: - case STG_E_SHAREVIOLATION: - case STG_E_LOCKVIOLATION: - case MK_E_CANTOPENFILE: - case E_ACCESSDENIED: - pszError = "Unable to Open/Save the file selected due to security permissions or a share violation."; - pszTitle = "Access Denied"; - break; - - case DSO_E_DOCUMENTNOTOPEN: - pszError = "The operation could not be performed because no document is currently open."; - pszTitle = "Unable to Perform Command"; - break; - - case DSO_E_DOCUMENTREADONLY: - pszError = "The operation could not be performed because the document was opened read-only."; - pszTitle = "Unable to Update Document"; - break; - - case CO_E_MSI_ERROR: - case DSO_E_INVALIDSERVER: - case DSO_E_INVALIDPROGID: - case STG_E_NOTFILEBASEDSTORAGE: - pszError = "There is no ActiveX Document server currently registered or installed for the item selected. " - "It cannot be loaded into the control."; - pszTitle = "Unable to Insert Document"; - break; - - case DSO_E_INMODALSTATE: - MessageBeep(0); - return FALSE; // Unable to alert user if in a modal condition! - - case DSO_E_COMMANDNOTSUPPORTED: - pszError = "This operation could not be performed because the document server " - "does not support the command, or it is disabled when embedded."; - pszTitle = "Command Not Supported"; - break; - - case STG_E_TOOMANYOPENFILES: - pszError = "You can only open one document at a time. Please choose a single file to open."; - pszTitle = "Command Not Supported"; - break; - - case DSO_E_REQUIRESMSDAIPP: - pszError = "You cannot open/save to a web folder unless MDAC 2.5 is installed. The operation cannot be performed."; - pszTitle = "Unable to Gain Write Access for URL"; - break; - - default: - pszError = "The program encountered an error trying to perform the command. " - "If the problem persists, contact the program vendor for a possible solution."; - pszTitle = "Command Error"; - dwFlags = MB_ICONHAND|MB_SETFOREGROUND; - } - - MessageBox(m_hwnd, pszError, pszTitle, dwFlags); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::EnableDropFile -// -// Decide when to allow file drop for open. -// -STDMETHODIMP_(void) CDsoFramerControl::EnableDropFile(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::EnableDropFile(%d)\n", fEnable); - DragAcceptFiles(m_hwnd, fEnable); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDropFile -// -// Open file dropped by user on the control. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDropFile(HDROP hdrpFile) -{ - DWORD cbItems; - CHAR szFileDrop[MAX_PATH]; - VARIANT vtFile; - - ODS("CDsoFramerControl::OnDropFile()\n"); - cbItems = DragQueryFile(hdrpFile, 0xFFFFFFFF, NULL, 0); - if (cbItems == 0) - return; - - if (cbItems > 1) - { - FAlertUser(STG_E_TOOMANYOPENFILES, NULL); - return; - } - - szFileDrop[0] = 0; - vtFile.vt = VT_BSTR; - - if (DragQueryFile(hdrpFile, 0, szFileDrop, MAX_PATH) && - (vtFile.bstrVal = DsoConvertToBSTR(szFileDrop))) - { - HRESULT hr; - VARIANT vtMissing; - vtMissing.vt = VT_ERROR; - vtMissing.scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vtFile, vtMissing, vtMissing, vtMissing, vtMissing); - if (FAILED(hr)) FAlertUser(hr, vtFile.bstrVal); - - VariantClear(&vtFile); - } - - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnTimer -// -// Timer event fired. -// -STDMETHODIMP_(void) CDsoFramerControl::OnTimer(UINT id) -{ - // TRACE1("CDsoFramerControl::OnTimer(%d)\n", id); - switch (id) - { - case SYNCPAINT_TIMER_ID: - { - DWORD dwTick = GetTickCount(); - if ((dwTick - m_uiSyncPaint) > 300) - { - ODS("CDsoFramerControl::OnSyncPaint() Invalidate\n"); - KillTimer(m_hwnd, SYNCPAINT_TIMER_ID); - m_fSyncPaintTimer = FALSE; - InvalidateAllChildWindows(m_hwnd); - } - } - break; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSyncPaint -// -// Notifies redraw is needed b/c of external window movement. -// -STDMETHODIMP_(void) CDsoFramerControl::OnSyncPaint() -{ - // ODS("CDsoFramerControl::OnSyncPaint()\n"); - m_uiSyncPaint = GetTickCount(); - if ((!m_fSyncPaintTimer) && (!m_fAppActive)) - { - SetTimer(m_hwnd, SYNCPAINT_TIMER_ID, 50, NULL); - m_fSyncPaintTimer = TRUE; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnForegroundCompChange -// -// Shows/Hide embedding when window goes foreground/background active. -// -STDMETHODIMP_(void) CDsoFramerControl::OnForegroundCompChange(BOOL fCompActive) -{ - ODS("CDsoFramerControl::OnForegroundCompChange\n"); - if (m_pDocObjFrame) - { - HWND hwndEmbed = m_pDocObjFrame->GetDocWindow(); - - if (fCompActive) - { - // Make sure embed window is visible when active... - if (!IsWindowVisible(hwndEmbed)) - ShowWindow(hwndEmbed, SW_SHOW); - - if (m_hbmDeactive) DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - else if ((FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange()) && (m_hbmDeactive == NULL)) - { - // The default behavior on app deactive is to grap bitmap of active object before - // telling it we lost app activation. This allows us to draw the last state of the - // object while it is deactive. There is now an option to avoid this and keep object - // UI active while app deactive, but it may not work for all DocObj servers. - m_hbmDeactive = DsoGetBitmapFromWindow(hwndEmbed); - ShowWindow(hwndEmbed, SW_HIDE); - } - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnAppActivationChange -// -// Notifes embedded object when the host app gains/loses foreground status -// as the active application. This notification is critical to DocObjects since -// it is the primary means for the host and server to synch which top-level -// frame window (the host or the server's native main window) should be on the -// z-order stack for the shared thread input state. Thus allowing dialogs and tool -// windows to appear the correct order when displayed. -// -STDMETHODIMP_(void) CDsoFramerControl::OnAppActivationChange(BOOL fAppActive, DWORD dwThreadID) -{ - TRACE2("CDsoFramerControl::OnAppActivationChange(fAppActive=%d, tid=0x%X)\n", fAppActive, dwThreadID); - m_fAppActive = fAppActive; - - if ((m_pDocObjFrame) && (m_fComponentActive)) - { - // Create/Free bitmap for background appearance.. - OnForegroundCompChange(fAppActive); - - // Notify it that it should be app active ofr deactive... - m_pDocObjFrame->OnNotifyAppActivate(fAppActive, (dwThreadID ? dwThreadID : GetCurrentThreadId())); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnComponentActivationChange -// -// Handles showing/hiding doc object during activation state changes. -// This is needed to properly handle focus changes when more than one -// instance of the control is running on the same top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnComponentActivationChange(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::OnComponentActivationChange(fActive=%d)\n", fActivate); - - if (fActivate) - { - // Set us active if we currently are not and raise activation change event... - if (!m_fComponentActive) - { - m_fComponentActive = TRUE; - OnForegroundCompChange(TRUE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - // Notify the embedded object... - if (m_pDocObjFrame) - { - // Determine if we should restore from IP deactivation... - if (FIPDeactivateOnCompChange() && !(m_pDocObjFrame->IsIPActive())) - { - m_pDocObjFrame->IPActivateView(); - OnForegroundCompChange(TRUE); - } - } - } - else - { - - // Inform embedded object we lost activation... - if (m_pDocObjFrame) - { - // If we are in print preview, we need to exit in case other control will - // end up talking to same OLE server... - if (m_pDocObjFrame->InPrintPreview()) - { - PrintPreviewExit(); - UpdateWindow(m_hwnd); - } - - // Provide control host option to IP deactive view when another framer control - // takes primary focus. This helps certain resource problems if you a lot of controls - // all IP active at the same time. This should not normally be used. - if (FIPDeactivateOnCompChange() && m_pDocObjFrame->IsIPActive()) - { - OnForegroundCompChange(FALSE); - m_pDocObjFrame->IPDeactivateView(); - } - - } - - // Change the current activation state and raise event... - if (m_fComponentActive) - { - m_fComponentActive = FALSE; - OnForegroundCompChange(FALSE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnCtrlFocusChange -// -// Checks if window (or one of its children) is getting or losing focus so -// that can notify both the host and embed server using OnUIFocusChange. -// -STDMETHODIMP_(void) CDsoFramerControl::OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd) -{ - TRACE2("CDsoFramerControl::OnCtrlFocusChange(fCtlGotFocus=%d, hwndCurFocus=%x)\n", fCtlGotFocus, hFocusWnd); - if (!(m_fInFocusChange) && ((fCtlGotFocus) || !IsWindowChild(m_hwnd, hFocusWnd))) - { - OnUIFocusChange(fCtlGotFocus); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnUIFocusChange -// -// Selectively handle focus changes to make sure both host and ui -// active docobject are in synch. -// -STDMETHODIMP_(void) CDsoFramerControl::OnUIFocusChange(BOOL fUIActive) -{ - BOOL fFocusUpdated = FALSE; - TRACE1("CDsoFramerControl::OnUIFocusChange(fUIActive=%d)\n", fUIActive); - - // We shouldn't try to do focus change when modal... - if ((m_fModalState) || (m_fInFocusChange)) - { - ODS(" -- Got focus while modal or in change (do nothing) --\n"); - return; - } - - // When IP active, notify the control host of focus change... - if ((m_fInPlaceActive) && (m_pControlSite)) - { - - // Set flag to prevent recursion during focus changes... - m_fInFocusChange = TRUE; - - if (fUIActive) // If we got focus... - { - // Notify host we have focus (we only need - // to do this if we are not already UI Active)... - if (!(m_fHasFocus)) - { - ODS(" -- Tell host app we should have focus --\n"); - m_fHasFocus = (fFocusUpdated = TRUE); - m_pControlSite->OnFocus(TRUE); - } - - // Let the hook manager know that this control is the active object... - if (m_pHookManager) - m_pHookManager->SetActiveComponent(m_hwnd); - - // If so configured, force component to show up active... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component active on focus gain --\n"); - OnComponentActivationChange(TRUE); - } - - // If we have an active document, forward the focus... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(TRUE); - - } - else // else we lost focus... - { - - // When we lose focus, only notify host if we lost to window - // that does not belong to us... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(FALSE); - - // If so configured, force component loss on focus loss... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component deactive on focus loss --\n"); - OnComponentActivationChange(FALSE); - m_fActivateOnStatus = TRUE; - } - - // If we are UI active still, we need to tell host that we lost - // focus and are now UI deactive. - if (m_fHasFocus) - { - ODS(" -- Notify host of lost focus (ie, UI deactivate us) --\n"); - m_fHasFocus = FALSE; fFocusUpdated = TRUE; - m_pControlSite->OnFocus(FALSE); - } - } - - // Clear focus change flag... - m_fInFocusChange = FALSE; - - // Redraw menu bar in case of state change - if ((fFocusUpdated) && (m_fShowMenuBar)) - { - RECT rc; GetSizeRectForMenuBar(NULL, &rc); - InvalidateRect(m_hwnd, &rc, TRUE); - } - } - - return; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateModalState -// -// Called either by developer (ModalState property) or by the embedded -// DocObject to notify host (VB/IE) that we are modal. -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject) -{ - TRACE2("CDsoFramerControl::UpdateModalState(AllowModeless=%d, NotifyIP=%d)\n", fModeless, fNotifyIPObject); - if (fModeless == (int)m_fModalState) - { - IOleInPlaceActiveObject* pipao; - - m_fModalState = !(fModeless); - ODS("Modal state changed\n"); - - // Excel doesn't like us to notify the host of changes in modality - // if it is the one who initialied the call. So, we check the - // NotifyIPObj flag and only notify host when the IPObj is not the caller... - if ((fNotifyIPObject) && (m_pInPlaceFrame)) - m_pInPlaceFrame->EnableModeless(fModeless); - - // Again, if IPObj is not the caller and we have Ipobj, let it know - // of the change in modal state... - if ((fNotifyIPObject) && (m_pDocObjFrame) && - (pipao = m_pDocObjFrame->GetActiveObject())) - pipao->EnableModeless(fModeless); - - // Post notification of return from modal... - if (fModeless) - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_RETURNFROMMODAL, (LPARAM)TRUE); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateInteractiveState -// -// Called when interactivity changes (mostly due to print preview). -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateInteractiveState(BOOL fActive) -{ - if (fActive) - { - m_fNoInteractive = FALSE; - if (m_fShowMenuPrev) put_Menubar(VARIANT_TRUE); - if (!m_fShowToolsPrev) put_Toolbars(VARIANT_FALSE); - - // Notify control host that preview mode has ended... - RaiseAutomationEvent(DSOF_DISPID_ENDPREVIEW, 0, NULL); - } - else - { - m_fShowMenuPrev = m_fShowMenuBar; - m_fShowToolsPrev = m_fShowToolbars; - if (m_fShowMenuBar) put_Menubar(VARIANT_FALSE); - if (!m_fShowToolbars) put_Toolbars(VARIANT_TRUE); - m_fNoInteractive = TRUE; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnPaletteChanged -// -// This method is also called from the subclassed parent. Per docobject -// spec, a ui active object should get first chance of any palette updates. -// -STDMETHODIMP_(void) CDsoFramerControl::OnPaletteChanged(HWND hwndPalChg) -{ - ODS("CDsoFramerControl::OnPaletteChanged\n"); - if (m_pDocObjFrame) m_pDocObjFrame->OnNotifyPaletteChanged(hwndPalChg); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSysCommandMenu -// -// Checks for menu shortcut keys when ui active. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::OnSysCommandMenu(CHAR ch) -{ - if (m_fUIActive) - { - TRACE1("CDsoFramerControl::OnSysCommandMenu(%d)\n", (DWORD)ch); - return TRUE; - } - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetActivePopupMenu -// -// Constructs our popup menu and returns the handle. The menu can be -// either the File menu by itself (no docobj is open) or the merged -// menu as a popup. -// -STDMETHODIMP_(HMENU) CDsoFramerControl::GetActivePopupMenu() -{ - HMENU hPopup, hMergedMenu, hServerMenu; - - // If we haven't made a File menu yet, make it. Here is where you might - // want to add custom items if you have other file-level commands you would - // the control to support. These are the basics... - if (!m_hmenuFilePopup) - { - m_hmenuFilePopup = CreatePopupMenu(); m_cMenuItems = 0; - if (!m_hmenuFilePopup) return NULL; - - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_NEW, "&New...\tCtrl+N"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_OPEN, "&Open...\tCtrl+O"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_CLOSE, "&Close"); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVE, "&Save\tCtrl+S"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVEAS, "Save &As..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PGSETUP, "Page Set&up..."); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINTPV, "Print Pre&view"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINT, "&Print..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PROPS, "Propert&ies"); - } - - // If we have a docobj and it has a merged menu, then lets return a - // merged menu between the docobj and our file menu... - if ((m_pDocObjFrame) && (m_pDocObjFrame->GetMenuHWND())) - { - // We only need to create the merged copy once. - if (!(hMergedMenu = m_pDocObjFrame->GetMergedMenu())) - { - hMergedMenu = CreatePopupMenu(); m_cMenuItems = 0; - if ((hMergedMenu) && (hServerMenu = (m_pDocObjFrame->GetActiveMenu()))) - { - CHAR szbuf[MAX_PATH]; - HMENU hT; - CHAR *pch; - - InsertMenu(hMergedMenu, 0, MF_BYPOSITION|MF_POPUP, (UINT)m_hmenuFilePopup, "&File"); - m_rgchMenuAccel[0] = 'f'; - - int cbMenuCnt = GetMenuItemCount(hServerMenu); - if (cbMenuCnt > DSO_MAX_MENUITEMS) cbMenuCnt = DSO_MAX_MENUITEMS; - - for (int i = 0; i < cbMenuCnt; i++) - { - hT = GetSubMenu(hServerMenu, i); - if (hT) - { - szbuf[0] = '\0'; - GetMenuString(hServerMenu, i, szbuf, MAX_PATH, MF_BYPOSITION); - InsertMenu(hMergedMenu, (i + 1), MF_BYPOSITION|MF_POPUP, (UINT)hT, szbuf); - - pch = szbuf; - while (*pch && (*pch++ != '&')) - ; - m_rgchMenuAccel[i + 1] = (CHAR)((*pch) ? ASCII_LOWERCASE(*pch) : 0xFF); - } - } - - if (cbMenuCnt < DSO_MAX_MENUITEMS) - m_rgchMenuAccel[cbMenuCnt + 1] = 0x00; - - m_pDocObjFrame->SetMergedMenu(hMergedMenu); - } - } - - hPopup = hMergedMenu; - } - else - { - hPopup = m_hmenuFilePopup; - m_rgchMenuAccel[0] = 'f'; - m_rgchMenuAccel[1] = 0; - } - - return hPopup; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FRunningInDesignMode -// -// Determines if we are in design mode. Called when painting the control -// and when deciding whether to subclass the parent. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FRunningInDesignMode() -{ - IDispatch *pdisp; - - // We must have a control site. - CHECK_NULL_RETURN(m_pClientSite, FALSE); - - // If we have done this before, we don't need to keep doing it unless - // the host has notified us of the state change (see our code in - // XOleControl::OnAmbientPropertyChange)... - if ((!m_fModeFlagValid) && - SUCCEEDED(m_pClientSite->QueryInterface(IID_IDispatch, (void **)&pdisp))) - { - VARIANT vtUserMode; - m_fDesignMode = FALSE; // assume run mode - - if (SUCCEEDED(DsoDispatchInvoke(pdisp, NULL, - DISPID_AMBIENT_USERMODE, DISPATCH_PROPERTYGET, 0, NULL, &vtUserMode))) - { - // UserMode is True when control is in Run mode, False when in design. - // We assume run mode, so we only care to set the flag if in design. - m_fDesignMode = !(BOOL_FROM_VARIANT(vtUserMode, TRUE)); - VariantClear(&vtUserMode); - } - - m_fModeFlagValid = TRUE; - // Release the IDispatch pointer... - pdisp->Release(); - } - - return m_fDesignMode; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InvalidateAllChildWindows -// -// Invalidate all child windows attached to the window passed. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindows(HWND hwnd) -{ - ODS("CDsoFramerControl::InvalidateAllChildWindows()\n"); - return EnumChildWindows(hwnd, InvalidateAllChildWindowsCallback, 0); -} - -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam) -{ - RECT rc; - GetClientRect(hwnd, &rc); - InvalidateRect(hwnd, &rc, TRUE); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseAutomationEvent -// -// Raises automation events to host application. -// -STDMETHODIMP CDsoFramerControl::RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs) -{ - HRESULT hr = ((m_fModalState) ? DISP_E_EXCEPTION : S_FALSE); - TRACE1("CDsoFramerControl::RaiseAutomationEvent(%d)\n", did); - - // We should only raise event if we have sink, not already in a event, and - // we are not in modal condition with respect to the remote server... - if ((m_dispEvents) && (!m_fFreezeEvents) && (!m_fModalState)) - { - m_fFreezeEvents = TRUE; - hr = DsoDispatchInvoke(m_dispEvents, NULL, did, 0, cargs, pvtargs, NULL); - m_fFreezeEvents = FALSE; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::DoDialogAction -// -// A very simple implementation of a New/Open/Save dialogs to serve as -// default actions in case developer does not override these "File" -// commands in OnFileCommand. -// -STDMETHODIMP CDsoFramerControl::DoDialogAction(dsoShowDialogType item) -{ - HRESULT hr = S_FALSE; - BSTR bstr; - BOOL fReadOnly; - VARIANT vT[3]; - - static const WCHAR v_wszFileFilter[] = - L"Microsoft Office Files\0*.doc;*.docx;*.docm;*.rtf;*.xls;*.xlsx;*.xlsm;*.csv;*.ppt;*.pptx;*.pptm;*.mpp;*.vsd;*.vdx\0" - L"Microsoft Word Files\0*.doc;*.docx;*.docm;*.rtf\0" - L"Microsoft Excel Files\0*.xls;*.xlsx;*.xlsm;*.csv\0" - L"Microsoft PowerPoint Files\0*.ppt;*.pptx;*.pptm\0" - L"Microsoft Project Files\0*.mpp\0" - L"Microsoft Visio Files\0*.vsd;*.vdx\0" - L"All Files (*.*)\0*.*\0\0"; - - // Switch on the action type... - switch (item) - { - case dsoDialogOpen: // Get file from user and call Open... - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_FILEMUSTEXIST|OFN_EXPLORER), - v_wszFileFilter, 1, NULL, NULL, FALSE, &bstr, &fReadOnly))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = (fReadOnly ? VARIANT_TRUE : VARIANT_FALSE); - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vT[0], vT[1], vT[2], vT[2], vT[2]); - SysFreeString(bstr); - } - break; - - case dsoDialogSave: // Get file from user and call Save... - { - LPWSTR pwszSaveType = NULL; - LPWSTR pwszDefExt = NULL; - - if (m_pDocObjFrame) - m_pDocObjFrame->GetDocumentTypeAndFileExtension(&pwszSaveType, &pwszDefExt); - - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXPLORER), - ((pwszSaveType) ? pwszSaveType : v_wszFileFilter), 1, pwszDefExt, NULL, TRUE, &bstr, NULL))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = VARIANT_TRUE; - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Save(vT[0], vT[1], vT[2], vT[2]); - SysFreeString(bstr); - } - - if (pwszSaveType) DsoMemFree(pwszSaveType); - if (pwszDefExt) DsoMemFree(pwszDefExt); - } - break; - - case dsoDialogNew: // Get either ProgID or File to create new object from... - if (SUCCEEDED(DsoGetOleInsertObjectFromUser(m_hwnd, L"Insert New Document Object", - (IOF_SELECTCREATENEW | IOF_DISABLELINK | IOF_DISABLEDISPLAYASICON | IOF_HIDECHANGEICON), - TRUE, FALSE, &bstr, NULL))) - { - hr = CreateNew(bstr); - SysFreeString(bstr); - } - break; - - default: MessageBeep(0); - } - - return hr; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetTempServerLock -// -// Sets up lock of OLE server to make unload and new load of files faster -// and to avoid race conditions on reload of file. -// -STDMETHODIMP CDsoFramerControl::SetTempServerLock(BOOL fLock) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::SetTempServerLock(%d)\n", fLock); - - if (fLock) - { - CLSID *pclsid; - - // First get the the CLSID of the current loaded object... - pclsid = m_pDocObjFrame->GetServerCLSID(); - - // If we already have a lock, determine if user is asking us to lock - // the same server (we only lock once for a given server type)... - if (m_pServerLock) - { - if (*(m_pServerLock->GetServerCLSID()) == *pclsid) - return S_FALSE; - - // If the current document is from a different server, free the old lock... - hr = SetTempServerLock(FALSE); - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - } - - // To lock the server, just make a dummy OLE object and don't ever site it... - m_pServerLock = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - hr = ((m_pServerLock) ? m_pServerLock->CreateDocObject(*pclsid) : E_OUTOFMEMORY); - if (SUCCEEDED(hr)) - { - hr = m_pServerLock->SetRunningServerLock(TRUE); - - // If we lock Excel, it steals focus from this host to the lock object, so we - // need to take it back so the real object isn't mixed up state... - if (SUCCEEDED(hr) && (m_pServerLock->IsExcelObject()) && (m_fAppActive)) - { - OnAppActivationChange(TRUE, 0); - } - } - else - { - delete m_pServerLock; - m_pServerLock = NULL; - } - - } - else if (m_pServerLock) - { - SEH_TRY - hr = m_pServerLock->SetRunningServerLock(FALSE); - hr = m_pServerLock->Close(); - SEH_EXCEPT(hr) - - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - delete m_pServerLock; - m_pServerLock = NULL; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ResetFrameHook -// -// Allows host to reset the frame hook. -// -STDMETHODIMP CDsoFramerControl::ResetFrameHook(HWND hwndFrameWindow) -{ - DWORD dwProcessId; - TRACE1("CDsoFramerControl::ResetFrameHook(%d)\n", hwndFrameWindow); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Verify that hwnd passed is a valid window handle and belogs to same thread - // as the control for parenting purposes... - if ((hwndFrameWindow) && (!IsWindow(hwndFrameWindow) || - (GetWindowThreadProcessId(hwndFrameWindow, &dwProcessId), dwProcessId != GetCurrentProcessId()))) - return E_INVALIDARG; - - // We must have a window already created for this to work... - if ((m_hwnd == NULL) || !IsWindow(m_hwnd) || - (m_hwndParent == NULL) || !IsWindow(m_hwndParent)) - return E_ACCESSDENIED; - - // Detach from the current window (removing that hook if this is the last component)... - if (m_pHookManager) - { - HRESULT hr = m_pHookManager->DetachComponent(m_hwnd); - if (FAILED(hr)) return hr; - m_pHookManager = NULL; - } - - // Now attach to the new parent window (or reattach based on the parent from our window)... - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl((hwndFrameWindow ? hwndFrameWindow : m_hwndParent), m_hwnd); - if (m_pHookManager == NULL) return E_FAIL; - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseActivationEvent -// -// Called to raise component change event on activation switch. -// -STDMETHODIMP_(void) CDsoFramerControl::RaiseActivationEvent(BOOL fActive) -{ - VARIANT rgargs[1]; rgargs[0].vt = VT_BOOL; - rgargs[0].boolVal = (fActive ? VARIANT_TRUE : VARIANT_FALSE); - RaiseAutomationEvent(DSOF_DISPID_ACTIVATE, 1, rgargs); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ControlWindowProc -// -// The window proc for our control. -// -STDMETHODIMP_(LRESULT) CDsoFramerControl::ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFramerControl* pCtl = (CDsoFramerControl*)GetWindowLong(hwnd, GWL_USERDATA); - if (pCtl) - { - switch (msg) - { - case WM_PAINT: - { - // call the OnDraw routine. - PAINTSTRUCT ps; - RECT rc; - HDC hdc; - hdc = BeginPaint(hwnd, &ps); - GetClientRect(hwnd, &rc); - pCtl->OnDraw(DVASPECT_CONTENT, hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - break; - - case WM_SIZE: - pCtl->OnResize(); - break; - - case WM_DESTROY: - pCtl->OnDestroyWindow(); - SetWindowLong(hwnd, GWL_USERDATA, 0); - break; - - case WM_SETFOCUS: - case WM_KILLFOCUS: - pCtl->OnCtrlFocusChange((BOOL)(msg == WM_SETFOCUS), (HWND)wParam); - break; - - case WM_MOUSEMOVE: - pCtl->OnMouseMove(LOWORD(lParam), HIWORD(lParam)); - break; - - case WM_LBUTTONDOWN: - pCtl->OnButtonDown(LOWORD(lParam), HIWORD(lParam)); - break; - - case DSO_WM_ASYNCH_OLECOMMAND: - ODS(" -- Got DSO_WM_ASYNCH_OLECOMMAND -- \n"); - pCtl->OnToolbarAction((DWORD)wParam); - break; - - case DSO_WM_ASYNCH_STATECHANGE: - TRACE1(" -- Got DSO_WM_ASYNCH_STATECHANGE %d --\n", wParam); - { - BOOL fCondition = (lParam != 0); - switch (wParam) - { - case DSO_STATE_MODAL: - pCtl->UpdateModalState(fCondition, FALSE); - break; - case DSO_STATE_ACTIVATION: - pCtl->RaiseActivationEvent(fCondition); - break; - case DSO_STATE_INTERACTIVE: - pCtl->UpdateInteractiveState(fCondition); - break; - case DSO_STATE_RETURNFROMMODAL: - { - if ((pCtl->m_fModalState == FALSE) && - (pCtl->m_fAppActive)) - { - pCtl->OnUIFocusChange(TRUE); - } - } - break; - - default: - ODS(" -- Unknown State Change!! --\n"); - break; - } - } - break; - - case DSO_WM_HOOK_NOTIFY_COMPACTIVE: - pCtl->OnComponentActivationChange((BOOL)wParam); - wParam = lParam; lParam = 0; - // falls through with wParam swapped... - - case DSO_WM_HOOK_NOTIFY_APPACTIVATE: - pCtl->OnAppActivationChange((BOOL)wParam, (DWORD)lParam); - break; - - case DSO_WM_HOOK_NOTIFY_SYNCPAINT: - pCtl->OnSyncPaint(); - break; - - case DSO_WM_HOOK_NOTIFY_PALETTECHANGE: - pCtl->OnPaletteChanged((HWND)wParam); - break; - - case WM_ENABLE: - pCtl->OnWindowEnable((BOOL)wParam); - break; - - case WM_MENUSELECT: - case WM_DRAWITEM: - case WM_MEASUREITEM: - case WM_ENTERIDLE: - case WM_INITMENU: - case WM_INITMENUPOPUP: - case WM_COMMAND: - pCtl->OnMenuMessage(msg, wParam, lParam); - break; - - case WM_DROPFILES: - pCtl->OnDropFile((HDROP)wParam); - break; - - case WM_TIMER: - pCtl->OnTimer((UINT)wParam); - break; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if (pCtl->m_xDsoDocObjectSite.SysMenuCommand((UINT)lParam) == S_OK) - { - ODS(" -- Eat SC_KeyMenu message --\n"); - return 1; - } - } - // fall through to defwinproc... - - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - - } - - return (LRESULT)0; - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - -//////////////////////////////////////////////////////////////////////// -// -// OCX Interfaces for CDsoFramerControl -// -// NOTE: The automation interfaces are implemented in dsofauto.cpp. -// The interfaces that follow are largely the interfaces used by the -// OCX host for normal control containment. -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XInternalUnknown -- Internal IUnknown interface -// !!! Controls lifetime of CDsoFramerControl !!! -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoFramerControl::XInternalUnknown::QueryInterface(REFIID riid, void** ppv) -{ - // ODS("CDsoFramerControl::InternalQueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if ((IID_IDispatch == riid) || (IID__FramerControl == riid)) - { - *ppv = (_FramerControl*)pThis; - } - else if (IID_IOleObject == riid) - { - *ppv = (IOleObject*)&(pThis->m_xOleObject); - } - else if (IID_IOleControl == riid) - { - *ppv = (IOleControl*)&(pThis->m_xOleControl); - } - else if (IID_IPersistPropertyBag == riid) - { - *ppv = (IPersistPropertyBag*)&(pThis->m_xPersistPropertyBag); - } - else if ((IID_IPersistStreamInit == riid) || (IID_IPersistStream == riid) || (IID_IPersist == riid)) - { - *ppv = (IPersistStreamInit*)&(pThis->m_xPersistStreamInit); - } - else if ((IID_IOleInPlaceObject == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceObject*)&(pThis->m_xOleInplaceObject); - } - else if (IID_IOleInPlaceActiveObject == riid) - { - *ppv = (IOleInPlaceActiveObject*)&(pThis->m_xOleInplaceActiveObject); - } - else if ((IID_IViewObjectEx == riid) || (IID_IViewObject == riid) || (IID_IViewObject2 == riid)) - { - *ppv = (IViewObjectEx*)&(pThis->m_xViewObjectEx); - } - else if (IID_IDataObject == riid) - { - *ppv = (IDataObject*)&(pThis->m_xDataObject); - } - else if (IID_ISupportErrorInfo == riid) - { - *ppv = (ISupportErrorInfo*)&(pThis->m_xSupportErrorInfo); - } - else if (IID_IProvideClassInfo == riid) - { - *ppv = (IProvideClassInfo*)&(pThis->m_xProvideClassInfo); - } - else if (IID_IConnectionPointContainer == riid) - { - *ppv = (IConnectionPointContainer*)&(pThis->m_xConnectionPointContainer); - } - else if (IID_IConnectionPoint == riid) - { - *ppv = (IConnectionPoint*)&(pThis->m_xConnectionPoint); - } - else if (IID_IEnumConnectionPoints == riid) - { - *ppv = (IEnumConnectionPoints*)&(pThis->m_xEnumConnectionPoints); - } - else if (IID_IPersistStorage == riid) - { - *ppv = (IPersistStorage*)&(pThis->m_xPersistStorage); - } - else if (IID_IObjectSafety == riid) - { - *ppv = (IObjectSafety*)&(pThis->m_xObjectSafety); - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&(pThis->m_xOleCommandTarget); - } - else if ((IID_IDsoDocObjectSite == riid) || (IID_IServiceProvider == riid)) - { - *ppv = (IDsoDocObjectSite*)&(pThis->m_xDsoDocObjectSite); - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) // AddRef those interfaces we will return... - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::AddRef(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalAddRef - %d\n", (pThis->m_cRef + 1)); - return ++(pThis->m_cRef); -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::Release(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalRelease - %d\n", (pThis->m_cRef - 1)); - if (0 != --(pThis->m_cRef)) return (pThis->m_cRef); - ODS("CDsoFramerControl delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete pThis; return 0; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStreamInit -- IPersistStreamInit Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP Load(LPSTREAM pStm); -// STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); -// STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); -// STDMETHODIMP InitNew(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStreamInit) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - - -#define STREAMHDR_SIGNATURE_OLD 0x1234ABCD // Signature to identify our format (avoid crashes!) -#define STREAMHDR_SIGNATURE_NEW 0xD501D501 // Signature to identify our format (avoid crashes!) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Load(LPSTREAM pStm) -{ - HRESULT hr; - DWORD dwSig, dwT; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Load\n"); - - // look for our header structure, so we can verify stream validity. - hr = pStm->Read(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if ((dwSig != STREAMHDR_SIGNATURE_NEW) && - (dwSig != STREAMHDR_SIGNATURE_OLD)) - return E_UNEXPECTED; - - // we like the stream. let's go load in our two properties. - hr = pStm->Read(&(pThis->m_Size), sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - DsoHimetricToPixels(&(pThis->m_Size.cx), &(pThis->m_Size.cy)); - - hr = pStm->Read(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fBorderStyle = LOBYTE(LOWORD(dwT)); - pThis->m_fShowMenuBar = HIBYTE(LOWORD(dwT)); - pThis->m_fShowToolbars = LOBYTE(HIWORD(dwT)); - pThis->m_fShowTitlebar = HIBYTE(HIWORD(dwT)); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - LPWSTR pwsz = (LPWSTR)DsoMemAlloc(dwT+2); - if (pwsz) - { - hr = pStm->Read(pwsz, dwT, NULL); - if (SUCCEEDED(hr)) - pThis->m_bstrCustomCaption = SysAllocString(pwsz); - } - DsoMemFree(pwsz); - } - - // Read in new properties for 1.3 version control... - if (dwSig == STREAMHDR_SIGNATURE_NEW) - { - DWORD dwValue; - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_lActivationPolicy = LOWORD(dwValue); - pThis->m_lHookPolicy = HIWORD(dwValue); - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fDisableMenuAccel = LOBYTE(LOWORD(dwT)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) -{ - HRESULT hr; - DWORD dwT, dwSig = STREAMHDR_SIGNATURE_NEW; - SIZEL slSize; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Save\n"); - - // first thing to do is write out our stream sig... - hr = pStm->Write(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // the only properties we're currently persisting here are the size - // properties for this control. make sure we do that in HiMetric - slSize = pThis->m_Size; - DsoPixelsToHimetric(&(slSize.cx), &(slSize.cy)); - - hr = pStm->Write(&slSize, sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG( - MAKEWORD((BYTE)(pThis->m_fBorderStyle), (BYTE)(pThis->m_fShowMenuBar)), - MAKEWORD((BYTE)(pThis->m_fShowToolbars), (BYTE)(pThis->m_fShowTitlebar))); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = 0; - if (pThis->m_bstrCustomCaption) - dwT = SysStringByteLen(pThis->m_bstrCustomCaption); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - hr = pStm->Write(pThis->m_bstrCustomCaption, dwT, NULL); - RETURN_ON_FAILURE(hr); - } - - // Version 1.3 added properties... - dwT = (DWORD)MAKELONG((WORD)(pThis->m_lActivationPolicy), (WORD)(pThis->m_lHookPolicy)); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG(MAKEWORD((BYTE)(pThis->m_fDisableMenuAccel), 0), 0); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // clear out dirty flag and notify that we're done with save. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetSizeMax(ULARGE_INTEGER *pcbSize) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetSizeMax\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::InitNew(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::InitNew\n"); - // If we are new control, we are dirty by default... - pThis->m_fDirty = TRUE; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistPropertyBag -- IPersistPropertyBag Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP InitNew(); -// STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); -// STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistPropertyBag) - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistPropertyBag::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::InitNew() -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::InitNew\n"); - return pThis->m_xPersistStreamInit.InitNew(); -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog) -{ - VARIANT v; - HRESULT hr; - SIZEL sl = {5000, 3000}; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Load\n"); - - v.vt = VT_I4; - v.lVal = 0; - - hr = pPropBag->Read(L"_ExtentX", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cx = v.lVal;} - - v.lVal = 0; - hr = pPropBag->Read(L"_ExtentY", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cy = v.lVal;} - - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - pThis->m_Size = sl; - - hr = pPropBag->Read(L"Titlebar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowTitlebar = v.boolVal;} - - hr = pPropBag->Read(L"Toolbars", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowToolbars = v.boolVal;} - - hr = pPropBag->Read(L"BorderStyle", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fBorderStyle = v.lVal;} - - hr = pPropBag->Read(L"BorderColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBorderColor = v.lVal;} - - hr = pPropBag->Read(L"BackColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBackColor = v.lVal;} - - hr = pPropBag->Read(L"ForeColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrForeColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarTextColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarTextColor = v.lVal;} - - hr = pPropBag->Read(L"Caption", &v, pErrorLog); - if (SUCCEEDED(hr)) - { - LPWSTR pwsz = LPWSTR_FROM_VARIANT(v); - if (pwsz) pThis->m_bstrCustomCaption = SysAllocString(pwsz); - VariantClear(&v); - } - - pThis->m_fShowMenuBar = FALSE; - hr = pPropBag->Read(L"Menubar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowMenuBar = BOOL_FROM_VARIANT(v, FALSE);} - - hr = pPropBag->Read(L"ActivationPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lActivationPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"FrameHookPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lHookPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"MenuAccelerators", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fDisableMenuAccel = !BOOL_FROM_VARIANT(v, TRUE);} - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) -{ - HRESULT hr; - VARIANT v; - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Save\n"); - - sl = pThis->m_Size; - DsoPixelsToHimetric(&(sl.cx), &(sl.cy)); - - v.vt = VT_I4; v.lVal = sl.cx; - hr = pPropBag->Write(L"_ExtentX", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = sl.cy; - hr = pPropBag->Write(L"_ExtentY", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBorderColor; - hr = pPropBag->Write(L"BorderColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBackColor; - hr = pPropBag->Write(L"BackColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrForeColor; - hr = pPropBag->Write(L"ForeColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarColor; - hr = pPropBag->Write(L"TitlebarColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarTextColor; - hr = pPropBag->Write(L"TitlebarTextColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_fBorderStyle; - hr = pPropBag->Write(L"BorderStyle", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowTitlebar; - hr = pPropBag->Write(L"Titlebar", &v); - RETURN_ON_FAILURE(hr); - - v.boolVal = pThis->m_fShowToolbars; - hr = pPropBag->Write(L"Toolbars", &v); - RETURN_ON_FAILURE(hr); - - if (pThis->m_bstrCustomCaption) - { - v.vt = VT_BSTR; v.bstrVal = pThis->m_bstrCustomCaption; - hr = pPropBag->Write(L"Caption", &v); - RETURN_ON_FAILURE(hr); - } - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowMenuBar; - hr = pPropBag->Write(L"Menubar", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lActivationPolicy; - hr = pPropBag->Write(L"ActivationPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lHookPolicy; - hr = pPropBag->Write(L"FrameHookPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = !(pThis->m_fDisableMenuAccel); - hr = pPropBag->Write(L"MenuAccelerators", &v); - RETURN_ON_FAILURE(hr); - - // now clear the dirty flag and send out notification - // that we're done. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStorage -- IPersistStorage Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP InitNew(LPSTORAGE pStg); -// STDMETHODIMP Load(LPSTORAGE pStg); -// STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); -// STDMETHODIMP SaveCompleted(LPSTORAGE pStg); -// STDMETHODIMP HandsOffStorage(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStorage) - -STDMETHODIMP CDsoFramerControl::XPersistStorage::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStorage::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::InitNew(LPSTORAGE pStg) -{ - HRESULT hr; - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::InitNew\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pThis->m_xPersistStreamInit.InitNew(); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Load(LPSTORAGE pStg) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Load\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Load(pstm); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Save(LPSTORAGE pStg, BOOL fSameAsLoad) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Save\n"); - - if (fSameAsLoad) - { - if ((pThis->m_pOleStorage == NULL) || - ((pStg) && (pStg != pThis->m_pOleStorage))) - { - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); - } - - CHECK_NULL_RETURN(pThis->m_pOleStorage, E_POINTER); - pStg = pThis->m_pOleStorage; - } - - CHECK_NULL_RETURN(pStg, E_POINTER); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (hr == STG_E_FILENOTFOUND) - hr = pStg->CreateStream(L"DsoFrameCtlContents", dwStmMode, 0, 0, &pstm); - - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Save(pstm, FALSE); - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::SaveCompleted(LPSTORAGE pStg) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::SaveCompleted\n"); - pThis->m_fDirty = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::HandsOffStorage(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::HandsOffStorage\n"); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleObject -- IOleObject Implementation -// -// STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); -// STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); -// STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); -// STDMETHODIMP Close(DWORD dwSaveOption); -// STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); -// STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); -// STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); -// STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); -// STDMETHODIMP EnumVerbs(IEnumOleVerb **ppEnumOleVerb); -// STDMETHODIMP Update(); -// STDMETHODIMP IsUpToDate(); -// STDMETHODIMP GetUserClassID(CLSID *pClsid); -// STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); -// STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); -// STDMETHODIMP Unadvise(DWORD dwConnection); -// STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); -// STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); -// STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleObject) - -STDMETHODIMP CDsoFramerControl::XOleObject::SetClientSite(IOleClientSite *pClientSite) -{ - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetClientSite\n"); - - SAFE_RELEASE_INTERFACE(pThis->m_pClientSite); - SAFE_RELEASE_INTERFACE(pThis->m_pControlSite); - - // store away the new client site - pThis->m_pClientSite = pClientSite; - - // if we've actually got one, then get some other interfaces we want to keep - // around, and keep a handle on it - if (pClientSite) - { - pClientSite->AddRef(); - pClientSite->QueryInterface(IID_IOleControlSite, (void **)&(pThis->m_pControlSite)); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClientSite(IOleClientSite **ppClientSite) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetClientSite\n"); - if (ppClientSite) { SAFE_SET_INTERFACE(*ppClientSite, pThis->m_pClientSite); } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetHostNames(LPCOLESTR /*szContainerApp*/, LPCOLESTR /*szContainerObj*/) -{ - ODS("CDsoFramerControl::XOleObject::SetHostNames\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Close(DWORD dwSaveOption) -{ - HRESULT hr; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Close\n"); - - if (pThis->m_fInPlaceActive) - { - hr = pThis->m_xOleInplaceObject.InPlaceDeactivate(); - RETURN_ON_FAILURE(hr); - } - - // handle the save flag. - if ((pThis->m_fDirty) && (pThis->m_pClientSite) && - (dwSaveOption == OLECLOSE_SAVEIFDIRTY || - dwSaveOption == OLECLOSE_PROMPTSAVE)) - { - pThis->m_pClientSite->SaveObject(); - } - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnClose(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk) -{ - ODS("CDsoFramerControl::XOleObject::SetMoniker\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk) -{ - ODS("CDsoFramerControl::XOleObject::GetMoniker\n"); - if (ppmk) *ppmk = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved) -{ - ODS("CDsoFramerControl::XOleObject::InitFromData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClipboardData(DWORD /*dwReserved*/, IDataObject **ppDataObject) -{ - ODS("CDsoFramerControl::XOleObject::GetClipboardData\n"); - if (ppDataObject) *ppDataObject = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::DoVerb\n"); - - switch (iVerb) - { - case OLEIVERB_PRIMARY: - case OLEIVERB_SHOW: - case OLEIVERB_INPLACEACTIVATE: - case OLEIVERB_UIACTIVATE: - return pThis->InPlaceActivate(iVerb); - - case OLEIVERB_HIDE: - pThis->m_xOleInplaceObject.UIDeactivate(); - if (pThis->m_fInPlaceVisible) - pThis->SetInPlaceVisible(FALSE); - return S_OK; - } - - return OLEOBJ_S_INVALIDVERB; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumVerbs(IEnumOLEVERB **ppEnumOleVerb) -{ - ODS("CDsoFramerControl::XOleObject::EnumVerbs\n"); - return OleRegEnumVerbs(CLSID_FramerControl, ppEnumOleVerb); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Update() -{ - ODS("CDsoFramerControl::XOleObject::Update\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::IsUpToDate() -{ - ODS("CDsoFramerControl::XOleObject::IsUpToDate\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserClassID(CLSID *pClsid) -{ - ODS("CDsoFramerControl::XOleObject::GetUserClassID\n"); - if (pClsid) *pClsid = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType) -{ - ODS("CDsoFramerControl::XOleObject::GetUserType\n"); - return OleRegGetUserType(CLSID_FramerControl, dwFormOfType, pszUserType); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - sl = *psizel; - - // we don't support any other aspects. - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // change the units to pixels, and resize the control. - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - - // if the size already matches the extents, then don't do anything - // and don't mark the control dirty. - if (sl.cx != pThis->m_Size.cx || sl.cy != pThis->m_Size.cy) - { - pThis->m_Size = sl; - pThis->m_fDirty = TRUE; // changing size should dirty - - if (pThis->m_fInPlaceActive) - { - RECT rect; - - // Use OnPosRectChange for older OCX containters and Access - // who just refuses to get with the times (like me )... - GetWindowRect(pThis->m_hwnd, &rect); - MapWindowPoints(NULL, pThis->m_hwndParent, (LPPOINT)&rect, 2); - rect.right = rect.left + sl.cx; - rect.bottom = rect.top + sl.cy; - pThis->m_pInPlaceSite->OnPosRectChange(&rect); - - // Resize the window based on the new size... - SetWindowPos(pThis->m_hwnd, NULL, 0, 0, sl.cx, sl.cy, - SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - } - else pThis->ViewChanged(); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - *psizel = pThis->m_Size; - DsoPixelsToHimetric(&(psizel->cx), &(psizel->cy)); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Advise\n"); - - if (NULL == pThis->m_pOleAdviseHolder) - { - if (FAILED(CreateOleAdviseHolder(&(pThis->m_pOleAdviseHolder)))) - return E_FAIL; - } - return pThis->m_pOleAdviseHolder->Advise(pAdvSink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Unadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Unadvise\n"); - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pOleAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumAdvise(IEnumSTATDATA **ppenumAdvise) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::EnumAdvise\n"); - - CHECK_NULL_RETURN(ppenumAdvise, E_POINTER); - *ppenumAdvise = NULL; - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, E_FAIL); - return pThis->m_pOleAdviseHolder->EnumAdvise(ppenumAdvise); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus) -{ - ODS("CDsoFramerControl::XOleObject::GetMiscStatus\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pdwStatus) - *pdwStatus = OLEMISC_SETCLIENTSITEFIRST | - OLEMISC_ACTIVATEWHENVISIBLE | - OLEMISC_RECOMPOSEONRESIZE | - OLEMISC_CANTLINKINSIDE | - OLEMISC_INSIDEOUT; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetColorScheme(LOGPALETTE *pLogpal) -{ - ODS("CDsoFramerControl::XOleObject::SetColorScheme\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleControl -- IOleControl Implementation -// -// STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); -// STDMETHODIMP OnMnemonic(LPMSG pMsg); -// STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); -// STDMETHODIMP FreezeEvents(BOOL bFreeze); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleControl) - -STDMETHODIMP CDsoFramerControl::XOleControl::GetControlInfo(CONTROLINFO* pCI) -{ - ODS("CDsoFramerControl::XOleControl::GetControlInfo\n"); - CHECK_NULL_RETURN(pCI, E_POINTER); - pCI->hAccel = NULL; pCI->cAccel = 0; pCI->dwFlags = 0; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnMnemonic(LPMSG pMsg) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnMnemonic\n"); - return pThis->InPlaceActivate(OLEIVERB_UIACTIVATE); -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnAmbientPropertyChange(DISPID dispID) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnAmbientPropertyChange\n"); - - // We keep track of state changes in design/run modes... - if (dispID == DISPID_AMBIENT_USERMODE || dispID == DISPID_UNKNOWN) - pThis->m_fModeFlagValid = FALSE; - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::FreezeEvents(BOOL bFreeze) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - TRACE1("CDsoFramerControl::XOleControl::FreezeEvents = %s\n", (bFreeze ? "TRUE" : "FALSE")); - pThis->m_fFreezeEvents = bFreeze; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceObject -- IOleInplaceObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP InPlaceDeactivate(); -// STDMETHODIMP UIDeactivate(); -// STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); -// STDMETHODIMP ReactivateAndUndo(); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::GetWindow\n"); - if (!(pThis->m_fInPlaceActive)) return E_FAIL; - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate\n"); - - // if we're not in-place active yet, then this is easy. - if (!(pThis->m_fInPlaceActive)) - return S_OK; - - // transition from UIActive back to active - if (pThis->m_fUIActive) - UIDeactivate(); - - // tell the host we're going away - pThis->m_pInPlaceSite->OnInPlaceDeactivate(); - - pThis->m_fInPlaceActive = FALSE; - pThis->m_fInPlaceVisible = FALSE; - - // if we have a window, tell it to go away. - if (pThis->m_hwnd) - {DestroyWindow(pThis->m_hwnd); pThis->m_hwnd = NULL;} - - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceUIWindow); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::UIDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::UIDeactivate\n"); - - // if we're not UIActive, not much to do. - if (!(pThis->m_fUIActive)) - return S_OK; - - pThis->m_fUIActive = FALSE; - - // notify frame windows, if appropriate, that we're no longer ui-active. - if (pThis->m_pInPlaceUIWindow) - pThis->m_pInPlaceUIWindow->SetActiveObject(NULL, NULL); - - if (pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetActiveObject(NULL, NULL); - - pThis->OnUIFocusChange(FALSE); - - // we don't need to explicitly release the focus here since somebody - // else grabbing the focus is what is likely to cause us to get lose it - pThis->m_pInPlaceSite->OnUIDeactivate(FALSE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) -{ - RECT rcIXect; - - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::SetObjectRects\n"); - - // move our window to the new location and handle clipping. - if (pThis->m_hwnd) - { - // if asked to clip the window, we'll use a clip region... - if ((lprcClipRect) && (IntersectRect(&rcIXect, lprcPosRect, lprcClipRect)) && - (!EqualRect(&rcIXect, lprcPosRect))) - { - OffsetRect(&rcIXect, -(lprcPosRect->left), -(lprcPosRect->top)); - SetWindowRgn(pThis->m_hwnd, CreateRectRgnIndirect(&rcIXect), TRUE); - pThis->m_fUsingWindowRgn = TRUE; - } - else if (pThis->m_fUsingWindowRgn) - { - SetWindowRgn(pThis->m_hwnd, NULL, TRUE); - pThis->m_fUsingWindowRgn = FALSE; - } - - // set our control's location, but don't change it's size at all - // [people for whom zooming is important should set that up here] - SetWindowPos(pThis->m_hwnd, NULL, lprcPosRect->left, lprcPosRect->top, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); - } - - // save out our current location. - pThis->m_rcLocation = *lprcPosRect; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo() -{ - ODS("CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceActiveObject -- IOleInplaceActiveObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); -// STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); -// STDMETHODIMP OnDocWindowActivate(BOOL fActivate); -// STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceActiveObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - ODS("CDsoFramerControl::XOleInplaceActiveObject::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator -// -// We handle certain keys as accelerators, but only if host does not -// implement it itself, and only when no document is open. The reason -// why is due to two factors: -// -// (1) When an out-of-proc AxDoc server is embedded and has focus, -// its thread (not ours) gets the accel keys. Word/PPT will treat -// these for us and contact us through IOleCommandTarget, so -// we don't want to handle them if AxDoc is handling them for us. -// -// (2) We cannot know if a given host uses the same accel keys for -// other tasks, and we don't want to impose ours on a host. By -// explicitly asking host to handle it first, we should be able -// to avoid any conflicts, and give developer a change to override -// our handler as needed. -// -static short _SpecialKeyState() -{ - BOOL bShift = (GetKeyState(VK_SHIFT) < 0); - BOOL bCtrl = (GetKeyState(VK_CONTROL) < 0); - BOOL bAlt = (GetKeyState(VK_MENU) < 0); - return (short)(bShift + (bCtrl << 1) + (bAlt << 2)); -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(LPMSG lpmsg) -{ - HRESULT hr = S_FALSE; - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - CHECK_NULL_RETURN(lpmsg, E_POINTER); - TRACE2("CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(msg=%d, wparam=%d)\n", lpmsg->message, lpmsg->wParam); - - // Forward it back to the site for processing on its side... - if (pThis->m_pControlSite) - { - hr = pThis->m_pControlSite->TranslateAccelerator(lpmsg, _SpecialKeyState()); - if (hr == S_OK) return S_OK; // If site handled it, nothing else we need to do.. - } - - if ((GetKeyState(VK_CONTROL) < 0) && (!(pThis->m_fModalState)) && - (lpmsg->message == WM_KEYUP) && (!(pThis->m_pDocObjFrame))) - { - TRACE1(" Handle Accelerator? (%d)\n", lpmsg->wParam); - switch (lpmsg->wParam) // Looking for Ctrl+N and Ctrl+O keys... - { - case 0x4E: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_NEW, 0); hr = S_OK; break; - case 0x4F: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_OPEN, 0); hr = S_OK; break; - case 0x53: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_SAVE, 0); hr = S_OK; break; - } - } - - // we didn't want it. - return hr; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate - %d\n", fActivate); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate(BOOL fActivate) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate - %d\n", fActivate); - - if (pThis->m_fUIActive && fActivate && pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetBorderSpace(NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(%d)\n", fEnable); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XViewObjectEx -- IViewObjectEx Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); -// STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); -// STDMETHODIMP Unfreeze(DWORD dwFreeze); -// STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdvSink); -// STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdvSink); -// STDMETHODIMP GetExtent(DWORD dwAspect, DWORD lindex, DVTARGETDEVICE ptd, LPSIZEL lpsizel); -// STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); -// STDMETHODIMP GetViewStatus(DWORD* pdwStatus); -// STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ViewObjectEx) - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue) -{ - RECT rc; - int iMode = 0; - POINT pVp = {0,0}; - POINT pW = {0,0}; - BOOL fOptimize = FALSE; - BOOL fMetafile = FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::Draw\n"); - - if (!((dwDrawAspect == DVASPECT_CONTENT) || - (dwDrawAspect == DVASPECT_OPAQUE))) - return DV_E_DVASPECT; - - SaveDC(hdcDraw); - - // first, have to do a little bit to support printing. - if (GetDeviceCaps(hdcDraw, TECHNOLOGY) == DT_METAFILE) - { - // We are dealing with a metafile. - fMetafile = TRUE; - } -/* - // check to see if we have any flags passed in the pvAspect parameter. - if (pvAspect && ((DVASPECTINFO *)pvAspect)->cb == sizeof(DVASPECTINFO)) - fOptimize = (((DVASPECTINFO *)pvAspect)->dwFlags & DVASPECTINFOFLAG_CANOPTIMIZE) ? TRUE : FALSE; -*/ - // Get the draw rect, if they didn't give us one, just copy over ours - memcpy(&rc, ((prcBounds) ? (RECT*)prcBounds : &(pThis->m_rcLocation)), sizeof(RECT)); - - if (!fMetafile) - { - LPtoDP(hdcDraw, (POINT*)&rc, 2); - SetViewportOrgEx(hdcDraw, 0, 0, &pVp); - SetWindowOrgEx(hdcDraw, 0, 0, &pW); - iMode = SetMapMode(hdcDraw, MM_TEXT); - } - - // prcWBounds is NULL and not used if we are not dealing with a metafile. - // For metafiles, we pass on rc as *prcBounds, we should also include prcWBounds - pThis->OnDraw(dwDrawAspect, hdcDraw, &rc, (RECT*)prcWBounds, hicTargetDevice, fOptimize); - - // clean up the DC when we're done with it, if appropriate. - if (!fMetafile) - { - SetViewportOrgEx(hdcDraw, pVp.x, pVp.y, NULL); - SetWindowOrgEx(hdcDraw, pW.x, pW.y, NULL); - SetMapMode(hdcDraw, iMode); - } - - RestoreDC(hdcDraw, -1); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetColorSet\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Freeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Unfreeze(DWORD dwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Unfreeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::SetAdvise\n"); - - // if it's not a content aspect, we don't support it. - if (!(dwAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // set up some flags [we gotta stash for GetAdvise ...] - pThis->m_fViewAdvisePrimeFirst = (advf & ADVF_PRIMEFIRST) ? TRUE : FALSE; - pThis->m_fViewAdviseOnlyOnce = (advf & ADVF_ONLYONCE) ? TRUE : FALSE; - - SAFE_RELEASE_INTERFACE(pThis->m_pViewAdviseSink); - SAFE_SET_INTERFACE(pThis->m_pViewAdviseSink, pAdviseSink); - - // prime them if they want it [we need to store this so they can get flags later] - if (pThis->m_fViewAdvisePrimeFirst) - pThis->ViewChanged(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetAdvise\n"); - - if (pdwAspect) - *pdwAspect = DVASPECT_CONTENT; - - if (padvf) - { - *padvf = 0; - if (pThis->m_fViewAdviseOnlyOnce) *padvf |= ADVF_ONLYONCE; - if (pThis->m_fViewAdvisePrimeFirst) *padvf |= ADVF_PRIMEFIRST; - } - - if (ppAdviseSink) - { SAFE_SET_INTERFACE(*ppAdviseSink, pThis->m_pViewAdviseSink); } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetExtent\n"); - return pThis->m_xOleObject.GetExtent(dwDrawAspect, psizel); -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetRect(DWORD dwAspect, LPRECTL pRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetRect\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pRect) - { - CopyRect((LPRECT)pRect, &(pThis->m_rcLocation)); - // Convert to himetric (according to docs, this is required) - DsoPixelsToHimetric(&(pRect->left), &(pRect->top)); - DsoPixelsToHimetric(&(pRect->right), &(pRect->bottom)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetViewStatus(DWORD* pdwStatus) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetViewStatus\n"); - if (pdwStatus) *pdwStatus = VIEWSTATUS_OPAQUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult) -{ - // ODS("CDsoFramerControl::XViewObjectEx::QueryHitPoint\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - CHECK_NULL_RETURN(pHitResult, E_POINTER); - *pHitResult = PtInRect(pRectBounds, ptlLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult) -{ - RECT rc; - //ODS("CDsoFramerControl::XViewObjectEx::QueryHitRect\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - *pHitResult = IntersectRect(&rc, pRectBounds, pRectLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetNaturalExtent\n"); - return E_NOTIMPL; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDataObject -- IDataObject Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP QueryGetData(FORMATETC *pfmtc); -// STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut); -// STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); -// STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); -// STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); -// STDMETHODIMP DUnadvise(DWORD dwConnection); -// STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DataObject) - -STDMETHODIMP CDsoFramerControl::XDataObject::GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - HRESULT hr; - HMETAFILE hwmf; - LPMETAFILEPICT pwmf; - HGLOBAL hmem; - SIZE sizeMetric; - RECT rc; - HDC hdc; - - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - TRACE2("CDsoFramerControl::XDataObject::GetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); CHECK_NULL_RETURN(pstgm, E_POINTER); - - // Confirm data requested is a supportted type... - if (FAILED(hr = QueryGetData(pfmtc))) - return hr; - - // If caller wants a metafile of the current object, draw it... - hdc = CreateMetaFileW(NULL); - - sizeMetric.cx = pThis->m_Size.cx; - sizeMetric.cy = pThis->m_Size.cy; - - SetRect(&rc, 0, 0, sizeMetric.cx, sizeMetric.cy); - DsoPixelsToHimetric(&(sizeMetric.cx), &(sizeMetric.cy)); - sizeMetric.cy = -(sizeMetric.cy); - - SetMapMode(hdc, MM_ANISOTROPIC); - SetWindowOrgEx(hdc, 0, 0, NULL); - SetWindowExtEx(hdc, rc.right, rc.bottom, NULL); - - // Delegate to same IViewObject::Draw used by most containers for metafile... - hr = pThis->m_xViewObjectEx.Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdc, (RECTL*)&rc, NULL, NULL, 0); - ASSERT(SUCCEEDED(hr)); - - if ((hwmf = CloseMetaFile(hdc)) == NULL) - return E_UNEXPECTED; - - // Now allocate the transfer medium and set the metafile... - hmem = GlobalAlloc((GMEM_SHARE|GMEM_MOVEABLE), sizeof(METAFILEPICT)); - if (hmem == NULL) { DeleteMetaFile(hwmf); return STG_E_MEDIUMFULL; } - - pwmf = (LPMETAFILEPICT)GlobalLock(hmem); - if (pwmf) - { - pwmf->hMF = hwmf; - pwmf->mm = MM_ANISOTROPIC; - pwmf->xExt = sizeMetric.cx; - pwmf->yExt = sizeMetric.cy; - GlobalUnlock(hmem); - } - - pstgm->tymed = TYMED_MFPICT; - pstgm->hGlobal = hmem; - pstgm->pUnkForRelease = NULL; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - ODS("CDsoFramerControl::XDataObject::GetDataHere\n"); - return DV_E_FORMATETC; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::QueryGetData(FORMATETC *pfmtc) -{ - TRACE2("CDsoFramerControl::XDataObject::QueryGetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); - - if (pfmtc->cfFormat != CF_METAFILEPICT) - return DV_E_FORMATETC; // We only support WMF for IDataObj presentation. - - if (pfmtc->tymed != TYMED_MFPICT) - return DV_E_TYMED; // It better be in in right format... - - if (pfmtc->dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; // We only do content (not thumbnail or partial)... - - return S_OK; // If here, it looks fine to us... -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut) -{ - ODS("CDsoFramerControl::XDataObject::GetCanonicalFormatEtc\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease) -{ - ODS("CDsoFramerControl::XDataObject::SetData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum) -{ - ODS("CDsoFramerControl::XDataObject::EnumFormatEtc\n"); - return OleRegEnumFormatEtc(CLSID_FramerControl, dwDirection, ppenum); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DAdvise\n"); - - // Create OLE Data advise holder to keep sink for us... - if ((NULL == pThis->m_pDataAdviseHolder) && - FAILED(CreateDataAdviseHolder(&(pThis->m_pDataAdviseHolder)))) - return E_FAIL; - - // Add this advise sink for the given format to the collection... - return pThis->m_pDataAdviseHolder->Advise((IDataObject*)&(pThis->m_xDataObject), pfmtc, advf, psink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DUnadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DUnadvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumDAdvise(IEnumSTATDATA **ppenum) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::EnumDAdvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->EnumAdvise(ppenum); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XProvideClassInfo -- IProvideClassInfo Implementation -// -// STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ProvideClassInfo) - -STDMETHODIMP CDsoFramerControl::XProvideClassInfo::GetClassInfo(ITypeInfo** ppTI) -{ - ODS("CDsoFramerControl::XProvideClassInfo::GetClassInfo\n"); - return DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, ppTI); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPointContainer -- IConnectionPointContainer Implementation -// -// STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); -// STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPointContainer) - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints(IEnumConnectionPoints **ppEnum) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints\n"); - if (ppEnum) { SAFE_SET_INTERFACE(*ppEnum, &(pThis->m_xEnumConnectionPoints)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint\n"); - if (riid != DIID__DFramerCtlEvents) return CONNECT_E_NOCONNECTION; - if (ppCP) { SAFE_SET_INTERFACE(*ppCP, &(pThis->m_xConnectionPoint)); }; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XEnumConnectionPoints -- IEnumConnectionPoints Implementation -// -// STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); -// STDMETHODIMP Skip(ULONG cConnections); -// STDMETHODIMP Reset(void); -// STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, EnumConnectionPoints) - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched) -{ - HRESULT hr = S_FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, EnumConnectionPoints); - ODS("CDsoFramerControl::XEnumConnectionPoints::Next\n"); - - CHECK_NULL_RETURN(rgpcn, E_POINTER); - *rgpcn = NULL; - - CHECK_NULL_RETURN(pcFetched, E_POINTER); - *pcFetched = 0; - - if (pThis->m_fConCntDone) - pThis->m_fConCntDone = FALSE; - else - { - SAFE_SET_INTERFACE(*rgpcn, &(pThis->m_xConnectionPoint)); - *pcFetched = 1; - pThis->m_fConCntDone = TRUE; hr = S_OK; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Skip(ULONG cConnections) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Reset(void) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Clone(IEnumConnectionPoints **ppEnum) -{if (ppEnum) *ppEnum = this; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPoint -- IConnectionPoint Implementation -// -// STDMETHODIMP GetConnectionInterface(IID *pIID); -// STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); -// STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); -// STDMETHODIMP Unadvise(DWORD dwCookie); -// STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPoint) - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionInterface(IID *pIID) -{ - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionInterface\n"); - if (pIID) *pIID = DIID__DFramerCtlEvents; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer(IConnectionPointContainer **ppCPC) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer\n"); - if (ppCPC) { SAFE_SET_INTERFACE(*ppCPC, &(pThis->m_xConnectionPointContainer)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Advise(IUnknown *pUnk, DWORD *pdwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Advise\n"); - - CHECK_NULL_RETURN(pUnk, E_POINTER); - CHECK_NULL_RETURN(pdwCookie, E_POINTER); - - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - - // FIX: The COM Interop layer in .NET CLR returns a different RCW for IDispatch than for a specific - // dispinterface GUID, so for events to work in .NET WinForm applications, we should explicitly use - // the RCW for that dispinterface. Other event source clients may fail QI for this GUID, so if it - // does return an error, we will QI again for IDispatch. The event issue is change in behavior from - // how VB6 implemented event sinks, and how VB7/C# does them... - HRESULT hr = pUnk->QueryInterface(DIID__DFramerCtlEvents, (void**)&(pThis->m_dispEvents)); - if (FAILED(hr)) hr = pUnk->QueryInterface(IID_IDispatch, (void**)&(pThis->m_dispEvents)); - - if (SUCCEEDED(hr)) *pdwCookie = (DWORD)(pThis); - return hr; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Unadvise(DWORD dwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Unadvise\n"); - if (dwCookie == (DWORD)(pThis)) - { - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - } - return (pThis->m_dispEvents == NULL) ? S_OK : CONNECT_E_NOCONNECTION; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::EnumConnections(IEnumConnections **ppEnum) -{if (ppEnum) *ppEnum = NULL; return E_NOTIMPL;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleCommandTarget) - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - //ODS("CDsoFramerControl::XOleCommandTarget::QueryStatus\n"); - if (pguidCmdGroup != NULL) - return OLECMDERR_E_UNKNOWNGROUP; - - if (prgCmds == NULL) - return E_INVALIDARG; - - for (int i = 0; i < (int)cCmds; i++) - { - switch (prgCmds[i].cmdID) - { - case OLECMDID_NEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 1) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_OPEN: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 2) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVE: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 8) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVEAS: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 16) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINT: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 32) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PAGESETUP: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 64) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PROPERTIES: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 128) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINTPREVIEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 256) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - default: prgCmds[i].cmdf = 0; - } - } - - if (pCmdText) - { - pCmdText->cmdtextf = MSOCMDTEXTF_NONE; - pCmdText->cwActual = 0; - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - ODS("CDsoFramerControl::XOleCommandTarget::Exec\n"); - - if ((pguidCmdGroup != NULL) && (*pguidCmdGroup != GUID_NULL)) - return OLECMDERR_E_UNKNOWNGROUP; - - if (nCmdexecopt == MSOCMDEXECOPT_SHOWHELP) - return OLECMDERR_E_NOHELP; - - switch (nCmdID) - { - case OLECMDID_NEW: - case OLECMDID_OPEN: - case OLECMDID_SAVE: - case OLECMDID_SAVEAS: - case OLECMDID_PRINT: - case OLECMDID_PAGESETUP: - case OLECMDID_PROPERTIES: - case OLECMDID_PRINTPREVIEW: - PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, nCmdID, nCmdexecopt); - return S_OK; - } - - return OLECMDERR_E_NOTSUPPORTED; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XSupportErrorInfo -- ISupportErrorInfo Implementation -// -// STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, SupportErrorInfo) - -STDMETHODIMP CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid) -{ - ODS("CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo\n"); - return ((riid == IID__FramerControl) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XObjectSafety -- IObjectSafety Implementation -// -// STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); -// STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ObjectSafety) - -STDMETHODIMP CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions\n"); - CHECK_NULL_RETURN(pdwEnabledOptions, E_POINTER); - - if (pdwSupportedOptions) - *pdwSupportedOptions = (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER); - - // We are safe for initialization, but not necessarily for scripting. Since script - // can open documents with macros, and get access to Office OM via ActiveDocument, - // we cannot be "safe" for malicious script. But this allows the control to load - // without prompt (just not scripted without prompt)... - *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions\n"); - return ((((riid == IID_IPersist) || (riid == IID_IPersistPropertyBag)) && - (dwEnabledOptions == INTERFACESAFE_FOR_UNTRUSTED_DATA)) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDsoDocObjectSite -- IDsoDocObjectSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DsoDocObjectSite) - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - HRESULT hr = E_NOINTERFACE; - ODS("CDsoFramerControl::XDsoDocObjectSite::QueryService\n"); - - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - CHECK_NULL_RETURN(ppv, E_POINTER); - - // We will return control IDispatch for cross container automation... - if (guidService == SID_SContainerDispatch) - { - ODS(" -- Container Dispatch Given --\n"); - hr = pThis->QueryInterface(riid, ppv); - } - // TODO: Support IHlinkFrame services for cross hyperlinking inside control?? - - // If we don't handle the call, and our host has a provider, pass the call along to see - // if the top-level host offers the service requested (like hyperlinking to new web page)... - if (FAILED(hr) && (pThis->m_pClientSite)) - { - IServiceProvider *pprov = NULL; - if (SUCCEEDED(pThis->m_pClientSite->QueryInterface(IID_IServiceProvider, (void**)&pprov)) && (pprov)) - { - if (SUCCEEDED(hr = pprov->QueryService(guidService, riid, ppv))) - { ODS(" -- Service provided by top-level host --\n"); } - pprov->Release(); - } - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetWindow\n"); - if (phWnd) *phWnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetBorder\n"); - pThis->GetSizeRectForDocument(NULL, prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetHostName(LPWSTR *ppwszHostName) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetHostName\n"); - if (ppwszHostName) *ppwszHostName = DsoCopyString(pThis->m_pwszHostName); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(UINT uiCharCode) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - TRACE1("CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(%x)\n", uiCharCode); - - // If we are processing a sys menu command, see if it is a menu accel for our - // displayed menu, and if so we handle this with a fake click of the menu button... - if ((uiCharCode) && (pThis->m_fShowMenuBar) && !(pThis->m_fDisableMenuAccel)) - { - UINT i; - CHAR *pch; - - // Loop all the menu items and check against their accelerators... - for (i = 0; i < DSO_MAX_MENUITEMS; i++) - { - pch = &(pThis->m_rgchMenuAccel[0]); - if (*pch) - { - if ((*pch != 0xFF) && ((UINT)(*pch) == ASCII_LOWERCASE(uiCharCode))) - { - // Found one that match, so fake mouse move and button down/up to run click code... - ODS("-- Trigger Menu Accelerator --\n"); - - PostMessage(pThis->m_hwnd, WM_MOUSEMOVE, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONDOWN, (WPARAM)MK_LBUTTON, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONUP, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - // Return OK to caller to know to eat this message. - return S_OK; - } - } - else break; - } - } - - return S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - - // If m_fActivateOnStatus flag is set, see if we are not UI active. If not, try to activate... - if ((pThis->m_fActivateOnStatus) && (pThis->m_fComponentActive) && (pThis->m_fAppActive) && - !(pThis->m_fUIActive) && !(pThis->m_fModalState)) - { - ODS(" -- ForceUIActiveFromSetStatusText --\n"); - pThis->m_fActivateOnStatus = FALSE; - pThis->Activate(); - } - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -// -CDsoFrameHookManager* vgGlobalManager = NULL; - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::RegisterFramerControl -// -// Creates a frame hook and registers it with the active manager. If -// this is the first time called, the global manager will be created -// now. The manager can handle up to DSOF_MAX_CONTROLS controls (10). -// -STDMETHODIMP_(CDsoFrameHookManager*) CDsoFrameHookManager::RegisterFramerControl(HWND hwndParent, HWND hwndControl) -{ - CDsoFrameHookManager* pManager = NULL; - ODS("CDsoFrameHookManager::RegisterFramerControl\n"); - CHECK_NULL_RETURN(hwndControl, NULL); - - EnterCriticalSection(&v_csecThreadSynch); - pManager = vgGlobalManager; - if (pManager == NULL) - pManager = (vgGlobalManager = new CDsoFrameHookManager()); - LeaveCriticalSection(&v_csecThreadSynch); - - if (pManager) - { - if (hwndParent == NULL) - hwndParent = hwndControl; - - if (FAILED(pManager->AddComponent(hwndParent, hwndControl))) - return NULL; - } - - return pManager; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::AddComponent -// -// Register the component and create the actual frame hook (if needed). -// -STDMETHODIMP CDsoFrameHookManager::AddComponent(HWND hwndParent, HWND hwndControl) -{ - DWORD dwHostProcessID; - CDsoFrameWindowHook* phook; - HRESULT hr = E_OUTOFMEMORY; - HWND hwndNext, hwndHost = hwndParent; - ODS("CDsoFrameHookManager::AddComponent\n"); - - // Find the top-level window this control is sited on... - while (hwndNext = GetParent(hwndHost)) - hwndHost = hwndNext; - - // We have to get valid window that is in-thread for a subclass to work... - if (!IsWindow(hwndHost) || - (GetWindowThreadProcessId(hwndHost, &dwHostProcessID), - dwHostProcessID != GetCurrentProcessId())) - return E_ACCESSDENIED; - - // Next if we have room in the array, add the component to the list and - // hook its parent window so we get messages for it. - EnterCriticalSection(&v_csecThreadSynch); - if ((vgGlobalManager) && (m_cComponents < DSOF_MAX_CONTROLS)) - { - // Hook the host window for this control... - phook = CDsoFrameWindowHook::AttachToFrameWindow(hwndHost); - if (phook) - {// Add the component to the list if hooked... - m_pComponents[m_cComponents].hwndControl = hwndControl; - m_pComponents[m_cComponents].phookFrame = phook; - m_cComponents++; hr = S_OK; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - if (SUCCEEDED(hr)) // Make sure item is the new active component - hr = SetActiveComponent(hwndControl); - - return hr; -} - -STDMETHODIMP CDsoFrameHookManager::DetachComponent(HWND hwndControl) -{ - DWORD dwIndex; - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - - // Find this control in the list... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If we found the index, remove the item and shift remaining - // items down the list. Change active index as needed... - EnterCriticalSection(&v_csecThreadSynch); - - m_pComponents[dwIndex].hwndControl = NULL; - m_pComponents[dwIndex].phookFrame->Detach(); - - // Compact the list... - while (++dwIndex < m_cComponents) - { - m_pComponents[dwIndex-1].hwndControl = m_pComponents[dwIndex].hwndControl; - m_pComponents[dwIndex-1].phookFrame = m_pComponents[dwIndex].phookFrame; - m_pComponents[dwIndex].hwndControl = NULL; - } - - // Decrement the count. If count still exists, forward activation - // to next component in the list... - if (--m_cComponents) - { - while (m_idxActive >= m_cComponents) - --m_idxActive; - - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - else - { - vgGlobalManager = NULL; - // If this is the last control, we can remove the manger! - delete this; - } - - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::SetActiveComponent(HWND hwndControl) -{ - ODS(" -- CDsoFrameHookManager::SetActiveComponent -- \n"); - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - DWORD dwIndex; - - // Find the index of the control... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If it is not already the active item, notify old component it is - // losing activation, and notify new component that it is gaining... - EnterCriticalSection(&v_csecThreadSynch); - if (dwIndex != m_idxActive) - { - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)FALSE, (LPARAM)0); - - m_idxActive = dwIndex; - - hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam) -{ - TRACE3("CDsoFrameHookManager::OnComponentNotify(%d, %d, %d)\n", msg, wParam, lParam); - HWND hwndActiveComp = GetActiveComponentWindow(); - - // The manager needs to keep track of AppActive state... - if (msg == DSO_WM_HOOK_NOTIFY_APPACTIVATE) - { - EnterCriticalSection(&v_csecThreadSynch); - m_fAppActive = (BOOL)wParam; - LeaveCriticalSection(&v_csecThreadSynch); - } - - // Send the message to the active component - SendNotifyMessage(hwndActiveComp, msg, wParam, lParam); - return S_OK; -} - -STDMETHODIMP_(BOOL) CDsoFrameHookManager::SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam) -{ - BOOL fResult; - - // Check if the caller is on the same thread as the active component. If so we can - // forward the message directly for processing. If not, we have to post and wait for - // that thread to process message at a later time... - if (GetWindowThreadProcessId(hwnd, NULL) == GetCurrentThreadId()) - { // Notify now... - fResult = (BOOL)SendMessage(hwnd, msg, wParam, lParam); - } - else - { // Notify later... - fResult = PostMessage(hwnd, msg, wParam, lParam); - } - - return fResult; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -// -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::AttachToFrameWindow -// -// Creates the frame hook for the host window. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::AttachToFrameWindow(HWND hwndParent) -{ - CDsoFrameWindowHook* phook = NULL; - BOOL fHookSuccess = FALSE; - - // We have to get valid window ... - if (!IsWindow(hwndParent)) - return NULL; - - EnterCriticalSection(&v_csecThreadSynch); - phook = CDsoFrameWindowHook::GetHookFromWindow(hwndParent); - if (phook) - { // Already have this window hooked, so just addref the count. - phook->AddRef(); - } - else - { // Need to create a new hook object for this window... - if ((phook = new CDsoFrameWindowHook())) - { - phook->m_hwndTopLevelHost = hwndParent; - phook->m_fHostUnicodeWindow = (v_fUnicodeAPI && IsWindowUnicode(hwndParent)); - - // Setup the subclass using Unicode or Ansi methods depending on window - // create state. Note if either property assoc or window subclass fail... - if (phook->m_fHostUnicodeWindow) - { - fHookSuccess = SetPropW(hwndParent, L"DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongW(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - else - { - fHookSuccess = SetPropA(hwndParent, "DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongA(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - - // If we failed the subclass, kill this object and return error... - if (!fHookSuccess) - { - delete phook; - phook = NULL; - } - else phook->m_cHookCount++; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::Detach -// -// Removes the hook from the frame window if this is the last control -// to reference the hook. -// -STDMETHODIMP CDsoFrameWindowHook::Detach() -{ - // Only need to call this if item is attached. - EnterCriticalSection(&v_csecThreadSynch); - if (m_cHookCount) - { - if (--m_cHookCount == 0) - { // We can remove the hook! - if (m_fHostUnicodeWindow) - { - SetWindowLongW(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropW(m_hwndTopLevelHost, L"DSOFramerWndHook"); - } - else - { - SetWindowLongA(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropA(m_hwndTopLevelHost, "DSOFramerWndHook"); - } - m_hwndTopLevelHost = NULL; - - // we can kill this object now... - delete this; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::GetHookFromWindow -// -// Returns the hook control associated with this object. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::GetHookFromWindow(HWND hwnd) -{ - CDsoFrameWindowHook* phook = (CDsoFrameWindowHook*)GetPropW(hwnd, L"DSOFramerWndHook"); - if (phook == NULL) phook = (CDsoFrameWindowHook*)GetPropA(hwnd, "DSOFramerWndHook"); - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::HostWindowProcHook -// -// The window proc for the subclassed host window. -// -STDMETHODIMP_(LRESULT) CDsoFrameWindowHook::HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFrameWindowHook* phook = CDsoFrameWindowHook::GetHookFromWindow(hwnd); - if (phook) // We better get our prop for this window! - { - // We handle the important ActiveDocument frame-level events like task - // window activation/deactivation, palette change notfication, and key/mouse - // focus notification on host app focus... - switch (msg) - { - case WM_ACTIVATEAPP: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_APPACTIVATE, wParam, lParam); - break; - - case WM_PALETTECHANGED: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_PALETTECHANGE, wParam, lParam); - break; - - case WM_SYNCPAINT: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_SYNCPAINT, wParam, lParam); - break; - - } - - // After processing, allow calls to fall through to host app. We need to call - // the appropriate handler for Unicode or non-Unicode windows... - if (phook->m_fHostUnicodeWindow) - return CallWindowProcW(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - else - return CallWindowProcA(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - } - - // Should not be reached, but just in case call default proc... - return (IsWindowUnicode(hwnd) ? - DefWindowProcW(hwnd, msg, wParam, lParam) : - DefWindowProcA(hwnd, msg, wParam, lParam)); -} \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsofdocobj.cpp b/PROMS/DSOFramer/Source2005/dsofdocobj.cpp deleted file mode 100644 index 34721835..00000000 --- a/PROMS/DSOFramer/Source2005/dsofdocobj.cpp +++ /dev/null @@ -1,3253 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.CPP - * - * CDsoDocObject: ActiveX Document Single Instance Frame/Site Object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject - The DocObject Site Class -// -// This class wraps the functionality for DocObject hosting. Right now -// we are setup for one active site at a time, but this could be changed -// to allow multiple sites (although only one could be UI active at any -// given time). -// -CDsoDocObject::CDsoDocObject() -{ - ODS("CDsoDocObject::CDsoDocObject\n"); - m_cRef = 1; - m_fDisplayTools = TRUE; -} - -CDsoDocObject::~CDsoDocObject(void) -{ - ODS("CDsoDocObject::~CDsoDocObject\n"); - if (m_pole) Close(); - if (m_hwnd) DestroyWindow(m_hwnd); - - SAFE_FREESTRING(m_pwszUsername); - SAFE_FREESTRING(m_pwszPassword); - SAFE_FREESTRING(m_pwszHostName); - - SAFE_RELEASE_INTERFACE(m_pstgroot); - SAFE_RELEASE_INTERFACE(m_punkIPPResource); - SAFE_RELEASE_INTERFACE(m_pcmdCtl); - SAFE_RELEASE_INTERFACE(m_psiteCtl); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateNewDocObject -// -// Static Creation Function. -// -STDMETHODIMP_(CDsoDocObject*) CDsoDocObject::CreateInstance(IDsoDocObjectSite* phost) -{ - ODS("CDsoDocObject::CreateInstance()\n"); - CDsoDocObject* pnew = new CDsoDocObject(); - if ((pnew) && FAILED(pnew->InitializeNewInstance(phost))) - { - pnew->Release(); - pnew = NULL; - } - return pnew; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InitializeNewInstance -// -// Sets up new docobject class. We must a control site to attach this -// window to. It will call back to host for menu and IOleCommandTarget. -// -STDMETHODIMP CDsoDocObject::InitializeNewInstance(IDsoDocObjectSite* phost) -{ - HRESULT hr = E_UNEXPECTED; - WNDCLASS wndclass; - HWND hwndCtl; - - ODS("CDsoDocObject::InitializeNewInstance()\n"); - - // We need valid IDsoDocObjectSite... - if ((phost == NULL) || FAILED(phost->GetWindow(&hwndCtl))) - return hr; - - // As an AxDoc site, we need a valid parent window... - if ((!hwndCtl) || (!IsWindow(hwndCtl))) - return hr; - - // Create a temp storage for this docobj site (if one already exists, bomb out)... - if ((m_pstgroot) || FAILED(hr = StgCreateDocfile(NULL, STGM_TRANSACTED | STGM_READWRITE | - STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &m_pstgroot))) - return hr; - - // If our site window class has not been registered before, we should register it... - - // This is protected by a critical section just for fun. The fact we had to single - // instance the OCX because of the host hook makes having multiple instances conflict here - // very unlikely. However, that could change sometime, so better to be safe than sorry. - EnterCriticalSection(&v_csecThreadSynch); - - if (GetClassInfo(v_hModule, "DSOFramerDocWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoDocObject::FrameWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerDocWnd"; - if (RegisterClass(&wndclass) == 0) - hr = E_WIN32_LASTERROR; - } - - LeaveCriticalSection(&v_csecThreadSynch); - if (FAILED(hr)) return hr; - - // Get the position RECT (and validate as needed)... - hr = phost->GetBorder(&m_rcViewRect); - if (FAILED(hr)) return hr; - - if (m_rcViewRect.top > m_rcViewRect.bottom) - {m_rcViewRect.top = 0; m_rcViewRect.bottom = 0;} - if (m_rcViewRect.left > m_rcViewRect.right) - {m_rcViewRect.left = 0; m_rcViewRect.right = 0;} - - // Create our site window at the give location (we are child of the control window)... - m_hwnd = CreateWindowEx(0, "DSOFramerDocWnd", NULL, WS_CHILD, - m_rcViewRect.left, m_rcViewRect.top, - (m_rcViewRect.right - m_rcViewRect.left), - (m_rcViewRect.bottom - m_rcViewRect.top), - hwndCtl, NULL, v_hModule, NULL); - - if (!m_hwnd) return E_OUTOFMEMORY; - SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - // Save the control info for this object... - m_hwndCtl = hwndCtl; - (m_psiteCtl = phost)->AddRef(); - - m_psiteCtl->QueryInterface(IID_IOleCommandTarget, (void**)&m_pcmdCtl); - m_psiteCtl->GetHostName(&m_pwszHostName); - if (m_pwszHostName == NULL) - m_pwszHostName = DsoCopyString(L"DsoFramerControl"); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From CLSID) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(REFCLSID rclsid) -{ - HRESULT hr; - CLSID clsid; - DWORD dwMiscStatus = 0; - IOleObject* pole = NULL; - IPersistStorage* pipstg = NULL; - BOOL fInitNew = (m_pstgfile == NULL); - - ODS("CDsoDocObject::CreateDocObject(CLSID)\n"); - ASSERT(!(m_pole)); - - // Don't load if an object has already been loaded... - if (m_pole) return E_UNEXPECTED; - - // It is possible that someone picked an older ProgId/CLSID that - // will AutoConvert on CoCreate, so fix up the storage with the - // new CLSID info. We we actually call CoCreate on the new CLSID... - if (fInitNew && SUCCEEDED(OleGetAutoConvert(rclsid, &clsid))) - { - OleDoAutoConvert(m_pstgfile, &clsid); - } - else clsid = rclsid; - - // First, check the server to make sure it is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(rclsid))) - return hr; - - // If we haven't loaded a storage, create a new one and remember to - // call InitNew (instead of Load) later on... - if (fInitNew && FAILED(hr = CreateObjectStorage(rclsid))) - return hr; - - // We are ready to create an instance. Call CoCreate to make an - // inproc handler and ask for IOleObject (all docobjs must support this)... - if (FAILED(hr = InstantiateDocObjectServer(clsid, &pole))) - return hr; - - // Do a quick check to see if server wants us to set client site before the load.. - hr = pole->GetMiscStatus(DVASPECT_CONTENT, &dwMiscStatus); - if (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST) - hr = pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Load up the bloody thing... - if (SUCCEEDED(hr = pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - // Remember to InitNew if this is a new storage... - hr = ((fInitNew) ? pipstg->InitNew(m_pstgfile) : pipstg->Load(m_pstgfile)); - pipstg->Release(); - } - - // Assuming all the above worked we should have an OLE Embeddable - // object and should finish the initialization (set object running)... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Ensure server is running and locked... - EnsureOleServerRunning(TRUE); - - // If we didn't do so already, set our client site... - if (!(dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST)) - hr = m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Set the host names for OLE embedding... - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - // Ask object to save (if dirty)... - if (IsDirty()) SaveObjectStorage(); - } - else - {// Be sure they disconnect from our site if we failed load... - pole->SetClientSite(NULL); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From IStorage*) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(IStorage *pstg) -{ - HRESULT hr; - CLSID clsid; - - ODS("CDsoDocObject::CreateDocObject(IStorage*)\n"); - CHECK_NULL_RETURN(pstg, E_POINTER); - - // Read the clsid from the storage.. - if (FAILED(hr = ReadClassStg(pstg, &clsid))) - return hr; - - // Validate the server is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(clsid))) - return hr; - - // Create a new storage for this CLSID... - if (FAILED(hr = CreateObjectStorage(clsid))) - return hr; - - // Copy data into the new storage and commit the change... - hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile); - if (SUCCEEDED(hr)) hr = m_pstgfile->Commit(STGC_OVERWRITE); - - // Then do normal create on existing storage made from copy... - return CreateDocObject(clsid); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromFile -// -// Loads document into the framer control. The bind options determine if -// file should be loaded read-only or read-write. An alternate CLSID can -// be provided if the document type is not normally associated with a -// a DocObject server in OLE. -// -// To activate and show the object, you must call IPActivateView(). -// -// The code will attempt to open the file in one of three ways: -// -// 1.) Using IMoniker, we will attempt to open and load existing file -// via a passed moniker, similar to how IE loads files. -// -// 2.) Using IPersistFile, we will attempt to open via direct file path. -// -// 3.) Finally, if above two options don't work, we will try to open the -// storage, make a copy and load using IPersistStorage. This last way follows -// the (old) Binder behavior, and should *by spec* always work, but is a bit -// clunky since we open a copy, not the real file. -// -STDMETHODIMP CDsoDocObject::CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - CLSID clsid; - CLSID clsidConv; - IOleObject *pole = NULL; - IBindCtx *pbctx = NULL; - IMoniker *pmkfile = NULL; - IStorage *pstg = NULL; - BOOL fLoadFromAltCLSID = (rclsid != GUID_NULL); - - // Sanity check of parameters... - if (!(pwszFile) || ((*pwszFile) == L'\0') || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromFile(%S, %x)\n", pwszFile, pbndopts->grfMode); - - // First. we'll try to find the associated CLSID for the given file, - // and then set it to the alternate if not found. If we don't have a - // CLSID by the end of this, because user didn't specify alternate - // and GetClassFile failed, then we error out... - if (FAILED(GetClassFile(pwszFile, &clsid)) && !(fLoadFromAltCLSID)) - return DSO_E_INVALIDSERVER; - - // We should try to load from alternate CLSID if provided one... - if (fLoadFromAltCLSID) clsid = rclsid; - - // We should also handle auto-convert to start "newest" server... - if (SUCCEEDED(OleGetAutoConvert(clsid, &clsidConv))) - clsid = clsidConv; - - // Validate that we have a DocObject server... - if ((clsid == GUID_NULL) || FAILED(ValidateDocObjectServer(clsid))) - return DSO_E_INVALIDSERVER; - - // Check for IE cache items since these are read-only as far as user is concerned... - if (FIsIECacheFile(pwszFile)) - { - pbndopts->grfMode &= ~(STGM_READWRITE); - pbndopts->grfMode &= ~(STGM_WRITE); - pbndopts->grfMode |= STGM_READ; - } - - // First, we try to bind by moniker (same as IE). We'll need a bind context - // and a file moniker for the orginal source... - if (SUCCEEDED(hr = CreateBindCtx(0, &pbctx))) - { - if (SUCCEEDED(hr = pbctx->SetBindOptions(pbndopts)) && - SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pmkfile))) - { - - // Bind to the object moniker refers to... - hr = pmkfile->BindToObject(pbctx, NULL, IID_IOleObject, (void**)&pole); - - // If that failed, try to bind direct to file in new server... - if (FAILED(hr)) - { - IPersistFile *pipfile = NULL; - - if (SUCCEEDED(hr = InstantiateDocObjectServer(clsid, &pole)) && - SUCCEEDED(hr = pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { - hr = pipfile->Load(pwszFile, pbndopts->grfMode); - pipfile->Release(); - } - } - - // If either solution worked, setup the rest of the bind info... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Keep the moniker and bind ctx... - SAFE_SET_INTERFACE(m_pmkSourceFile, pmkfile); - SAFE_SET_INTERFACE(m_pbctxSourceFile, pbctx); - - // Set out client site... - m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // We don't normally set host name for moniker bind, but MSWORD object - // requires it to IP activate it instead of link & show external... - if (IsWordObject()) - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - } - else pole->SetClientSite(NULL); - - // This will release the moniker if above failed... - pmkfile->Release(); - } - // This will release the bind ctx if above failed... - pbctx->Release(); - } - - // If binding by moniker failed, try the old fashion way of bind to OLE storage... - if (FAILED(hr)) - { - // Try to open file as OLE storage (native OLE DocFile)... - if (SUCCEEDED(hr = StgOpenStorage(pwszFile, NULL, pbndopts->grfMode, NULL, 0, &pstg))) - { - // Create our substorage, and copy the data over to it... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile))) - { - m_pstgfile->Commit(STGC_OVERWRITE); - - // Then create the object from the storage copy... - if (SUCCEEDED(hr = CreateDocObject(clsid))) - { - SAFE_SET_INTERFACE(m_pstgSourceFile, pstg); - } - } - // This will release the storage if above failed... - pstg->Release(); - } - } - - // If all went well, we should save file name and whether it opened read-only... - if (SUCCEEDED(hr)) - { - m_pwszSourceFile = DsoCopyString(pwszFile); - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - m_fOpenReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromURL -// -// Loads document from a URL resource. The document can be open read-only -// using URLMON in the same context as the host client (i.e., it can be -// treated as normal navigation in host if host supports URLMON, like IE). -// Or you can choose to open read-write, which will attempt to use the -// Microsoft Internet Publishing Provider (MSDAIPP) to author on the web. -// -// The default is to open read-only with URLMON. If client wants read-write, -// we will try MSDAIPP for DAV first, then MSDAIPP for FPSE/WSS/SPS. -// -STDMETHODIMP CDsoDocObject::CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr; - BOOL fReadOnly; - LPWSTR pwszTempFile; - IStream *pstmWebResource = NULL; - - // First, a sanity check on the parameters passed... - if ((pwszUrlFile == NULL) || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromURL(%S, %x)\n", pwszUrlFile, pbndopts->grfMode); - - // Get a temp path for the download... - if (!GetTempPathForURLDownload(pwszUrlFile, &pwszTempFile)) - return E_ACCESSDENIED; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - // Determine if they want to open read-only using URLMON or read-write using MSDAIPP... - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (fReadOnly) // If using URLMON... - { - hr = URLDownloadFile((IUnknown*)&m_xAuthenticate, pwszUrlFile, pwszTempFile); - } - else // Otherwise we need access to MSDAIPP for writable stream... - { - hr = IPPDownloadWebResource(pwszUrlFile, pwszTempFile, &pstmWebResource); - } - - // If all goes well with the download, we can then open the temp file for write access to - // use as local file during the editing. Then we can save back on the stream if requested. - if (SUCCEEDED(hr)) - { - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, STGM_READWRITE|STGM_SHARE_EXCLUSIVE, 10000}; - hr = CreateFromFile(pwszTempFile, rclsid, &bopts); - if (SUCCEEDED(hr)) - { - m_fOpenReadOnly = fReadOnly; - if (!m_fOpenReadOnly) - { - m_pwszWebResource = DsoCopyString(pwszUrlFile); - SAFE_SET_INTERFACE(m_pstmWebResource, pstmWebResource); - } - } - } - - SAFE_RELEASE_INTERFACE(pstmWebResource); - DsoMemFree(pwszTempFile); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromRunningObject -// -// Grabs a pre-existing object (such as a running object) and attempts -// to embed it. If that fails, it will make a copy of the object and open -// the copy read-only. -// -STDMETHODIMP CDsoDocObject::CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - IPersistStorage *prststg; - IOleObject *pole; - CLSID clsid; - BOOL fReadOnly; - - ODS("CDsoDocObject::CreateFromRunningObject()\n"); - CHECK_NULL_RETURN(punkObj, E_POINTER); - CHECK_NULL_RETURN(pbndopts, E_POINTER); - - // We only can support read-only since a running object is external, and in order - // to get a copy inplace active, we end up making a copy of the storage, which means - // this control will have a copy and not control the orginal source. Since the orginal - // can be locked and not available, we have to treat this as read-only. - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (!fReadOnly) return STG_E_LOCKVIOLATION; - - // First, ensure the object passed supports embedding (i.e., we expect - // something like a Word.Document or Excel.Sheet object, not a Word.Application - // object or something else that is not a document type)... - hr = punkObj->QueryInterface(IID_IOleObject, (void**)&pole); - if (FAILED(hr)) return hr; - - // Ask the object to save its persistent state. We also collect its CLSID and - // validate that the object type supports DocObject embedding... - hr = pole->QueryInterface(IID_IPersistStorage, (void**)&prststg); - if (SUCCEEDED(hr)) - { - hr = prststg->GetClassID(&clsid); // Validate the object type... - if (FAILED(hr) || FAILED(ValidateDocObjectServer(clsid))) - { - hr = DSO_E_INVALIDSERVER; - } - else - { - // Create a matching storage for the object and save the current - // state of the file in our storage (this is our private copy)... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = prststg->Save(m_pstgfile, FALSE)) && - SUCCEEDED(hr = prststg->SaveCompleted(NULL))) - { - // At this point we have a read-only copy... - prststg->HandsOffStorage(); - m_fOpenReadOnly = TRUE; - - // Create the embedding... - hr = CreateDocObject(clsid); - } - } - - prststg->Release(); - } - - pole->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPActivateView -// -// Activates the object for inplace viewing. -// -STDMETHODIMP CDsoDocObject::IPActivateView() -{ - HRESULT hr = E_UNEXPECTED; - ODS("CDsoDocObject::IPActivateView()\n"); - ASSERT(m_pole); - - // Make sure the site window is made visible... - if (!IsWindowVisible(m_hwnd)) - ShowWindow(m_hwnd, SW_SHOW); - - // If we have an IOleDocument pointer, we can use the Show method for - // inplace activation... - if (m_pdocv) - { - hr = m_pdocv->Show(TRUE); - } - else if (m_pole) - { - // Try creating a document view and loading it... - hr = m_xOleDocumentSite.ActivateMe(NULL); - if (FAILED(hr)) // If that fails, go the old OLE route... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - - // First call IOleObject::DoVerb with OLEIVERB_INPLACEACTIVATE - // (or OLEIVERB_SHOW), and our view rect and IOleClientSite pointer... - hr = m_pole->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // If the server doesn't recognize IP verb, try OLEIVERB_SHOW instead... - if (hr == OLEOBJ_E_INVALIDVERB) - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // There is an issue with Visio 2002 rejecting DoVerb when it is called while - // Visio is still loading up the main app window. OLE servers normally return RPC - // retry later error, which will spin us in the msg-filter, but Visio just rejects - // the call all together, which pops us out of the filter early. This causes the - // embed attempt to fail. So to workaround this, we will check for the condition, - // sleep a bit, and then try our own semi-msg-filter loop... - if ((hr == RPC_E_CALL_REJECTED) && IsVisioObject()) - { - DWORD dwLoopCnt = 0; - do - { - Sleep((200 * ++dwLoopCnt)); - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - while ((hr == RPC_E_CALL_REJECTED) && (dwLoopCnt < 4)); - } - } - } - - // Go ahead and UI activate now... - if (SUCCEEDED(hr)) - hr = UIActivateView(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPDeactivateView -// -// Deactivates the object ready for close. -// -STDMETHODIMP CDsoDocObject::IPDeactivateView() -{ - HRESULT hr = S_OK; - ODS("CDsoDocObject::IPDeactivateView()\n"); - - // If we still have a UI active object, tell it to UI deactivate... - if (m_pipactive) - UIDeactivateView(); - - // Next hide the active object... - if (m_pdocv) - m_pdocv->Show(FALSE); - - // Notify object our intention to IP deactivate... - if (m_pipobj) - m_pipobj->InPlaceDeactivate(); - - // Close the object down and release pointers... - if (m_pdocv) - { - hr = m_pdocv->CloseView(0); - m_pdocv->SetInPlaceSite(NULL); - } - - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Hide the site window... - ShowWindow(m_hwnd, SW_HIDE); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIActivateView -// -// UI Activates the object (which should bring up toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIActivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIActivateView()\n"); - - if (m_pdocv) // Go UI active... - { - hr = m_pdocv->UIActivate(TRUE); - } - else if (m_pole) // We should never get here, but just in case pdocv is NULL, signal UI active the old way... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - m_pole->DoVerb(OLEIVERB_UIACTIVATE, NULL, (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - - // Forward focus to the IP object... - if (SUCCEEDED(hr) && (m_hwndIPObject)) - SetFocus(m_hwndIPObject); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIDeactivateView -// -// UI Deactivates the object (which should hide toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIDeactivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIDeactivateView()\n"); - if (m_pdocv) - hr = m_pdocv->UIActivate(FALSE); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IsDirty -// -// Determines if the file is dirty (by asking IPersistXXX::IsDirty). -// -STDMETHODIMP_(BOOL) CDsoDocObject::IsDirty() -{ - BOOL fDirty = TRUE; // Assume we are dirty unless object says we are not - IPersistStorage *pprststg; - IPersistFile *pprst; - - // Can't be dirty without object - CHECK_NULL_RETURN(m_pole, FALSE); - - // Ask object its dirty state... - if ((m_pmkSourceFile) && - SUCCEEDED(m_pole->QueryInterface(IID_IPersistFile, (void**)&pprst))) - { - fDirty = ((pprst->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprst->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IPersistStorage, (void**)&pprststg))) - { - fDirty = ((pprststg->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprststg->Release(); - } - - return fDirty; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Save -// -// Does default save action for existing document (if it is not read-only). -// -// There are three types of loaded doc objects we can save: -// (1) Files obtained by URL write bind via MSDAIPP; -// (2) Files opened from local file source; and -// (3) Objects already running or files linked to via OLE moniker. -// -// This function determines which type we should do the save, and call -// the right code for that type. -// -STDMETHODIMP CDsoDocObject::Save() -{ - HRESULT hr = DSO_E_NOTBEENSAVED; - - // We can't do save default if file was open read-only, - // caller must do save with new file name... - if (!IsReadOnly()) - { - // If we have a URL (write-access) resource, do MSDAIPP save... - if (m_pstmWebResource) - { - hr = SaveToURL(NULL, TRUE, NULL, NULL); - } - // Else if it is local file, do a local save... - else if (m_pwszSourceFile) - { - hr = SaveToFile(NULL, TRUE); - } - } - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - IStorage *pstg; - LPWSTR pwszFullName = NULL; - LPWSTR pwszRename = NULL; - BOOL fDoNormalSave = FALSE; - BOOL fDoOverwriteOps = FALSE; - BOOL fFileOpSuccess = FALSE; - - TRACE2("CDsoDocObject::SaveToFile(%S, %d)\n", ((pwszFile) ? pwszFile : L"[Default]"), fOverwriteFile); - CHECK_NULL_RETURN(m_pole, hr); - - // If they passed no file, use the default if current file is not read-only... - if (fDoNormalSave = (pwszFile == NULL)) - { - // File must be read-write for normal save... - if (IsReadOnly()) return DSO_E_DOCUMENTREADONLY; - - // If we are not moniker bound, we'll use the existing file path for ole save... - if (m_pwszSourceFile == NULL) return DSO_E_NOTBEENSAVED; - - pwszFile = (pwszFullName = DsoCopyString(m_pwszSourceFile)); - if (pwszFile == NULL) return E_OUTOFMEMORY; - } - else - { - // Make sure a file extension exists for string passed by caller... - if (ValidateFileExtension(pwszFile, &pwszFullName)) - pwszFile = pwszFullName; - } - - // See if we will be overwriting, and error unless given permission to do so... - if ((fDoOverwriteOps = FFileExists(pwszFile)) && !(fOverwriteFile)) - return STG_E_FILEALREADYEXISTS; - - // If we had a previous lock on storage, we have to free it... - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - - // If we are overwriting, we do a little Shell Operation here. This is done - // for two reasons: (1) it keeps the server from asking us to overwrite the - // file as it normally would in case of normal save; and (2) it lets us - // restore the original if the save fails... - if (fDoOverwriteOps) - { - pwszRename = DsoCopyStringCat(pwszFile, L".dstmp"); - fFileOpSuccess = ((pwszRename) && FPerformShellOp(FO_RENAME, pwszFile, pwszRename)); - } - - // Time to do the save to new file. - - // First we try to save by moniker using IPersistMoniker/IPersistFile. Check for defaut - // save to the current document. If to a new doc, create new moniker and save ... - if ((fDoNormalSave) && (m_pmkSourceFile)) - { - hr = SaveDocToMoniker(m_pmkSourceFile, m_pbctxSourceFile, TRUE); - } - else if (pwszFile) - { - // Create a new moniker for the save... - IMoniker *pnewmk = NULL; - if (SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pnewmk))) - { - - // If current document is read-only, we want new one to be read-write... - if ((m_fOpenReadOnly) && (m_pbctxSourceFile)) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - if (SUCCEEDED(m_pbctxSourceFile->GetBindOptions(&bndopts))) - { - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - else if (m_pbctxSourceFile == NULL) - { - // May need to create a new bind context if we haven't already... - if (SUCCEEDED(hr = CreateBindCtx(0, &m_pbctxSourceFile))) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - bndopts.grfFlags = BIND_MAYBOTHERUSER; - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - bndopts.dwTickCountDeadline = 10000; - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - - // Do the save with moniker bind option and keep lock... - if (SUCCEEDED(hr = SaveDocToMoniker(pnewmk, m_pbctxSourceFile, TRUE))) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_SET_INTERFACE(m_pmkSourceFile, pnewmk); - m_fOpenReadOnly = FALSE; // Should be read-write now... - } - - pnewmk->Release(); - } - } - - - // If we are not using moniker binding, or the save with new moniker failed, try to use - // a save copy approach and we will overwrite the file... - if (!(m_pmkSourceFile) || FAILED(hr)) - { - // Update the internal storage to the current doc state... - if (((m_pstgfile) || SUCCEEDED(hr = CreateObjectStorage(m_clsidObject))) && - SUCCEEDED(hr = SaveObjectStorage())) - { - // Ask for server to save to file in "Save Copy As" fashion. This produces a native - // OLE document file more similar to what happens in normal SaveAs dialog for BIFF file... - hr = SaveDocToFile(pwszFile, FALSE); - - // If that doesn't work, save out the storage as OLE storage and ... - if (FAILED(hr) && SUCCEEDED(hr = StgCreateDocfile(pwszFile, STGM_TRANSACTED | - STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, 0, &pstg))) - { - WriteClassStg(pstg, m_clsidObject); - - if (SUCCEEDED(hr = m_pstgfile->CopyTo(0, NULL, NULL, pstg))) - hr = pstg->Commit(STGC_OVERWRITE); - - pstg->Release(); - } - } - - // If that worked, and we once had a moniker, we have to dump it now... - if (SUCCEEDED(hr) && (m_pmkSourceFile)) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - } - } - - // If we made a copy to protect on overwrite, either restore or delete it as needed... - if ((fDoOverwriteOps) && (fFileOpSuccess) && (pwszRename)) - { - FPerformShellOp((FAILED(hr) ? FO_RENAME : FO_DELETE), pwszRename, pwszFile); - } - - // If this is an exisitng file save, or the operation failed, relock the - // the original file save source... - if ((m_pstgfile) && !(m_pmkSourceFile) && (m_pwszSourceFile) && - ((fDoNormalSave) || (FAILED(hr)))) - { - StgOpenStorage(m_pwszSourceFile, NULL, - ((m_pwszWebResource) ? - (STGM_READ | STGM_SHARE_DENY_WRITE) : - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE)), - NULL, 0, &m_pstgSourceFile); - } - else if (SUCCEEDED(hr)) - { - // Otherwise if we succeeded, free any existing file info we have it and - // save the new file info for later re-saves (and lock)... - SAFE_FREESTRING(m_pwszSourceFile); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - - // Save the name, and try to lock the file for editing... - if (m_pwszSourceFile = DsoCopyString(pwszFile)) - { - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - - if (!(m_pmkSourceFile) && (m_pstgfile)) - StgOpenStorage(m_pwszSourceFile, NULL, - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE), NULL, 0, &m_pstgSourceFile); - } - } - - if (pwszRename) - DsoMemFree(pwszRename); - - if (pwszFullName) - DsoMemFree(pwszFullName); - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr = DSO_E_DOCUMENTREADONLY; - - // If we have no URL to save to and no previously open web stream, fail... - if ((!pwszURL) && (!m_pstmWebResource)) - return hr; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - if ((pwszURL) && (m_pwszWebResource) && - (DsoCompareStringsEx(pwszURL, -1, m_pwszWebResource, -1) == CSTR_EQUAL)) - pwszURL = NULL; - - if (pwszURL) - { - IStream *pstmT = NULL; - LPWSTR pwszFullUrl = NULL; - LPWSTR pwszTempFile; - - IStream *pstmBkupStm; - IStorage *pstgBkupStg; - LPWSTR pwszBkupFile, pwszBkupUrl; - UINT idxBkup; - - if (!GetTempPathForURLDownload(pwszURL, &pwszTempFile)) - return E_INVALIDARG; - - if (ValidateFileExtension(pwszURL, &pwszFullUrl)) - pwszURL = pwszFullUrl; - - // We are going to save out the current file info in case of - // an error we can restore it to do native saves back to open location... - pstmBkupStm = m_pstmWebResource; m_pstmWebResource = NULL; - pwszBkupUrl = m_pwszWebResource; m_pwszWebResource = NULL; - pwszBkupFile = m_pwszSourceFile; m_pwszSourceFile = NULL; - pstgBkupStg = m_pstgSourceFile; m_pstgSourceFile = NULL; - idxBkup = m_idxSourceName; m_idxSourceName = 0; - - // Save the object to a new (temp) file on the local drive... - if (SUCCEEDED(hr = SaveToFile(pwszTempFile, TRUE))) - { - // Then upload from that file... - hr = IPPUploadWebResource(pwszTempFile, &pstmT, pwszURL, fOverwriteFile); - } - - // If both calls succeed, we can free the old file/url location info - // and save the new information, otherwise restore the old info from backup... - if (SUCCEEDED(hr)) - { - SAFE_RELEASE_INTERFACE(pstgBkupStg); - - if ((pstmBkupStm) && (pwszBkupFile)) - FPerformShellOp(FO_DELETE, pwszBkupFile, NULL); - - SAFE_RELEASE_INTERFACE(pstmBkupStm); - SAFE_FREESTRING(pwszBkupUrl); - SAFE_FREESTRING(pwszBkupFile); - - m_pstmWebResource = pstmT; - m_pwszWebResource = DsoCopyString(pwszURL); - //m_pwszSourceFile already saved in SaveStorageToFile - //m_pstgSourceFile already saved in SaveStorageToFile - //m_idxSourceName already calced in SaveStorageToFile; - - } - else - { - if (m_pstgSourceFile) - m_pstgSourceFile->Release(); - - if (m_pwszSourceFile) - { - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - DsoMemFree(m_pwszSourceFile); - } - - m_pstmWebResource = pstmBkupStm; - m_pwszWebResource = pwszBkupUrl; - m_pwszSourceFile = pwszBkupFile; - m_pstgSourceFile = pstgBkupStg; - m_idxSourceName = idxBkup; - } - - if (pwszFullUrl) - DsoMemFree(pwszFullUrl); - - DsoMemFree(pwszTempFile); - - } - else if ((m_pstmWebResource) && (m_pwszSourceFile)) - { - if (SUCCEEDED(hr = SaveToFile(NULL, TRUE))) - hr = IPPUploadWebResource(m_pwszSourceFile, &m_pstmWebResource, NULL, TRUE); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::DoOleCommand -// -// Calls IOleCommandTarget::Exec on the active object to do a specific -// command (like Print, SaveCopy, Zoom, etc.). -// -STDMETHODIMP CDsoDocObject::DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr; - OLECMD cmd = {dwOleCmdId, 0}; - TRACE2("CDsoDocObject::DoOleCommand(cmd=%d, Opts=%d\n", dwOleCmdId, dwOptions); - - // Can't issue OLECOMMANDs when in print preview mode (object calls us)... - if (InPrintPreview()) return E_ACCESSDENIED; - - // The server must support IOleCommandTarget, the CmdID being requested, and - // the command should be enabled. If this is the case, do the command... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) && (cmd.cmdf & OLECMDF_ENABLED))) - { - TRACE1("QueryStatus say supported = 0x%X\n", cmd.cmdf); - - // Do the command asked by caller on default command group... - hr = m_pcmdt->Exec(NULL, cmd.cmdID, dwOptions, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - - if ((dwOptions == OLECMDEXECOPT_PROMPTUSER)) - { - // Handle bug issue for PPT when printing using prompt... - if ((hr == E_INVALIDARG) && (cmd.cmdID == OLECMDID_PRINT) && IsPPTObject()) - { - ODS("Retry command for PPT\n"); - hr = m_pcmdt->Exec(NULL, cmd.cmdID, OLECMDEXECOPT_DODEFAULT, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - } - - // If user canceled an Office dialog, that's OK... - if (hr == 0x80040103) - hr = S_FALSE; - } - } - else - { - TRACE1("Command Not supportted (%d)\n", cmd.cmdf); - hr = DSO_E_COMMANDNOTSUPPORTED; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Close -// -// Close down the object and disconnect us from any handlers/proxies. -// -STDMETHODIMP CDsoDocObject::Close() -{ - HRESULT hr; - - ODS("CDsoDocObject::Close\n"); - m_fInClose = TRUE; - - // Make sure we are not in print preview before close... - if (InPrintPreview()) - ExitPrintPreview(TRUE); - - // Go ahead an IP deactivate the object... - hr = IPDeactivateView(); - - SAFE_RELEASE_INTERFACE(m_pprtprv); - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipactive); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Release the OLE object and cleanup... - if (m_pole) - { - // Free running lock if we set it... - FreeRunningLock(); - - // Tell server to release our client site... - m_pole->SetClientSite(NULL); - - // Finally, close the object and release the pointer... - hr = m_pole->Close(OLECLOSE_NOSAVE); - - if (m_fDisconnectOnQuit) - CoDisconnectObject((IUnknown*)m_pole, 0); - - SAFE_RELEASE_INTERFACE(m_pole); - } - - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - - // Free any temp file we might have... - if ((m_pstmWebResource) && (m_pwszSourceFile)) - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_FREESTRING(m_pwszSourceFile); - m_idxSourceName = 0; - - if (m_fDisconnectOnQuit) - { - CoDisconnectObject((IUnknown*)this, 0); - m_fDisconnectOnQuit = FALSE; - } - - SAFE_RELEASE_INTERFACE(m_pstmview); - SAFE_RELEASE_INTERFACE(m_pstgfile); - - ClearMergedMenu(); - m_fInClose = FALSE; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Notification Functions - The OCX should call these to -// let the doc site update the object as needed. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifySizeChange -// -// Resets the size of the site window and tells UI active object to -// resize as well. If we are UI active, we'll call ResizeBorder to -// re-negotiate toolspace (allow toolbars to shrink and grow), otherwise -// we'll just set the IP active view rect (minus any toolspace, which -// should be none since object is not UI active!). -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifySizeChange(LPRECT prc) -{ - RECT rc; - - SetRect(&rc, 0, 0, (prc->right - prc->left), (prc->bottom - prc->top)); - if (rc.right < 0) rc.right = 0; - if (rc.top < 0) rc.top = 0; - - // First, resize our frame site window tot he new size (don't change focus)... - if (m_hwnd) - { - m_rcViewRect = *prc; - - SetWindowPos(m_hwnd, NULL, m_rcViewRect.left, m_rcViewRect.top, - rc.right, rc.bottom, SWP_NOACTIVATE | SWP_NOZORDER); - - UpdateWindow(m_hwnd); - } - - // If we have an active object (i.e., Document is still UI active) we should - // tell it of the resize so it can re-negotiate border space... - if ((m_fObjectUIActive) && (m_pipactive)) - { - m_pipactive->ResizeBorder(&rc, (IOleInPlaceUIWindow*)&m_xOleInPlaceFrame, TRUE); - } - else if ((m_fObjectIPActive) && (m_pdocv)) - { - rc.left += m_bwToolSpace.left; rc.right -= m_bwToolSpace.right; - rc.top += m_bwToolSpace.top; rc.bottom -= m_bwToolSpace.bottom; - m_pdocv->SetRect(&rc); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyAppActivate -// -// Notify doc object when the top-level frame window goes active and -// deactive so it can handle window focs and paiting correctly. Failure -// to not forward this notification leads to bad behavior. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID) -{ - // This is critical for DocObject servers, so forward these messages - // when the object is UI active... - if (m_pipactive) - { - // We should always tell obj server when our frame activates, but - // don't tell it to go deactive if the thread gaining focus is - // the server's since our frame may have lost focus because of - // a top-level modeless dialog (ex., the RefEdit dialog of Excel)... - if (!m_fObjectInModalCondition) - m_pipactive->OnFrameWindowActivate(fActive); - } - - m_fAppWindowActive = fActive; -} - -STDMETHODIMP_(void) CDsoDocObject::OnNotifyControlFocus(BOOL fGotFocus) -{ - HWND hwnd; - - // For UI Active DocObject server, we will tell them we gain/lose control focus... - if ((m_pipactive) && (!m_fObjectInModalCondition)) - { - // TODO: Normally we would notify object of loss of control focus (such as user - // moving focus from framer control to another text box or something on the same - // form), but this can cause PPT to drop its toolbar and XL to drop its formula - // bar, so we are skipping this call. We really should determine if it is needed - // for another host (like Visio or something?) but that is to do... - // - // m_pipactive->OnDocWindowActivate(fGotFocus); - - // We should forward the focus to the active window if window with the focus - // is not already one that is parented to us... - if ((fGotFocus) && !IsWindowChild(m_hwnd, GetFocus()) && - SUCCEEDED(m_pipactive->GetWindow(&hwnd))) - SetFocus(hwnd); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyPaletteChanged -// -// Give the object first chance at realizing a palette. Important on -// 256 color machines, but not so critical these days when everyone is -// running full 32-bit True Color graphic cards. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyPaletteChanged(HWND hwndPalChg) -{ - if ((m_fObjectUIActive) && (m_hwndUIActiveObj)) - SendMessage(m_hwndUIActiveObj, WM_PALETTECHANGED, (WPARAM)hwndPalChg, 0L); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyChangeToolState -// -// This should be called to get object to show/hide toolbars as needed. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyChangeToolState(BOOL fShowTools) -{ - // Can't change toolbar state in print preview (sorry)... - if (InPrintPreview()) return; - - // If we want to show/hide toolbars, we can do the following... - if (fShowTools != (BOOL)m_fDisplayTools) - { - OLECMD cmd; - cmd.cmdID = OLECMDID_HIDETOOLBARS; - - m_fDisplayTools = fShowTools; - - // Use IOleCommandTarget(OLECMDID_HIDETOOLBARS) to toggle on/off. We have - // to check that server supports it and if its state matches our own so - // when toggle, we do the correct thing by the user... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) || (cmd.cmdf & OLECMDF_ENABLED))) - { - if (((m_fDisplayTools) && ((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED)) || - (!(m_fDisplayTools) && !((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED))) - { - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - else if (m_fDisplayTools && (IsWordObject() || IsPPTObject())) - { - // HACK: Word and PowerPoint 2007 do not report the correct latched state for the ribbon, - // so if we are trying to show the tools after hiding them, they will say they are already - // visible when the ribbon is not. This is an apparant trick they are using to force the - // ribbon visible in IE embed cases, but it is causing us problems. - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - // There can be focus issues when turning them off, so make sure - // the object is on top of the z-order... - if ((!m_fDisplayTools) && (m_hwndIPObject)) - BringWindowToTop(m_hwndIPObject); - - // If user toggles off the toolbar while the object is UI active, and - // we are not still in activation process, we need to explictly tell Office - // apps to also hide the "Web" toolbar. For Office, OLECMDID_HIDETOOLBARS puts - // the app into a "web view" which (in some apps) brings up the web toolbar. - // Since we intend to have no tools, we have to turn it off by code... - if ((m_fObjectUIActive) && (m_fObjectActivateComplete)) - TurnOffWebToolbar(!m_fDisplayTools); - - } - else if (m_pdocv) - { - // If we have a DocObj server, but no IOleCommandTarget, do things the hard - // way and resize. When server attempts to resize window it will have to - // re-negotiate BorderSpace and we fail there, so server "should" not - // display its tools (at least that is the idea!)... - RECT rc; GetClientRect(m_hwnd, &rc); - MapWindowPoints(m_hwnd, m_hwndCtl, (LPPOINT)&rc, 2); - OnNotifySizeChange(&rc); - } - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Protected Functions -- Helpers -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InstantiateDocObjectServer (protected) -// -// Startup OLE Document Object server and get IOleObject pointer. -// -STDMETHODIMP CDsoDocObject::InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole) -{ - HRESULT hr; - IUnknown *punk = NULL; - - ODS("CDsoDocObject::InstantiateDocObjectServer()\n"); - - // We perform custom create in order of local server then inproc server... - if (SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&punk)) || - SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&punk))) - { - // Ask for IOleObject interface... - if (SUCCEEDED(hr = punk->QueryInterface(IID_IOleObject, (void**)ppole))) - { - // TODO: Add strong connection to remote server (IExternalConnection??)... - } - punk->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateObjectStorage (protected) -// -// Makes the internal IStorage to host the object and assigns the CLSID. -// -STDMETHODIMP CDsoDocObject::CreateObjectStorage(REFCLSID rclsid) -{ - HRESULT hr; - LPWSTR pwszName; - DWORD dwid; - CHAR szbuf[256]; - - if ((!m_pstgroot)) return E_UNEXPECTED; - - // Next, create a new object storage (with unique name) in our - // temp root storage "file" (this keeps an OLE integrity some servers - // need to function correctly instead of IP activating from file directly). - - // We make a fake object storage name... - dwid = ((rclsid.Data1)|GetTickCount()); - wsprintf(szbuf, "OLEDocument%X", dwid); - - if (!(pwszName = DsoConvertToLPWSTR(szbuf))) - return E_OUTOFMEMORY; - - // Create the sub-storage... - hr = m_pstgroot->CreateStorage(pwszName, - STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstgfile); - - DsoMemFree(pwszName); - - if (FAILED(hr)) return hr; - - // We'll also create a stream for OLE view settings (non-critical)... - if (pwszName = DsoConvertToLPWSTR(szbuf)) - { - m_pstgroot->CreateStream(pwszName, - STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstmview); - DsoMemFree(pwszName); - } - - // Finally, write out the CLSID for the new substorage... - hr = WriteClassStg(m_pstgfile, rclsid); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveObjectStorage (protected) -// -// Saves the object back to the internal IStorage. Returns S_FALSE if -// there is no file storage for this document (it depends on how file -// was loaded). In most cases we should have one, and this copies data -// into the internal storage for save. -// -STDMETHODIMP CDsoDocObject::SaveObjectStorage() -{ - HRESULT hr = S_FALSE; - IPersistStorage *pipstg = NULL; - - // Got to have object to save state... - if (!m_pole) return E_UNEXPECTED; - - // If we have file storage, ask for IPersist and Save (commit changes)... - if ((m_pstgfile) && - SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - if (SUCCEEDED(hr = pipstg->Save(m_pstgfile, TRUE))) - hr = pipstg->SaveCompleted(NULL); - - hr = m_pstgfile->Commit(STGC_DEFAULT); - pipstg->Release(); - } - - // Go ahead and save the view state if view still active (non-critical)... - if ((m_pdocv) && (m_pstmview)) - { - m_pdocv->SaveViewState(m_pstmview); - m_pstmview->Commit(STGC_DEFAULT); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToMoniker (protected) -// -// Saves document to location spcified by the moniker passed. The server -// needs to support either IPersistMoniker or IPersistFile. This is used -// primarily when document was opened by moniker instead of storage. -// -STDMETHODIMP CDsoDocObject::SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistMoniker *prstmk; - LPOLESTR pwszFullName = NULL; - - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - CHECK_NULL_RETURN(pmk, E_POINTER); - - // Get IPersistMoniker interface and ask it to save context if it existing moniker... - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistMoniker, (void**)&prstmk))) - { - hr = prstmk->Save(pmk, pbc, fKeepLock); - prstmk->Release(); - } - - // If that failed to work, switch to IPersistFile and use full path to the new file... - if (FAILED(hr) && SUCCEEDED(hr = pmk->GetDisplayName(pbc, NULL, &pwszFullName))) - { - hr = SaveDocToFile(pwszFullName, fKeepLock); - CoTaskMemFree(pwszFullName); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToFile (protected) -// -// Saves document to location spcified by the path passed. The server -// needs to support either IPersistFile. -// -STDMETHODIMP CDsoDocObject::SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistFile *pipfile = NULL; - - BOOL fSameAsOpen = ((m_pwszSourceFile) && - DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - m_pwszSourceFile, lstrlenW(m_pwszSourceFile)) == CSTR_EQUAL); - - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { -#ifdef DSO_WORD12_PERSIST_BUG - LPOLESTR pwszWordCurFile = NULL; - // HACK: Word 2007 RTM has a bug in its IPersistFile::Save method which will cause it to save - // to the old file location and not the new one, so if the document being saved is a Word - // object and we are saving to a new file, then got to run this hack to copy the saved bits - // to the correct location... - if (IsWordObject()) - { - hr = pipfile->GetCurFile(&pwszWordCurFile); - if ((fSameAsOpen) && (pwszWordCurFile)) - { - // Check again if Word thinks the file is the same as we do... - fSameAsOpen = (DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - pwszWordCurFile, lstrlenW(pwszWordCurFile)) == CSTR_EQUAL); - if (fSameAsOpen) - { // If it is the same file after all, we don't need to do the hack... - CoTaskMemFree(pwszWordCurFile); - pwszWordCurFile = NULL; - } - } - } -#endif - - // Do the save using file path or NULL if we are saving to current file... - //hr = pipfile->Save((fSameAsOpen ? NULL : pwszFullName), fKeepLock); - hr = pipfile->Save(pwszFullName, fKeepLock); - -#ifdef DSO_WORD12_PERSIST_BUG - // HACK: If we have the pwszWordCurFile, we'll assume Word 12 RTM might have saved this, and we - // need to check if Word saved to the right path or not. So check the paths, and if the new - // file is not there, copy the file Word saved to the new location... - if (pwszWordCurFile) - { - if (SUCCEEDED(hr) && !FFileExists(pwszFullName) && FFileExists(pwszWordCurFile)) - { - if (!FPerformShellOp(FO_COPY, pwszWordCurFile, pwszFullName)) - hr = E_ACCESSDENIED; - } - CoTaskMemFree(pwszWordCurFile); - } - // Hopefully, Word should have this fixed by Office 2007 SP1 and we can remove this hack! -#endif - pipfile->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateDocObjectServer (protected) -// -// Quick validation check to see if CLSID is for DocObject server. -// -// Officially, the only way to determine if a server supports ActiveX -// Document embedding is to IP activate it and ask for IOleDocument, -// but that means going through the IP process just to fail if IOleDoc -// is not supported. Therefore, we are going to rely on the server's -// honesty in setting its reg keys to include the "DocObject" sub key -// under their CLSID. -// -// This is 99% accurate. For those servers that fail, too bad charlie! -// -STDMETHODIMP CDsoDocObject::ValidateDocObjectServer(REFCLSID rclsid) -{ - HRESULT hr = DSO_E_INVALIDSERVER; - CHAR szKeyCheck[256]; - LPSTR pszClsid; - HKEY hkey; - - // We don't handle MSHTML even though it is DocObject server. If you plan - // to view web pages in browser-like context, best to use WebBrowser control... - if (rclsid == CLSID_MSHTML_DOCUMENT) - return hr; - - // Convert the CLSID to a string and check for DocObject sub key... - if (pszClsid = DsoCLSIDtoLPSTR(rclsid)) - { - wsprintf(szKeyCheck, "CLSID\\%s\\DocObject", pszClsid); - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szKeyCheck, 0, KEY_READ, &hkey) == ERROR_SUCCESS) - { - hr = S_OK; - RegCloseKey(hkey); - } - - DsoMemFree(pszClsid); - } - else hr = E_OUTOFMEMORY; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::GetDocumentTypeAndFileExtension -// -// Returns default file type and extension for a save of embedded object. -// -STDMETHODIMP_(BOOL) CDsoDocObject::GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt) -{ - DWORD dwType, dwSize; - LPWSTR pwszExt = NULL; - LPWSTR pwszType = NULL; - LPSTR pszType = NULL; - LPSTR pszClsid; - CHAR szkey[255]; - CHAR szbuf[255]; - HKEY hk; - - if ((ppwszFileType == NULL) && (ppwszFileExt == NULL)) - return FALSE; - - pszClsid = DsoCLSIDtoLPSTR(m_clsidObject); - if (!pszClsid) return FALSE; - - wsprintf(szkey, "CLSID\\%s\\DefaultExtension", pszClsid); - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szkey, 0, KEY_READ, &hk) == ERROR_SUCCESS) - { - LPSTR pszT = szbuf; szbuf[0] = '\0'; dwSize = 255; - if (RegQueryValueEx(hk, NULL, 0, &dwType, (BYTE*)pszT, &dwSize) == ERROR_SUCCESS) - { - while (*(pszT++) && (*pszT != ',')) - (void)(0); - - if (*pszT == ',') - (pszType = pszT)++; - - *pszT = '\0'; - } - else lstrcpy(szbuf, ".ole"); - - RegCloseKey(hk); - } - else lstrcpy(szbuf, ".ole"); - - pwszExt = DsoConvertToLPWSTR(szbuf); - if (ppwszFileExt) *ppwszFileExt = pwszExt; - - if (ppwszFileType) - { - ULONG cb1, cb2; - LPWSTR pwszCombined; - CHAR szUnknownType[255]; - - if (!(*pszType)) - { - szUnknownType[0] = '\0'; - wsprintf(szUnknownType, "Native Document (*%s)", szbuf); - pszType = szUnknownType; - } - pwszType = DsoConvertToLPWSTR(pszType); - - cb1 = lstrlenW(pwszExt); - cb2 = lstrlenW(pwszType); - - pwszCombined = (LPWSTR)DsoMemAlloc(((cb1 + cb2 + 4) * sizeof(WCHAR))); - if (pwszCombined) - { - memcpy(&pwszCombined[0], pwszType,(cb2 * sizeof(WCHAR))); - pwszCombined[cb2] = L'\0'; - - pwszCombined[cb2 + 1] = L'*'; - memcpy(&pwszCombined[cb2 + 2], pwszExt, (cb1 * sizeof(WCHAR))); - pwszCombined[cb2 + 2 + cb1] = L'\0'; - pwszCombined[cb2 + 3 + cb1] = L'\0'; - - DsoMemFree(pwszType); - } - - *ppwszFileType = ((pwszCombined) ? pwszCombined : pwszType); - } - - if ((ppwszFileExt == NULL) && (pwszExt)) - DsoMemFree(pwszExt); - - DsoMemFree(pszClsid); - return (((ppwszFileExt) && (*ppwszFileExt)) || - ((ppwszFileType) && (*ppwszFileType))); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateFileExtension (protected) -// -// Adds a default extension to save file path if user didn't provide -// one (uses CLSID and registry to determine default extension). -// -STDMETHODIMP_(BOOL) CDsoDocObject::ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut) -{ - BOOL fHasExt = FALSE; - BOOL fChangedExt = FALSE; - LPWSTR pwszT; - LPWSTR pwszExt = NULL; - DWORD dw; - - if ((pwszFile) && (dw = lstrlenW(pwszFile)) && (ppwszOut)) - { - *ppwszOut = NULL; - - pwszT = (pwszFile + dw); - while ((pwszT != pwszFile) && - (*(--pwszT)) && ((*pwszT != L'\\') && (*pwszT != L'/'))) - { - if (*pwszT == L'.') fHasExt = TRUE; - } - - if (!(fHasExt) && GetDocumentTypeAndFileExtension(NULL, &pwszExt)) - { - *ppwszOut = DsoCopyStringCat(pwszFile, pwszExt); - fChangedExt = ((*ppwszOut) != NULL); - } - } - - return fChangedExt; -} - - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::EnsureOleServerRunning (protected) -// -// Verifies the DocObject server is running and is optionally locked -// while the embedding is taking place. -// -STDMETHODIMP CDsoDocObject::EnsureOleServerRunning(BOOL fLockRunning) -{ - HRESULT hr = S_FALSE; - IBindCtx *pbc; - IRunnableObject *pro; - IOleContainer *pocnt; - BIND_OPTS bnd = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, (STGM_READWRITE|STGM_SHARE_EXCLUSIVE), 10000}; - - TRACE1("CDsoDocObject::EnsureOleServerRunning(%d)\n", (DWORD)fLockRunning); - if (m_pole == NULL) return E_FAIL; - - // If we are already locked, don't need to do this again... - if (m_fLockedServerRunning) - return hr; - - // Create a bind ctx... - if (FAILED(CreateBindCtx(0, &pbc))) - return E_UNEXPECTED; - - // Setup default bind options for the run operation... - pbc->SetBindOptions(&bnd); - - // Get IRunnableObject and set server to run as OLE object. We check the - // running state first since this is proper OLE, but note that this is not - // returned from out-of-proc server, but the in-proc handler. Also note, we - // specify a timeout in case the object never starts, and "check" the object - // runs without IMessageFilter errors... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - - // If the object is not currently running, let's run it... - if (!(pro->IsRunning())) - hr = pro->Run(pbc); - - // Set the object server as a contained object (i.e., OLE object)... - pro->SetContainedObject(TRUE); - - // Lock running if desired... - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pro->LockRunning(TRUE, TRUE)); - - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pocnt->LockContainer(TRUE)); - - pocnt->Release(); - } - - pbc->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FreeRunningLock (protected) -// -// Free any previous lock made by EnsureOleServerRunning. -// -STDMETHODIMP_(void) CDsoDocObject::FreeRunningLock() -{ - IRunnableObject *pro; - IOleContainer *pocnt; - - ODS("CDsoDocObject::FreeRunningLock(%d)\n"); - ASSERT(m_pole); - - // Don't do anything if we didn't lock the server... - if (m_fLockedServerRunning == FALSE) - return; - - // Get IRunnableObject and free lock... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - pro->LockRunning(FALSE, TRUE); - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - pocnt->LockContainer(FALSE); - pocnt->Release(); - } - - m_fLockedServerRunning = FALSE; - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SetRunningServerLock -// -// Sets an external lock on the running object server. -// -STDMETHODIMP CDsoDocObject::SetRunningServerLock(BOOL fLock) -{ - HRESULT hr; - TRACE1("CDsoDocObject::SetRunningServerLock(%d)\n", (DWORD)fLock); - - // Word doesn't obey normal running lock, but does have method to explicitly - // lock the server for mail, so we'll use that in the Word case... - if (IsWordObject()) - { - IClassFactory *pcf = NULL; - interface ifoo : public IUnknown - { - STDMETHOD(_uncall)() PURE; - STDMETHOD(lock)(BOOL f) PURE; - } *pi = NULL; - const GUID iidifoo = {0x0006729A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; - - SEH_TRY - hr = CoGetClassObject(CLSID_WORD_DOCUMENT_DOC, CLSCTX_LOCAL_SERVER, NULL, IID_IClassFactory, (void**)&pcf); - if (SUCCEEDED(hr) && (pcf)) - { - hr = pcf->QueryInterface(iidifoo, (void**)&pi); - if (SUCCEEDED(hr) && (pi)) - { - hr = pi->lock(fLock); - pi->Release(); - } - pcf->Release(); - } - SEH_EXCEPT(hr) - } - else - { - if (fLock) - { - hr = EnsureOleServerRunning(TRUE); - } - else - { - hr = (FreeRunningLock(), S_OK); - } - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateIPPBindResource (protected) -// -// Returns an instance of MSDAIPP URL resource provider which is used by -// Office/Windows for Web Folders (DAV/FPSE server). -// -STDMETHODIMP_(IUnknown*) CDsoDocObject::CreateIPPBindResource() -{ - HRESULT hr; - IDBProperties* pdbprops = NULL; - IBindResource* pres = NULL; - DBPROPSET rdbpset; - DBPROP rdbp[4]; - BSTR bstrLock; - DWORD dw = 256; - CHAR szUserName[256]; - - if (FAILED(CoCreateInstance(CLSID_MSDAIPP_BINDER, NULL, - CLSCTX_INPROC, IID_IDBProperties, (void**)&pdbprops))) - return NULL; - - bstrLock = (GetUserName(szUserName, &dw) ? DsoConvertToBSTR(szUserName) : NULL); - - memset(rdbp, 0, sizeof(4 * sizeof(DBPROP))); - - rdbpset.cProperties = 4; - rdbpset.guidPropertySet = DBPROPSET_DBINIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = DBPROP_INIT_BINDFLAGS; - rdbp[0].vValue.vt = VT_I4; - rdbp[0].vValue.lVal = DBBINDURLFLAG_OUTPUT; - - rdbp[1].dwPropertyID = DBPROP_INIT_LOCKOWNER; - rdbp[1].vValue.vt = VT_BSTR; - rdbp[1].vValue.bstrVal = bstrLock; - - rdbp[2].dwPropertyID = DBPROP_INIT_LCID; - rdbp[2].vValue.vt = VT_I4; - rdbp[2].vValue.lVal = GetThreadLocale(); - - rdbp[3].dwPropertyID = DBPROP_INIT_PROMPT; - rdbp[3].vValue.vt = VT_I2; - rdbp[3].vValue.iVal = DBPROMPT_COMPLETE; - - if (pdbprops->SetProperties(1, &rdbpset) == S_OK) - { -#ifdef DSO_MSDAIPP_USE_DAVONLY - BSTR bstrClsid = SysAllocString(L"{9FECD570-B9D4-11D1-9C78-0000F875AC61}"); - if (bstrClsid) - { - rdbpset.cProperties = 1; - rdbpset.guidPropertySet = DBPROPSET_MSDAIPP_INIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = 6; // DBPROP_INIT_PROTOCOLPROVIDER; - rdbp[0].vValue.vt = VT_BSTR; - rdbp[0].vValue.bstrVal = bstrClsid; - - hr = pdbprops->SetProperties(1, &rdbpset); - SysFreeString(bstrClsid); - } -#endif - hr = pdbprops->QueryInterface(IIDX_IBindResource, (void**)&pres); - } - - SAFE_FREEBSTR(bstrLock); - pdbprops->Release(); - - return (IUnknown*)pres; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPDownloadWebResource (protected) -// -// Downloads the file specified by the URL to the given temp file. Locks -// the web resource for editing if ppstmKeepForSave is requested. -// -STDMETHODIMP CDsoDocObject::IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave) -{ - HRESULT hr = E_UNEXPECTED; - IStream *pstm = NULL; - IBindResource *pres = NULL; - BYTE *rgbBuf; - DWORD dwStatus, dwBindFlags; - ULONG cbRead, cbWritten; - HANDLE hFile; - - // Sanity check... - if ((pwszURL == NULL) || (pwszFile == NULL) || (ppstmKeepForSave == NULL)) - return E_INVALIDARG; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - rgbBuf = new BYTE[10240]; //a 10-k buffer for reading - if (!rgbBuf) return E_OUTOFMEMORY; - - // Use IBindResource::Bind to open an IStream and copy out the date to - // the file given. This will then be used to load the object from the file... - if (SUCCEEDED(m_punkIPPResource->QueryInterface(IIDX_IBindResource, (void**)&pres))) - { - dwBindFlags = (DBBINDURLFLAG_READ | DBBINDURLFLAG_WRITE | DBBINDURLFLAG_OUTPUT | DBBINDURLFLAG_SHARE_DENY_WRITE); -callagain: - if (SUCCEEDED(hr = pres->Bind(NULL, pwszURL, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, (IUnknown**)&pstm))) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - if (FOpenLocalFile(pwszFile, GENERIC_WRITE, 0, CREATE_ALWAYS, &hFile)) - { - while (SUCCEEDED(hr)) - { - if (FAILED(hr = pstm->Read((void*)rgbBuf, 10240, &cbRead)) || - (cbRead == 0)) - break; - - if (FALSE == WriteFile(hFile, rgbBuf, cbRead, &cbWritten, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - } - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - SAFE_SET_INTERFACE(*ppstmKeepForSave, pstm); - - pstm->Release(); - } - else if ((hr == DB_E_NOTSUPPORTED) && ((dwBindFlags & DBBINDURLFLAG_OUTPUT) == DBBINDURLFLAG_OUTPUT)) - { - // WEC4 does not support DBBINDURLFLAG_OUTPUT flag, but if we are using WEC - // we don't really need the flag since this is not an HTTP GET call. Flip the - // flag off and call the method again to connect to server... - dwBindFlags &= ~DBBINDURLFLAG_OUTPUT; - goto callagain; - } - - pres->Release(); - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_NOTFOUND: hr = STG_E_FILENOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - delete [] rgbBuf; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPUploadWebResource (protected) -// -// Uploads the file to a URL. The code can be used two ways: -// -// 1.) If ppstmSave contains a pointer to an existing IStream*, then we -// just upload to the existing stream. This allows for normal "Save" -// on an open web resource. -// -// 2.) If ppstmSave is NULL (or contains a NULL IStream*), we create a new -// web resource at the location given by pwszURLSaveTo and save to its -// stream. If ppstmSave is passed, we return the new IStream* to the -// caller who can then use it to do the other type of save next time. -// -STDMETHODIMP CDsoDocObject::IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - ICreateRow *pcrow = NULL; - IStream *pstm = NULL; - BYTE *rgbBuf; - HANDLE hFile; - BOOL fstmIn = FALSE; - ULONG cbRead, cbWritten; - DWORD dwStatus, dwBindFlags; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - // Check if this a "Save" on existing IStream* and jump to loop... - if ((ppstmSave) && (fstmIn = (BOOL)(pstm = *ppstmSave))) - goto uploadfrominstm; - - // Check the URL string and ask for ICreateRow (to make new web resource)... - if (!(pwszURLSaveTo) || !LooksLikeHTTP(pwszURLSaveTo) || - FAILED(m_punkIPPResource->QueryInterface(IIDX_ICreateRow, (void**)&pcrow))) - return hr; - - dwBindFlags = ( DBBINDURLFLAG_READ | - DBBINDURLFLAG_WRITE | - DBBINDURLFLAG_SHARE_DENY_WRITE | - (fOverwriteFile ? DBBINDURLFLAG_OVERWRITE : 0)); - - if (SUCCEEDED(hr = pcrow->CreateRow(NULL, pwszURLSaveTo, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, NULL, (IUnknown**)&pstm))) - { - - // Once we are here, we have a stream (either handed in or opened from above). - // We just loop through and read from the file to the stream... -uploadfrominstm: - if (rgbBuf = new BYTE[10240]) //a 10-k buffer for reading - { - if (FOpenLocalFile(pwszFile, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, &hFile)) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - while (SUCCEEDED(hr)) - { - if (FALSE == ReadFile(hFile, rgbBuf, 10240, &cbRead, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - - if (0 == cbRead) break; - - if (FAILED(hr = pstm->Write((void*)rgbBuf, cbRead, &cbWritten))) - break; - } - - // Need to commit the changes to make it official... - if (SUCCEEDED(hr)) - hr = pstm->Commit(STGC_DEFAULT); - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - delete [] rgbBuf; - } - else hr = E_OUTOFMEMORY; - - // If we are not using a passed in IStream (and therefore created one), we - // should AddRef and pass back (if caller asked us to)... - if (!fstmIn) - { - if (SUCCEEDED(hr) && (ppstmSave) && (!(*ppstmSave))) - { - SAFE_SET_INTERFACE(*ppstmSave, pstm); - } - pstm->Release(); - } - - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_RESOURCEEXISTS: hr = STG_E_FILEALREADYEXISTS; break; - case DB_E_NOTFOUND: hr = STG_E_PATHNOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case DB_E_OUTOFSPACE: hr = STG_E_MEDIUMFULL; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - if (pcrow) - pcrow->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::TurnOffWebToolbar (protected) -// -// This function "turns off" the Web toolbar used by Office apps to -// do in-site navigation. The problem is when toggling tools off the -// bar may still be visible, so we have to explicitly turn it off if -// we want a true "no tool" state. -// -// This should *only* be called when turnning off the bars after object -// if inplace active. The call to OLECMDID_HIDETOOLBARS should hide all -// the primay toolbars, so we are just catching those attached to the -// document collection itself that are not in primary set. -// -STDMETHODIMP_(void) CDsoDocObject::TurnOffWebToolbar(BOOL fTurnedOff) -{ - IDispatch *pdisp; - VARIANT vtT[5]; - - ODS("CDsoDocObject::TurnOffWebToolbar()\n"); - - // Can't change toolbar state in print preview... - if (InPrintPreview()) return; - - if ((m_pipactive) && - (SUCCEEDED(m_pipactive->QueryInterface(IID_IDispatch, (void**)&pdisp))) && (pdisp)) - { - // Get the commandbars on the document object.... - if (SUCCEEDED(DsoDispatchInvoke(pdisp, - L"CommandBars", 0, DISPATCH_PROPERTYGET, 0, NULL, &vtT[0]))) - { - // Turn off Web toolbar... - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Web"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - - // Word 2002/2003 also displays Reviewing toolbar, so kill it too... - if (fTurnedOff && IsWordObject()) - { - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Reviewing"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - } - - VariantClear(&vtT[0]); - } - - pdisp->Release(); - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ClearMergedMenu (protected) -// -// Frees the merged menu set by host. -// -STDMETHODIMP_(void) CDsoDocObject::ClearMergedMenu() -{ - if (m_hMenuMerged) - { - int cbMenuCnt = GetMenuItemCount(m_hMenuMerged); - for (int i = cbMenuCnt; i >= 0; --i) - RemoveMenu(m_hMenuMerged, i, MF_BYPOSITION); - - DestroyMenu(m_hMenuMerged); - m_hMenuMerged = NULL; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CalcDocNameIndex (protected) -// -// Calculates position of the name portion of the full path string. -// -STDMETHODIMP_(DWORD) CDsoDocObject::CalcDocNameIndex(LPCWSTR pwszPath) -{ - DWORD cblen, idx = 0; - if ((pwszPath) && ((cblen = lstrlenW(pwszPath)) > 1)) - { - for (idx = cblen; idx > 0; --idx) - { - if (pwszPath[idx] == L'\\') - break; - } - - if ((idx) && !(++idx < cblen)) - idx = 0; - } - return idx; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnDraw (protected) -// -// Site drawing (does nothing in this version). -// -STDMETHODIMP_(void) CDsoDocObject::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - // Don't have to draw anything, object does all this because we are - // always UI active. If we allowed for multiple objects and had some - // non-UI active, we would have to do some drawing, but that will not - // happen in this sample. -} - - -//////////////////////////////////////////////////////////////////////// -// -// ActiveX Document Site Interfaces -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject IUnknown Interface Methods -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoDocObject::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoDocObject::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if (IID_IOleClientSite == riid) - { - *ppv = (IOleClientSite*)&m_xOleClientSite; - } - else if ((IID_IOleInPlaceSite == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceSite*)&m_xOleInPlaceSite; - } - else if (IID_IOleDocumentSite == riid) - { - *ppv = (IOleDocumentSite*)&m_xOleDocumentSite; - } - else if ((IID_IOleInPlaceFrame == riid) || (IID_IOleInPlaceUIWindow == riid)) - { - *ppv = (IOleInPlaceFrame*)&m_xOleInPlaceFrame; - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&m_xOleCommandTarget; - } - else if (IIDX_IAuthenticate == riid) - { - *ppv = (IAuthenticate*)&m_xAuthenticate; - } - else if (IID_IServiceProvider == riid) - { - *ppv = (IServiceProvider*)&m_xServiceProvider; - } - else if (IID_IContinueCallback == riid) - { - *ppv = (IContinueCallback*)&m_xContinueCallback; - } - else if (IID_IOlePreviewCallback == riid) - { - *ppv = (IOlePreviewCallback*)&m_xPreviewCallback; - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::AddRef(void) -{ - TRACE1("CDsoDocObject::AddRef - %d\n", m_cRef + 1); - return ++m_cRef; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::Release(void) -{ - TRACE1("CDsoDocObject::Release - %d\n", m_cRef - 1); - return --m_cRef; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleClientSite -- IOleClientSite Implementation -// -// STDMETHODIMP SaveObject(void); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhich, LPMONIKER* ppmk); -// STDMETHODIMP GetContainer(LPOLECONTAINER* ppContainer); -// STDMETHODIMP ShowObject(void); -// STDMETHODIMP OnShowWindow(BOOL fShow); -// STDMETHODIMP RequestNewObjectLayout(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleClientSite) - -STDMETHODIMP CDsoDocObject::XOleClientSite::SaveObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::SaveObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk) -{ - HRESULT hr = OLE_E_CANT_GETMONIKER; - METHOD_PROLOGUE(CDsoDocObject, OleClientSite); - - TRACE2("CDsoDocObject::XOleClientSite::GetMoniker(%d, %d)\n", dwAssign, dwWhichMoniker); - CHECK_NULL_RETURN(ppmk, E_POINTER); - *ppmk = NULL; - - // Provide moniker for object opened by moniker... - switch(dwWhichMoniker) - { - case OLEWHICHMK_OBJREL: - case OLEWHICHMK_OBJFULL: - { - if (pThis->m_pmkSourceFile) - { - *ppmk = pThis->m_pmkSourceFile; - hr = S_OK; - } - else if (dwAssign == OLEGETMONIKER_FORCEASSIGN) - { - // TODO: Should we allow frce create of moniker if we don't start with it? - } - } - break; - } - - // Need to AddRef returned value to caller on success... - if ((hr == S_OK) && (*ppmk)) - ((IUnknown*)*ppmk)->AddRef(); - - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetContainer(IOleContainer** ppContainer) -{ - ODS("CDsoDocObject::XOleClientSite::GetContainer\n"); - if (ppContainer) *ppContainer = NULL; - return E_NOINTERFACE; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::ShowObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::ShowObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::OnShowWindow(BOOL fShow) -{ - ODS("CDsoDocObject::XOleClientSite::OnShowWindow\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::RequestNewObjectLayout(void) -{ - ODS("CDsoDocObject::XOleClientSite::RequestNewObjectLayout\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceSite -- IOleInPlaceSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP CanInPlaceActivate(void); -// STDMETHODIMP OnInPlaceActivate(void); -// STDMETHODIMP OnUIActivate(void); -// STDMETHODIMP GetWindowContext(LPOLEINPLACEFRAME* ppIIPFrame, LPOLEINPLACEUIWINDOW* ppIIPUIWindow, LPRECT prcPos, LPRECT prcClip, LPOLEINPLACEFRAMEINFO pFI); -// STDMETHODIMP Scroll(SIZE sz); -// STDMETHODIMP OnUIDeactivate(BOOL fUndoable); -// STDMETHODIMP OnInPlaceDeactivate(void); -// STDMETHODIMP DiscardUndoState(void); -// STDMETHODIMP DeactivateAndUndo(void); -// STDMETHODIMP OnPosRectChange(LPCRECT prcPos); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceSite) - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindow(HWND* phwnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp(BOOL fEnterMode) -{ - ODS("CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate\n"); - - if ((!pThis->m_pole) || - FAILED(pThis->m_pole->QueryInterface(IID_IOleInPlaceObject, (void **)&(pThis->m_pipobj)))) - return E_UNEXPECTED; - - pThis->m_fObjectIPActive = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIActivate\n"); - pThis->m_fObjectUIActive = TRUE; - pThis->m_pipobj->GetWindow(&(pThis->m_hwndIPObject)); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindowContext(IOleInPlaceFrame** ppFrame, - IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindowContext\n"); - - if (ppFrame) - { SAFE_SET_INTERFACE(*ppFrame, &(pThis->m_xOleInPlaceFrame)); } - - if (ppDoc) - *ppDoc = NULL; - - if (lprcPosRect) - *lprcPosRect = pThis->m_rcViewRect; - - if (lprcClipRect) - *lprcClipRect = *lprcPosRect; - - memset(lpFrameInfo, 0, sizeof(OLEINPLACEFRAMEINFO)); - lpFrameInfo->cb = sizeof(OLEINPLACEFRAMEINFO); - lpFrameInfo->hwndFrame = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::Scroll(SIZE sz) -{ - ODS("CDsoDocObject::XOleInPlaceSite::Scroll\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIDeactivate(BOOL fUndoable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIDeactivate\n"); - - pThis->m_fObjectUIActive = FALSE; - pThis->m_xOleInPlaceFrame.SetMenu(NULL, NULL, NULL); - SetFocus(pThis->m_hwnd); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate\n"); - - pThis->m_fObjectIPActive = FALSE; - pThis->m_hwndIPObject = NULL; - SAFE_RELEASE_INTERFACE((pThis->m_pipobj)); - - pThis->m_fAttemptPptPreview = FALSE; - pThis->m_fObjectActivateComplete = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DiscardUndoState(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::DiscardUndoState\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo\n"); - if (pThis->m_pipobj) pThis->m_pipobj->InPlaceDeactivate(); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnPosRectChange(LPCRECT lprcPosRect) -{ - ODS("CDsoDocObject::XOleInPlaceSite::OnPosRectChange\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleDocumentSite -- IOleDocumentSite Implementation -// -// STDMETHODIMP ActivateMe(IOleDocumentView* pView); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleDocumentSite) - -STDMETHODIMP CDsoDocObject::XOleDocumentSite::ActivateMe(IOleDocumentView* pView) -{ - METHOD_PROLOGUE(CDsoDocObject, OleDocumentSite); - ODS("CDsoDocObject::XOleDocumentSite::ActivateMe\n"); - - HRESULT hr = E_FAIL; - IOleDocument* pmsodoc; - - // If we're passed a NULL view pointer, then try to get one from - // the document object (the object within us). - if (pView) - { - // Make sure that the view has our client site - hr = pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - pView->AddRef(); // we will be keeping the object if successful.. - } - else if (pThis->m_pole) - { - // Create a new view from the OleDocument... - if (FAILED(pThis->m_pole->QueryInterface(IID_IOleDocument, (void **)&pmsodoc))) - return E_FAIL; - - hr = pmsodoc->CreateView((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite), - pThis->m_pstmview, 0, &pView); - - pmsodoc->Release(); - } - - // If we have the view, apply view state... - if (SUCCEEDED(hr) && (pThis->m_pstmview)) - hr = pView->ApplyViewState(pThis->m_pstmview); - - // If any of the above failed, release the view and return... - if (FAILED(hr)) - { - SAFE_RELEASE_INTERFACE(pView); - return hr; - } - - // keep the view pointer... - pThis->m_pdocv = pView; - - // Get a command target (if available)... - pView->QueryInterface(IID_IOleCommandTarget, (void**)&(pThis->m_pcmdt)); - - // Make sure that the view has our client site - pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - // This sets up toolbars and menus first - if (SUCCEEDED(hr = pView->UIActivate(TRUE))) - { - // Set the window size sensitive to new toolbars - pView->SetRect(&(pThis->m_rcViewRect)); - - // Makes it all active - pView->Show(TRUE); - - pThis->m_fAppWindowActive = TRUE; - pThis->m_fObjectActivateComplete = TRUE; - - // Toogle tools off if that's what user wants... - if (!(pThis->m_fDisplayTools)) - { - pThis->m_fDisplayTools = TRUE; - pThis->OnNotifyChangeToolState(FALSE); - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceFrame -- IOleInPlaceFrame Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); -// STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); -// STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); -// STDMETHODIMP RemoveMenus(HMENU hMenu); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceFrame) - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetWindow\n"); - return pThis->m_xOleInPlaceSite.GetWindow(phWnd); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp(BOOL fEnterMode) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp\n"); - return pThis->m_xOleInPlaceSite.ContextSensitiveHelp(fEnterMode); -} - - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetBorder\n"); - CHECK_NULL_RETURN(prcBorder, E_POINTER); - - // If we don't allow Toolspace, and we are already active, give - // no space for tools (ie, hide toolabrs), otherwise give as much we can... - if (!(pThis->m_fDisplayTools) && (pThis->m_pipactive)) - SetRectEmpty(prcBorder); - else - GetClientRect(pThis->m_hwnd, prcBorder); - - TRACE_LPRECT("prcBorder", prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pBW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace\n"); - CHECK_NULL_RETURN(pBW, E_POINTER); - TRACE_LPRECT("pBW", pBW); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetBorderSpace(LPCBORDERWIDTHS pBW) -{ - RECT rc; - - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetBorderSpace\n"); - - if (pBW){TRACE_LPRECT("pBW", pBW);} - - GetClientRect(pThis->m_hwnd, &rc); - SetRectEmpty((RECT*)&(pThis->m_bwToolSpace)); - - if (pBW) - { - pThis->m_bwToolSpace = *pBW; - rc.left += pBW->left; rc.right -= pBW->right; - rc.top += pBW->top; rc.bottom -= pBW->bottom; - } - - // Save the current view RECT (space minus tools)... - pThis->m_rcViewRect = rc; - - // Update the active document (if alive)... - if (pThis->m_pdocv) - pThis->m_pdocv->SetRect(&(pThis->m_rcViewRect)); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetActiveObject\n"); - - SAFE_RELEASE_INTERFACE((pThis->m_pipactive)); - pThis->m_hwndUIActiveObj = NULL; - pThis->m_dwObjectThreadID = 0; - - if (pIIPActiveObj) - { - SAFE_SET_INTERFACE(pThis->m_pipactive, pIIPActiveObj); - pIIPActiveObj->GetWindow(&(pThis->m_hwndUIActiveObj)); - pThis->m_dwObjectThreadID = GetWindowThreadProcessId(pThis->m_hwndUIActiveObj, NULL); - } - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::InsertMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetMenu\n"); - - pThis->CheckForPPTPreviewChange(); - - // We really don't do anything here. We will merge the menu and set it - // later if the menubar is visible or user chooses dropdown from titlebar. - // All we do is stash current values or clear them depending on call. - if (hMenu) - { - pThis->m_hMenuActive = hMenu; - pThis->m_holeMenu = hOLEMenu; - pThis->m_hwndMenuObj = hWndObj; - - // Handle a special case where menu is being updated after initial set - // and not in close. In such a case we should force redraw control we - // are in so new menu changes are visible as soon as possible... - if ((!(pThis->m_fInClose)) && (pThis->m_hwndCtl)) - InvalidateRect(pThis->m_hwndCtl, NULL, FALSE); - } - else - { - pThis->m_hMenuActive = NULL; - pThis->m_holeMenu = NULL; - pThis->m_hwndMenuObj = NULL; - } - - // Regardless of call, make sure to cleanup a merged menu if - // one was previously created for the control... - pThis->ClearMergedMenu(); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RemoveMenus(HMENU hMenu) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RemoveMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetStatusText\n"); - if ((pszText) && (*pszText)){TRACE1(" Status Text = %S \n", pszText);} - return ((pThis->m_psiteCtl) ? pThis->m_psiteCtl->SetStatusText(pszText) : S_OK); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::EnableModeless(BOOL fEnable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - TRACE1("CDsoDocObject::XOleInPlaceFrame::EnableModeless(%d)\n", fEnable); - pThis->m_fObjectInModalCondition = !fEnable; - SendMessage(pThis->m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_MODAL, (LPARAM)fEnable); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator(LPMSG pMSG, WORD wID) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator\n"); - return S_FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleCommandTarget) - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - HRESULT hr = OLECMDERR_E_UNKNOWNGROUP; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText); - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - HRESULT hr = OLECMDERR_E_NOTSUPPORTED; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XServiceProvider -- IServiceProvider Implementation -// -// STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ServiceProvider) - -STDMETHODIMP CDsoDocObject::XServiceProvider::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - METHOD_PROLOGUE(CDsoDocObject, ServiceProvider); - ODS("CDsoDocObject::XServiceProvider::QueryService\n"); - - if (pThis->m_psiteCtl) // Forward to host control/container... - return pThis->m_psiteCtl->QueryService(guidService, riid, ppv); - - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XAuthenticate -- IAuthenticate Implementation -// -// STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, Authenticate) - -STDMETHODIMP CDsoDocObject::XAuthenticate::Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword) -{ - METHOD_PROLOGUE(CDsoDocObject, Authenticate); - ODS("CDsoDocObject::XAuthenticate::Authenticate\n"); - if (phwnd) *phwnd = ((pThis->m_pwszUsername) ? (HWND)INVALID_HANDLE_VALUE : pThis->m_hwndCtl); - if (pszUsername) *pszUsername = DsoConvertToLPOLESTR(pThis->m_pwszUsername); - if (pszPassword) *pszPassword = DsoConvertToLPOLESTR(pThis->m_pwszPassword); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XContinueCallback -- IContinueCallback Implementation -// -// STDMETHODIMP FContinue(void); -// STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ContinueCallback) - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinue(void) -{ // We don't support asynchronous cancel of printing, but if you wanted to add - // such functionality, this is where you could do so... - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus) -{ - TRACE3("CDsoDocObject::XContinueCallback::FContinuePrinting(%d, %d, %S)\n", cPagesPrinted, nCurrentPage, pwszPrintStatus); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XPreviewCallback -- IPreviewCallback Implementation -// -// STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, PreviewCallback) - -STDMETHODIMP CDsoDocObject::XPreviewCallback::Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) -{ - METHOD_PROLOGUE(CDsoDocObject, PreviewCallback); - TRACE3("CDsoDocObject::XPreviewCallback::Notify(%d, %d, %S)\n", wStatus, nLastPage, pwszPreviewStatus); - - // The only notification we act on is when the preview is done... - if ((wStatus == NOTIFY_FORCECLOSEPREVIEW) || - (wStatus == NOTIFY_FINISHED) || - (wStatus == NOTIFY_UNABLETOPREVIEW)) - pThis->ExitPrintPreview(FALSE); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrGetDataFromObject -// -// Function designed to give indirect access to the content in an existing -// loaded object, in a clipboard format specified in vtType. In other words, -// a call to HrGetDataFromObject("Rich Text Format", [out] array) will get the -// content of the current document in RTF format and return it as a byte array -// vector in VB6-safe safearray. This array can be converted to a string for -// display or saved to database (etc.) without saving to disk. -// -// For this to work, the object embedded must support IDataObject and the clip -// format that you request. -// -STDMETHODIMP CDsoDocObject::HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtOutput == NULL) || PARAM_IS_MISSING(pvtOutput)) - return E_INVALIDARG; - - VariantClear(pvtOutput); - - // We take the name and find the right clipformat for the data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // We must be able to get IDataObject for the transfer to work... - if ((m_pole == NULL) || - (FAILED(m_pole->GetClipboardData(0, &pdo)) && - FAILED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)))) - return OLE_E_CANT_GETMONIKER; - - ASSERT(pdo); CHECK_NULL_RETURN(pdo, E_UNEXPECTED); - - // We are going to ask for HGLOBAL data format only. This is majority - // of the non-binary formats, which should be sufficient here... - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - - // Ask the object for the data... - if (SUCCEEDED(hr = pdo->QueryGetData(&ftc)) && - SUCCEEDED(hr = pdo->GetData(&ftc, &stgm))) - { - ULONG ulSize; - if ((stgm.tymed == TYMED_HGLOBAL) && (stgm.hGlobal) && - (ulSize = GlobalSize(stgm.hGlobal))) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if (lpv) - { - // We will return data as safearray vector of VB6 Byte type... - psa = SafeArrayCreateVector(VT_UI1, 1, ulSize); - if (psa) - { - pvtOutput->vt = VT_ARRAY|VT_UI1; - pvtOutput->parray = psa; - prawdata = NULL; - - if (SUCCEEDED(SafeArrayAccessData(psa, &prawdata))) - { - memcpy(prawdata, lpv, ulSize); - SafeArrayUnaccessData(psa); - } - } - else hr = E_OUTOFMEMORY; - - GlobalUnlock(stgm.hGlobal); - } - else hr = E_ACCESSDENIED; - } - else hr = E_FAIL; - - ReleaseStgMedium(&stgm); - } - - pdo->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrSetDataInObject -// -// Function to take format type and either string or VB6-safe byte array -// as data and set it into the current object (that is, it will replace the -// current document content with this content). The fMbcsString flag determines -// if BSTR passed should be converted to MBCS format before being set. For example, -// if you previously got data as RTF (MBCS), then converted to Unicode BSTR and -// passed it back, it would need to be converted back to MBCS for the set to work. -// If the string data is binary, pass FALSE. If data is array, the param is ignored. -// -// The function sets the data using IDataObject::SetData. Note that some objects -// will allow you to get a format but not set it, so this may not work for a previously -// acquired data type. It is up to the host DocObject server, so test carefully before -// depending on this functionality. -// -STDMETHODIMP CDsoDocObject::HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - ULONG ulSize; - BOOL fIsArrayData = FALSE; - BOOL fCleanupString = FALSE; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtInput == NULL) || PARAM_IS_MISSING(pvtInput)) - return E_INVALIDARG; - - // Find the clipboard format for the given data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // Depending on the type of data passed, and if we need to do any Unicode-to-MBCS - // conversion for the caller, set up the data size and data pointer we will use - // to create the global memory object we'll pass to the doc object server... - prawdata = LPWSTR_FROM_VARIANT(*pvtInput); - if (prawdata) - { - if (fMbcsString) - { - prawdata = (void*)DsoConvertToMBCS((BSTR)prawdata); - CHECK_NULL_RETURN(prawdata, E_OUTOFMEMORY); - fCleanupString = TRUE; - ulSize = lstrlen((LPSTR)prawdata); - } - else - ulSize = SysStringByteLen((BSTR)prawdata); - } - else - { - psa = PSARRAY_FROM_VARIANT(*pvtInput); - if (psa) - { - LONG lb, ub, elSize; - - if ((SafeArrayGetDim(psa) > 1) || - FAILED(SafeArrayGetLBound(psa, 1, &lb)) || (lb < 0) || - FAILED(SafeArrayGetUBound(psa, 1, &ub)) || (ub < lb) || - ((elSize = SafeArrayGetElemsize(psa)) < 1)) - return E_INVALIDARG; - - ulSize = (((ub + 1) - lb) * elSize); - fIsArrayData = TRUE; - if (FAILED(SafeArrayAccessData(psa, &prawdata))) - return E_ACCESSDENIED; - } - - CHECK_NULL_RETURN(prawdata, E_INVALIDARG); - } - - // We must have a server and it must support IDataObject... - if ((m_pole) && SUCCEEDED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)) && (pdo)) - { - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - stgm.hGlobal = GlobalAlloc(GPTR, ulSize); - if (stgm.hGlobal) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if ((lpv) && (ulSize)) - { - // Copy the data into transfer object... - memcpy(lpv, prawdata, ulSize); - GlobalUnlock(stgm.hGlobal); - - // Do the actual SetData call to transfer the data... - hr = pdo->SetData(&ftc, &stgm, TRUE); - } - else hr = E_UNEXPECTED; - - if (FAILED(hr)) - ReleaseStgMedium(&stgm); - } - else hr = E_OUTOFMEMORY; - - pdo->Release(); - } - else hr = OLE_E_CANT_GETMONIKER; - - if (fIsArrayData) - SafeArrayUnaccessData(psa); - - if (fCleanupString) - DsoMemFree(prawdata); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FrameWindowProc -// -// Site window procedure. Not much to do here except forward focus. -// -STDMETHODIMP_(LRESULT) CDsoDocObject::FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoDocObject* pbndr = (CDsoDocObject*)GetWindowLong(hwnd, GWL_USERDATA); - if (pbndr) - { - switch (msg) - { - case WM_PAINT: - { - PAINTSTRUCT ps; - RECT rc; GetClientRect(hwnd, &rc); - BeginPaint(hwnd, &ps); - pbndr->OnDraw(DVASPECT_CONTENT, ps.hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - return 0; - - case WM_NCDESTROY: - SetWindowLong(hwnd, GWL_USERDATA, 0); - pbndr->m_hwnd = NULL; - break; - - case WM_SETFOCUS: - if (pbndr->m_hwndUIActiveObj) - SetFocus(pbndr->m_hwndUIActiveObj); - return 0; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if ((pbndr->m_psiteCtl) && (pbndr->m_psiteCtl->SysMenuCommand((UINT)lParam) == S_OK)) - return 0; - } - break; - - case WM_ERASEBKGND: - return 1; - } - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - - diff --git a/PROMS/DSOFramer/Source2005/dsofdocobj.h b/PROMS/DSOFramer/Source2005/dsofdocobj.h deleted file mode 100644 index 504ddf05..00000000 --- a/PROMS/DSOFramer/Source2005/dsofdocobj.h +++ /dev/null @@ -1,350 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.H - * - * DSOFramer: OLE DocObject Site component (used by the control) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_DSOFDOCOBJ_H -#define DS_DSOFDOCOBJ_H - -//////////////////////////////////////////////////////////////////// -// Declarations for Interfaces used in DocObject Containment -// -#include // Standard DocObjects (common to all AxDocs) -#include "ipprevw.h" // PrintPreview (for select Office apps) -#include "rbbinder.h" // Internet Publishing (for Web Folder write access) - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 97-2003 Document Object GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOC, 0x00020906, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLS, 0x00020820, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_CHART_XLS, 0x00020821, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPT, 0x64818D10, 0x4F9B, 0x11CF, 0x86, 0xEA, 0x00, 0xAA, 0x00, 0xB9, 0x29, 0xE8); -DEFINE_GUID(CLSID_VISIO_DRAWING_VSD, 0x00021A13, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PROJECT_DOCUMENT_MPP, 0x74B78F3A, 0xC8C8, 0x11D1, 0xBE, 0x11, 0x00, 0xC0, 0x4F, 0xB6, 0xFA, 0xF1); -DEFINE_GUID(CLSID_MSHTML_DOCUMENT, 0x25336920, 0x03F9, 0x11CF, 0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13); - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 2007 Document GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCX, 0xF4754C9B, 0x64F5, 0x4B40, 0x8A, 0xF4, 0x67, 0x97, 0x32, 0xAC, 0x06, 0x07); -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCM, 0x18A06B6B, 0x2F3F, 0x4E2B, 0xA6, 0x11, 0x52, 0xBE, 0x63, 0x1B, 0x2D, 0x22); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSX, 0x00020830, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSM, 0x00020832, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSB, 0x00020833, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTX, 0xCF4F55F4, 0x8F87, 0x4D47, 0x80, 0xBB, 0x58, 0x08, 0x16, 0x4B, 0xB3, 0xF8); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTM, 0xDC020317, 0xE6E2, 0x4A62, 0xB9, 0xFA, 0xB3, 0xEF, 0xE1, 0x66, 0x26, 0xF4); - -//////////////////////////////////////////////////////////////////// -// IDsoDocObjectSite -- {444CA1F7-B405-4002-95C3-A455BC9F4F55} -// -// Implemented by control host for callbacks. Required interface. -// -interface IDsoDocObjectSite : public IServiceProvider -{ - STDMETHOD(GetWindow)(HWND* phWnd) PURE; - STDMETHOD(GetBorder)(LPRECT prcBorder) PURE; - STDMETHOD(SetStatusText)(LPCOLESTR pszText) PURE; - STDMETHOD(GetHostName)(LPWSTR *ppwszHostName) PURE; - STDMETHOD(SysMenuCommand)(UINT uiCharCode) PURE; -}; -DEFINE_GUID(IID_IDsoDocObjectSite, 0x444CA1F7, 0xB405, 0x4002, 0x95, 0xC3, 0xA4, 0x55, 0xBC, 0x9F, 0x4F, 0x55); - - -//////////////////////////////////////////////////////////////////// -// CDsoDocObject -- ActiveDocument Container Site Object -// -// The CDsoDocObject object handles all the DocObject embedding for the -// control and os fairly self-contained. Like the control it has its -// own window, but it merely acts as a parent for the embedded object -// window(s) which it activates. -// -// CDsoDocObject works by taking a file (or automation object) and -// copying out the OLE storage used for its persistent data. It then -// creates a new embedding based on the data. If a storage is not -// avaiable, it will attempt to oad the file directly, but the results -// are less predictable using this manner since DocObjects are embeddings -// and not links and this component has limited support for links. As a -// result, we will attempt to keep our own storage copy in most cases. -// -// You should note that this approach is different than one taken by the -// web browser control, which is basically a link container which will -// try to embed (ip activate) if allowed, but if not it opens the file -// externally and keeps the link. If CDsoDocObject cannot embed the object, -// it returns an error. It will not open the object external. -// -// Like the control, this object also uses nested classes for the OLE -// interfaces used in the embedding. They are easier to track and easier -// to debug if a specific interface is over/under released. Again this was -// a design decision to make the sample easier to break apart, but not required. -// -// Because the object is not tied to the top-level window, it constructs -// the OLE merged menu as a set of popup menus which the control then displays -// in whatever form it wants. You would need to customize this if you used -// the control in a host and wanted the menus to merge with the actual host -// menu bar (on the top-level window or form). -// -class CDsoDocObject : public IUnknown -{ -public: - CDsoDocObject(); - ~CDsoDocObject(); - - // Static Create Method (Host Provides Site Interface) - static STDMETHODIMP_(CDsoDocObject*) CreateInstance(IDsoDocObjectSite* phost); - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IOleClientSite Implementation - BEGIN_INTERFACE_PART(OleClientSite, IOleClientSite) - STDMETHODIMP SaveObject(void); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk); - STDMETHODIMP GetContainer(IOleContainer** ppContainer); - STDMETHODIMP ShowObject(void); - STDMETHODIMP OnShowWindow(BOOL fShow); - STDMETHODIMP RequestNewObjectLayout(void); - END_INTERFACE_PART(OleClientSite) - - // IOleInPlaceSite Implementation - BEGIN_INTERFACE_PART(OleInPlaceSite, IOleInPlaceSite) - STDMETHODIMP GetWindow(HWND* phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP CanInPlaceActivate(void); - STDMETHODIMP OnInPlaceActivate(void); - STDMETHODIMP OnUIActivate(void); - STDMETHODIMP GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo); - STDMETHODIMP Scroll(SIZE sz); - STDMETHODIMP OnUIDeactivate(BOOL fUndoable); - STDMETHODIMP OnInPlaceDeactivate(void); - STDMETHODIMP DiscardUndoState(void); - STDMETHODIMP DeactivateAndUndo(void); - STDMETHODIMP OnPosRectChange(LPCRECT lprcPosRect); - END_INTERFACE_PART(OleInPlaceSite) - - // IOleDocumentSite Implementation - BEGIN_INTERFACE_PART(OleDocumentSite, IOleDocumentSite) - STDMETHODIMP ActivateMe(IOleDocumentView* pView); - END_INTERFACE_PART(OleDocumentSite) - - // IOleInPlaceFrame Implementation - BEGIN_INTERFACE_PART(OleInPlaceFrame, IOleInPlaceFrame) - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); - STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); - STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); - STDMETHODIMP RemoveMenus(HMENU hMenu); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - STDMETHODIMP EnableModeless(BOOL fEnable); - STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); - END_INTERFACE_PART(OleInPlaceFrame) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // IServiceProvider Implementation - BEGIN_INTERFACE_PART(ServiceProvider , IServiceProvider) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - END_INTERFACE_PART(ServiceProvider) - - // IAuthenticate Implementation - BEGIN_INTERFACE_PART(Authenticate , IAuthenticate) - STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); - END_INTERFACE_PART(Authenticate) - - // IContinueCallback Implementation - BEGIN_INTERFACE_PART(ContinueCallback , IContinueCallback) - STDMETHODIMP FContinue(void); - STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); - END_INTERFACE_PART(ContinueCallback) - - // IOlePreviewCallback Implementation - BEGIN_INTERFACE_PART(PreviewCallback , IOlePreviewCallback) - STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); - END_INTERFACE_PART(PreviewCallback) - - // DocObject Class Methods IDsoDocObjectSite - STDMETHODIMP InitializeNewInstance(IDsoDocObjectSite* phost); - STDMETHODIMP CreateDocObject(REFCLSID rclsid); - STDMETHODIMP CreateDocObject(IStorage *pstg); - STDMETHODIMP CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts); - STDMETHODIMP CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts); - STDMETHODIMP IPActivateView(); - STDMETHODIMP IPDeactivateView(); - STDMETHODIMP UIActivateView(); - STDMETHODIMP UIDeactivateView(); - STDMETHODIMP_(BOOL) IsDirty(); - STDMETHODIMP Save(); - STDMETHODIMP SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile); - STDMETHODIMP SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser); - STDMETHODIMP StartPrintPreview(); - STDMETHODIMP ExitPrintPreview(BOOL fForceExit); - STDMETHODIMP DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP Close(); - - // Control should notify us on these conditions (so we can pass to IP object)... - STDMETHODIMP_(void) OnNotifySizeChange(LPRECT prc); - STDMETHODIMP_(void) OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnNotifyPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnNotifyChangeToolState(BOOL fShowTools); - STDMETHODIMP_(void) OnNotifyControlFocus(BOOL fGotFocus); - - STDMETHODIMP HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput); - STDMETHODIMP HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString); - - STDMETHODIMP_(BOOL) GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt); - - // Inline accessors for control to get IP object info... - inline IOleInPlaceActiveObject* GetActiveObject(){return m_pipactive;} - inline IOleObject* GetOleObject(){return m_pole;} - inline HWND GetDocWindow(){return m_hwnd;} - inline HWND GetActiveWindow(){return m_hwndUIActiveObj;} - inline BOOL IsReadOnly(){return m_fOpenReadOnly;} - inline BOOL InPrintPreview(){return ((m_pprtprv != NULL) || (m_fInPptSlideShow));} - inline HWND GetMenuHWND(){return m_hwndMenuObj;} - inline HMENU GetActiveMenu(){return m_hMenuActive;} - inline HMENU GetMergedMenu(){return m_hMenuMerged;} - inline void SetMergedMenu(HMENU h){m_hMenuMerged = h;} - inline LPCWSTR GetSourceName(){return ((m_pwszWebResource) ? m_pwszWebResource : m_pwszSourceFile);} - inline LPCWSTR GetSourceDocName(){return ((m_pwszSourceFile) ? &m_pwszSourceFile[m_idxSourceName] : NULL);} - inline CLSID* GetServerCLSID(){return &m_clsidObject;} - inline BOOL IsIPActive(){return (m_pipobj != NULL);} - - BOOL IsWordObject() - {return ((m_clsidObject == CLSID_WORD_DOCUMENT_DOC) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCX) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCM)); - } - BOOL IsExcelObject() - {return ((m_clsidObject == CLSID_EXCEL_WORKBOOK_XLS) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSX) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSM) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSB) || - (m_clsidObject == CLSID_EXCEL_CHART_XLS)); - } - BOOL IsPPTObject() - {return ((m_clsidObject == CLSID_PPT_PRESENTATION_PPT) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTX) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTM)); - } - BOOL IsVisioObject() - {return (m_clsidObject == CLSID_VISIO_DRAWING_VSD);} - - STDMETHODIMP SetRunningServerLock(BOOL fLock); - -protected: - // Internal helper methods... - STDMETHODIMP InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole); - STDMETHODIMP CreateObjectStorage(REFCLSID rclsid); - STDMETHODIMP SaveObjectStorage(); - STDMETHODIMP SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock); - STDMETHODIMP SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock); - STDMETHODIMP ValidateDocObjectServer(REFCLSID rclsid); - STDMETHODIMP_(BOOL) ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - - STDMETHODIMP EnsureOleServerRunning(BOOL fLockRunning); - STDMETHODIMP_(void) FreeRunningLock(); - STDMETHODIMP_(void) TurnOffWebToolbar(BOOL fTurnedOff); - STDMETHODIMP_(void) ClearMergedMenu(); - STDMETHODIMP_(DWORD) CalcDocNameIndex(LPCWSTR pwszPath); - STDMETHODIMP_(void) CheckForPPTPreviewChange(); - - // These functions allow the component to access files in a Web Folder for - // write access using the Microsoft Provider for Internet Publishing (MSDAIPP), - // which is installed by Office and comes standard in Windows 2000/ME/XP/2003. The - // provider is not required to use the component, only if you wish to save to - // an FPSE or DAV Web Folder (URL). - STDMETHODIMP_(IUnknown*) CreateIPPBindResource(); - STDMETHODIMP IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave); - STDMETHODIMP IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile); - - static STDMETHODIMP_(LRESULT) FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // The private class variables... -private: - ULONG m_cRef; // Reference count - HWND m_hwnd; // our window - HWND m_hwndCtl; // The control's window - RECT m_rcViewRect; // Viewable area (set by host) - IDsoDocObjectSite *m_psiteCtl; // The control's site interface - IOleCommandTarget *m_pcmdCtl; // IOCT of host (for frame msgs) - - LPWSTR m_pwszHostName; // Ole Host Name for container - LPWSTR m_pwszSourceFile; // Path to Source File (on Open) - IMoniker *m_pmkSourceFile; // Moniker to original source file - IBindCtx *m_pbctxSourceFile; // Bind context used to original source file - IStorage *m_pstgSourceFile; // Original File Storage (if open/save file) - DWORD m_idxSourceName; // Index to doc name in m_pwszSourceFile - - CLSID m_clsidObject; // CLSID of the embedded object - IStorage *m_pstgroot; // Root temp storage - IStorage *m_pstgfile; // In-memory file storage - IStream *m_pstmview; // In-memory view info stream - - LPWSTR m_pwszWebResource; // The full URL to the web resource - IStream *m_pstmWebResource; // Original Download Stream (if open/save URL) - IUnknown *m_punkIPPResource; // MSDAIPP provider resource (for URL authoring) - LPWSTR m_pwszUsername; // Username and password used by MSDAIPP - LPWSTR m_pwszPassword; // for Authentication (see IAuthenticate) - - IOleObject *m_pole; // Embedded OLE Object (OLE) - IOleInPlaceObject *m_pipobj; // The IP object methods (OLE) - IOleInPlaceActiveObject *m_pipactive; // The UI Active object methods (OLE) - IOleDocumentView *m_pdocv; // MSO Document View (DocObj) - IOleCommandTarget *m_pcmdt; // MSO Command Target (DocObj) - IOleInplacePrintPreview *m_pprtprv; // MSO Print Preview (DocObj) - - HMENU m_hMenuActive; // The menu supplied by embedded object - HMENU m_hMenuMerged; // The merged menu (set by control host) - HOLEMENU m_holeMenu; // The OLE Menu Descriptor - HWND m_hwndMenuObj; // The window for menu commands - HWND m_hwndIPObject; // IP active object window - HWND m_hwndUIActiveObj; // UI Active object window - DWORD m_dwObjectThreadID; // Thread Id of UI server - BORDERWIDTHS m_bwToolSpace; // Toolspace... - - // Bitflags (state info)... - unsigned int m_fDisplayTools:1; - unsigned int m_fDisconnectOnQuit:1; - unsigned int m_fAppWindowActive:1; - unsigned int m_fOpenReadOnly:1; - unsigned int m_fObjectInModalCondition:1; - unsigned int m_fObjectIPActive:1; - unsigned int m_fObjectUIActive:1; - unsigned int m_fObjectActivateComplete:1; - unsigned int m_fLockedServerRunning:1; - unsigned int m_fLoadedFromAuto:1; - unsigned int m_fInClose:1; - unsigned int m_fAttemptPptPreview:1; - unsigned int m_fInPptSlideShow:1; - -}; - - -#endif //DS_DSOFDOCOBJ_H \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsofprint.cpp b/PROMS/DSOFramer/Source2005/dsofprint.cpp deleted file mode 100644 index 280cefa2..00000000 --- a/PROMS/DSOFramer/Source2005/dsofprint.cpp +++ /dev/null @@ -1,419 +0,0 @@ -/*************************************************************************** - * DSOFPRINT.CPP - * - * CDsoDocObject: Print Code for CDsoDocObject object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::_PrintOutOld -// -// Prints the current object by calling IOleCommandTarget for Print. -// -STDMETHODIMP CDsoFramerControl::_PrintOutOld(VARIANT PromptToSelectPrinter) -{ - DWORD dwOption = BOOL_FROM_VARIANT(PromptToSelectPrinter, FALSE) - ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT; - - TRACE1("CDsoFramerControl::_PrintOutOld(%d)\n", dwOption); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->DoOleCommand(OLECMDID_PRINT, dwOption, NULL, NULL); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintOut -// -// Prints document using either IPrint or IOleCommandTarget, depending -// on parameters passed. This offers a bit more control over printing if -// the doc object server supports IPrint interface. -// -STDMETHODIMP CDsoFramerControl::PrintOut(VARIANT PromptUser, VARIANT PrinterName, - VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile) -{ - HRESULT hr; - BOOL fPromptUser = BOOL_FROM_VARIANT(PromptUser, FALSE); - LPWSTR pwszPrinter = LPWSTR_FROM_VARIANT(PrinterName); - LPWSTR pwszOutput = LPWSTR_FROM_VARIANT(OutputFile); - LONG lCopies = LONG_FROM_VARIANT(Copies, 1); - LONG lFrom = LONG_FROM_VARIANT(FromPage, 0); - LONG lTo = LONG_FROM_VARIANT(ToPage, 0); - - TRACE3("CDsoFramerControl::PrintOut(%d, %S, %d)\n", fPromptUser, pwszPrinter, lCopies); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // First we do validation of all parameters passed to the function... - if ((pwszPrinter) && (*pwszPrinter == L'\0')) - return E_INVALIDARG; - - if ((pwszOutput) && (*pwszOutput == L'\0')) - return E_INVALIDARG; - - if ((lCopies < 1) || (lCopies > 200)) - return E_INVALIDARG; - - if (((lFrom != 0) || (lTo != 0)) && ((lFrom < 1) || (lTo < lFrom))) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If no printer name was provided, we can print to the default device - // using IOleCommandTarget with OLECMDID_PRINT... - if (pwszPrinter == NULL) - return _PrintOutOld(PromptUser); - - // Ask the embedded document to print itself to specific printer... - hr = m_pDocObjFrame->PrintDocument(pwszPrinter, pwszOutput, (UINT)lCopies, - (UINT)lFrom, (UINT)lTo, fPromptUser); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreview -// -// Asks embedded object to attempt a print preview (only Office docs do this). -// -STDMETHODIMP CDsoFramerControl::PrintPreview() -{ - HRESULT hr; - ODS("CDsoFramerControl::PrintPreview\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Try to set object into print preview mode... - hr = m_pDocObjFrame->StartPrintPreview(); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreviewExit -// -// Closes an active preview. -// -STDMETHODIMP CDsoFramerControl::PrintPreviewExit() -{ - ODS("CDsoFramerControl::PrintPreviewExit\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Try to set object out of print preview mode... - if (m_pDocObjFrame->InPrintPreview()) - m_pDocObjFrame->ExitPrintPreview(TRUE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::PrintDocument -// -// We can use the IPrint interface for an ActiveX Document object to -// selectively print object to a given printer. -// -STDMETHODIMP CDsoDocObject::PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser) -{ - HRESULT hr; - IPrint *print; - HANDLE hPrint; - DVTARGETDEVICE* ptd = NULL; - - ODS("CDsoDocObject::PrintDocument\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // First thing we need to do is ask object for IPrint. If it does not - // support it, we cannot continue. It is up to DocObj if this is allowed... - hr = m_pole->QueryInterface(IID_IPrint, (void**)&print); - RETURN_ON_FAILURE(hr); - - // Now setup printer settings into DEVMODE for IPrint. Open printer - // settings and gather default DEVMODE... - if (FOpenPrinter(pwszPrinter, &hPrint)) - { - LPDEVMODEW pdevMode = NULL; - LPWSTR pwszDefProcessor = NULL; - LPWSTR pwszDefDriver = NULL; - LPWSTR pwszDefPort = NULL; - LPWSTR pwszPort; - DWORD cbDevModeSize; - - if (FGetPrinterSettings(hPrint, &pwszDefProcessor, - &pwszDefDriver, &pwszDefPort, &pdevMode, &cbDevModeSize) && (pdevMode)) - { - DWORD cbPrintName, cbDeviceName, cbOutputName; - DWORD cbDVTargetSize; - - pdevMode->dmFields |= DM_COPIES; - pdevMode->dmCopies = (WORD)((cCopies) ? cCopies : 1); - - pwszPort = ((pwszOutput) ? (LPWSTR)pwszOutput : pwszDefPort); - - // We calculate the size we will need for the TARGETDEVICE structure... - cbPrintName = ((lstrlenW(pwszDefProcessor) + 1) * sizeof(WCHAR)); - cbDeviceName = ((lstrlenW(pwszDefDriver) + 1) * sizeof(WCHAR)); - cbOutputName = ((lstrlenW(pwszPort) + 1) * sizeof(WCHAR)); - - cbDVTargetSize = sizeof(DWORD) + sizeof(DEVNAMES) + cbPrintName + - cbDeviceName + cbOutputName + cbDevModeSize; - - // Allocate new target device using COM Task Allocator... - ptd = (DVTARGETDEVICE*)CoTaskMemAlloc(cbDVTargetSize); - if (ptd) - { - // Copy all the data in the DVT... - DWORD dwOffset = sizeof(DWORD) + sizeof(DEVNAMES); - ptd->tdSize = cbDVTargetSize; - - ptd->tdDriverNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefProcessor, cbPrintName); - dwOffset += cbPrintName; - - ptd->tdDeviceNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefDriver, cbDeviceName); - dwOffset += cbDeviceName; - - ptd->tdPortNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszPort, cbOutputName); - dwOffset += cbOutputName; - - ptd->tdExtDevmodeOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pdevMode, cbDevModeSize); - dwOffset += cbDevModeSize; - - ASSERT(dwOffset == cbDVTargetSize); - } - else hr = E_OUTOFMEMORY; - - // We're done with the devmode... - DsoMemFree(pdevMode); - } - else hr = E_WIN32_LASTERROR; - - SAFE_FREESTRING(pwszDefPort); - SAFE_FREESTRING(pwszDefDriver); - SAFE_FREESTRING(pwszDefProcessor); - ClosePrinter(hPrint); - } - else hr = E_WIN32_LASTERROR; - - // If we were successful in getting TARGETDEVICE struct, provide the page range - // for the print job and ask docobj server to print it... - if (SUCCEEDED(hr)) - { - PAGESET *ppgset; - DWORD cbPgRngSize = sizeof(PAGESET) + sizeof(PAGERANGE); - LONG cPages, cLastPage; - DWORD grfPrintFlags; - - // Setup the page range to print... - if ((ppgset = (PAGESET*)CoTaskMemAlloc(cbPgRngSize)) != NULL) - { - ppgset->cbStruct = cbPgRngSize; - ppgset->cPageRange = 1; - ppgset->fOddPages = TRUE; - ppgset->fEvenPages = TRUE; - ppgset->cPageRange = 1; - ppgset->rgPages[0].nFromPage = ((nFrom) ? nFrom : 1); - ppgset->rgPages[0].nToPage = ((nTo) ? nTo : PAGESET_TOLASTPAGE); - - // Give indication we are waiting (on the print)... - HCURSOR hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Setup the initial page number (optional)... - print->SetInitialPageNum(ppgset->rgPages[0].nFromPage); - - grfPrintFlags = (PRINTFLAG_MAYBOTHERUSER | PRINTFLAG_RECOMPOSETODEVICE); - if (fPromptUser) grfPrintFlags |= PRINTFLAG_PROMPTUSER; - if (pwszOutput) grfPrintFlags |= PRINTFLAG_PRINTTOFILE; - - // Now ask server to print it using settings passed... - hr = print->Print(grfPrintFlags, &ptd, &ppgset, NULL, (IContinueCallback*)&m_xContinueCallback, - ppgset->rgPages[0].nFromPage, &cPages, &cLastPage); - - SEH_EXCEPT(hr) - - SetCursor(hCur); - - if (ppgset) - CoTaskMemFree(ppgset); - } - else hr = E_OUTOFMEMORY; - } - - // We are done... - if (ptd) CoTaskMemFree(ptd); - print->Release(); - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::StartPrintPreview -// -// Ask embedded object to go into print preview (if supportted). -// -STDMETHODIMP CDsoDocObject::StartPrintPreview() -{ - HRESULT hr; - IOleInplacePrintPreview *prev; - HCURSOR hCur; - - ODS("CDsoDocObject::StartPrintPreview\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // No need to do anything if already in preview... - if (InPrintPreview()) return S_FALSE; - - // Otherwise, ask document server if it supports preview... - hr = m_pole->QueryInterface(IID_IOleInplacePrintPreview, (void**)&prev); - if (SUCCEEDED(hr)) - { - // Tell user we waiting (switch to preview can be slow for very large docs)... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - // If it does, make sure it can go into preview mode... - hr = prev->QueryStatus(); - if (SUCCEEDED(hr)) - { - SEH_TRY - - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - - // We will allow application to bother user and switch printers... - hr = prev->StartPrintPreview( - (PREVIEWFLAG_MAYBOTHERUSER | PREVIEWFLAG_PROMPTUSER | PREVIEWFLAG_USERMAYCHANGEPRINTER), - NULL, (IOlePreviewCallback*)&m_xPreviewCallback, 1); - - SEH_EXCEPT(hr) - - // If the call succeeds, we keep hold of interface to close preview later - if (SUCCEEDED(hr)) - { - SAFE_SET_INTERFACE(m_pprtprv, prev); - } - else - { // Otherwise, notify the control that preview failed... - if (m_hwndCtl) - PostMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - } - } - - SetCursor(hCur); - prev->Release(); - } - else if (IsPPTObject() && (m_hwndUIActiveObj)) - { - // PowerPoint doesn't have print preview, but it does have slide show mode, so we can use this to - // toggle the viewing into slideshow... - if (PostMessage(m_hwndUIActiveObj, WM_KEYDOWN, VK_F5, 0x00000001) && - PostMessage(m_hwndUIActiveObj, WM_KEYUP, VK_F5, 0xC0000001)) - { - hr = S_OK; m_fAttemptPptPreview = TRUE; - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ExitPrintPreview -// -// Drop out of print preview and restore items as needed. -// -STDMETHODIMP CDsoDocObject::ExitPrintPreview(BOOL fForceExit) -{ - TRACE1("CDsoDocObject::ExitPrintPreview(fForceExit=%d)\n", (DWORD)fForceExit); - - // Need to be in preview to run this function... - if (!InPrintPreview()) return S_FALSE; - - // If the user closes the app or otherwise terminates the preview, we need - // to notify the ActiveDocument server to leave preview mode... - if (m_pprtprv) - { - if (fForceExit) // Tell docobj we want to end preview... - { - HRESULT hr = m_pprtprv->EndPrintPreview(TRUE); - ASSERT(SUCCEEDED(hr)); (void)hr; - } - } - else if (m_fInPptSlideShow) - { - if ((fForceExit) && (m_hwndUIActiveObj)) - { - // HACK: When it goes into slideshow, PPT 2007 changes the active window but - // doesn't call SetActiveObject to update us with new object and window handle. - // If we post VK_ESCAPE to the window handle we have, it can fail. It needs to go - // to the slideshow window that PPT failed to give us handle for. As workaround, - // setting focus to the UI window we have handle for will automatically forward - // to the right window, so we can use that trick to get the right window and - // make the call in a way that that should succeed regardless of PPT version... - SetFocus(m_hwndUIActiveObj); - PostMessage(GetFocus(), WM_KEYDOWN, VK_ESCAPE, 0x00000001); - PostMessage(GetFocus(), WM_KEYUP, VK_ESCAPE, 0xC0000001); - } - m_fAttemptPptPreview = FALSE; - m_fInPptSlideShow = FALSE; - } - - if (m_hwndCtl) // Notify the control that preview ended... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - - // Free our reference to preview interface... - SAFE_RELEASE_INTERFACE(m_pprtprv); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CheckForPPTPreviewChange -// -// Used to update control when PPT goes in/out of slideshow asynchronously. -// -STDMETHODIMP_(void) CDsoDocObject::CheckForPPTPreviewChange() -{ - if (m_fInPptSlideShow) - { - ExitPrintPreview(FALSE); - } - else if (m_fAttemptPptPreview) - { - m_fInPptSlideShow = TRUE; - m_fAttemptPptPreview = FALSE; - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - } -} \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.def b/PROMS/DSOFramer/Source2005/dsoframer.def deleted file mode 100644 index cb32e274..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.def +++ /dev/null @@ -1,6 +0,0 @@ -LIBRARY dsoframer.ocx -EXPORTS - DllGetClassObject PRIVATE - DllCanUnloadNow PRIVATE - DllRegisterServer PRIVATE - DllUnregisterServer PRIVATE \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.dsp b/PROMS/DSOFramer/Source2005/dsoframer.dsp deleted file mode 100644 index 0a9d2843..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.dsp +++ /dev/null @@ -1,205 +0,0 @@ -# Microsoft Developer Studio Project File - Name="dsoframer" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=dsoframer - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "dsoframer.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "dsoframer.mak" CFG="dsoframer - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "dsoframer - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "dsoframer - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "dsoframer - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /G5 /Gz /Zp4 /W3 /Zi /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib oledlg.lib winspool.lib shell32.lib urlmon.lib /nologo /base:"0x22000000" /version:1.2 /subsystem:windows /dll /map /debug /machine:I386 /out:"Release/dsoframer.ocx" /pdbtype:con /opt:nowin98 /merge:.rdata=.text -# SUBTRACT LINK32 /pdb:none -# Begin Custom Build - Performing registration -OutDir=.\Release -TargetPath=.\Release\dsoframer.ocx -InputPath=.\Release\dsoframer.ocx -SOURCE="$(InputPath)" - -"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - regsvr32 /s /c "$(TargetPath)" - echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" - -# End Custom Build - -!ELSEIF "$(CFG)" == "dsoframer - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /G6 /Zp4 /W3 /Gm /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib oledlg.lib winspool.lib shell32.lib urlmon.lib /nologo /base:"0x22000000" /version:1.2 /subsystem:windows /dll /map /debug /machine:I386 /out:"Debug/dsoframer.ocx" /pdbtype:con -# SUBTRACT LINK32 /pdb:none -# Begin Custom Build - Performing registration -OutDir=.\Debug -TargetPath=.\Debug\dsoframer.ocx -InputPath=.\Debug\dsoframer.ocx -SOURCE="$(InputPath)" - -"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - regsvr32 /s /c "$(TargetPath)" - echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" - -# End Custom Build - -!ENDIF - -# Begin Target - -# Name "dsoframer - Win32 Release" -# Name "dsoframer - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "c;cpp;rc;idl" -# Begin Source File - -SOURCE=.\classfactory.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofauto.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofcontrol.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofdocobj.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofprint.cpp -# End Source File -# Begin Source File - -SOURCE=.\lib\dsoframer.idl -# ADD MTL /h "lib/dsoframerlib.h" /iid "lib/dsoframerlib.c" -# End Source File -# Begin Source File - -SOURCE=.\res\dsoframer.rc -# End Source File -# Begin Source File - -SOURCE=.\mainentry.cpp - -!IF "$(CFG)" == "dsoframer - Win32 Release" - -# ADD CPP /D "DSO_MIN_CRT_STARTUP" - -!ELSEIF "$(CFG)" == "dsoframer - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\utilities.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;def" -# Begin Source File - -SOURCE=.\dsofdocobj.h -# End Source File -# Begin Source File - -SOURCE=.\dsoframer.def -# End Source File -# Begin Source File - -SOURCE=.\dsoframer.h -# End Source File -# Begin Source File - -SOURCE=.\utilities.h -# End Source File -# Begin Source File - -SOURCE=.\version.h -# End Source File -# End Group -# Begin Group "Resources" - -# PROP Default_Filter "ico;cur;tlb;bmp" -# Begin Source File - -SOURCE=.\res\dso.ico -# End Source File -# Begin Source File - -SOURCE=.\lib\dsoframer.olb -# End Source File -# Begin Source File - -SOURCE=.\res\toolbox.bmp -# End Source File -# End Group -# End Target -# End Project diff --git a/PROMS/DSOFramer/Source2005/dsoframer.dsw b/PROMS/DSOFramer/Source2005/dsoframer.dsw deleted file mode 100644 index c64fc6a9..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "dsoframer"=.\dsoframer.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.h b/PROMS/DSOFramer/Source2005/dsoframer.h deleted file mode 100644 index 59eb956a..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.h +++ /dev/null @@ -1,689 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.H - * - * Developer Support Office ActiveX Document Framer Control Sample - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. - * - * You have a royalty-free right to use, modify, reproduce and distribute - * this sample application, and/or any modified version, in any way you - * find useful, provided that you agree that Microsoft has no warranty, - * obligations or liability for the code or information provided herein. - * - * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - * See the EULA.TXT file included in the KB download for full terms of use - * and restrictions. You should consult documentation on MSDN Library for - * possible updates or changes to behaviors or interfaces used in this sample. - * - ***************************************************************************/ -#ifndef DS_DSOFRAMER_H -#define DS_DSOFRAMER_H - -//////////////////////////////////////////////////////////////////// -// We compile at level 4 and disable some unnecessary warnings... -// -#pragma warning(push, 4) // Compile at level-4 warnings -#pragma warning(disable: 4100) // unreferenced formal parameter (in OLE this is common) -#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned -#pragma warning(disable: 4268) // const static/global data initialized with compiler generated default constructor -#pragma warning(disable: 4310) // cast truncates constant value -#pragma warning(disable: 4786) // identifier was truncated in the debug information - -//////////////////////////////////////////////////////////////////// -// Compile Options For Modified Behavior... -// -#define DSO_MSDAIPP_USE_DAVONLY // Default to WebDAV protocol for open by HTTP/HTTPS -#define DSO_WORD12_PERSIST_BUG // Perform workaround for IPersistFile bug in Word 2007 - -//////////////////////////////////////////////////////////////////// -// Needed include files (both standard and custom) -// -#include -#include -#include -#include -#include - -#include "version.h" -#include "utilities.h" -#include "dsofdocobj.h" -#include ".\lib\dsoframerlib.h" -#include ".\res\resource.h" - -//////////////////////////////////////////////////////////////////// -// Global Variables -// -extern HINSTANCE v_hModule; -extern CRITICAL_SECTION v_csecThreadSynch; -extern HICON v_icoOffDocIcon; -extern ULONG v_cLocks; -extern BOOL v_fUnicodeAPI; -extern BOOL v_fWindows2KPlus; - -//////////////////////////////////////////////////////////////////// -// Custom Errors - we support a very limited set of custom error messages -// -#define DSO_E_ERR_BASE 0x80041100 -#define DSO_E_UNKNOWN 0x80041101 // "An unknown problem has occurred." -#define DSO_E_INVALIDPROGID 0x80041102 // "The ProgID/Template could not be found or is not associated with a COM server." -#define DSO_E_INVALIDSERVER 0x80041103 // "The associated COM server does not support ActiveX Document embedding." -#define DSO_E_COMMANDNOTSUPPORTED 0x80041104 // "The command is not supported by the document server." -#define DSO_E_DOCUMENTREADONLY 0x80041105 // "Unable to perform action because document was opened in read-only mode." -#define DSO_E_REQUIRESMSDAIPP 0x80041106 // "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." -#define DSO_E_DOCUMENTNOTOPEN 0x80041107 // "No document is open to perform the operation requested." -#define DSO_E_INMODALSTATE 0x80041108 // "Cannot access document when in modal condition." -#define DSO_E_NOTBEENSAVED 0x80041109 // "Cannot Save file without a file path." -#define DSO_E_FRAMEHOOKFAILED 0x8004110A // "Unable to set frame hook for the parent window." -#define DSO_E_ERR_MAX 0x8004110B - -//////////////////////////////////////////////////////////////////// -// Custom OLE Command IDs - we use for special tasks -// -#define OLECMDID_GETDATAFORMAT 0x7001 // 28673 -#define OLECMDID_SETDATAFORMAT 0x7002 // 28674 -#define OLECMDID_LOCKSERVER 0x7003 // 28675 -#define OLECMDID_RESETFRAMEHOOK 0x7009 // 28681 -#define OLECMDID_NOTIFYACTIVE 0x700A // 28682 - -//////////////////////////////////////////////////////////////////// -// Custom Window Messages (only apply to CDsoFramerControl window proc) -// -#define DSO_WM_ASYNCH_OLECOMMAND (WM_USER + 300) -#define DSO_WM_ASYNCH_STATECHANGE (WM_USER + 301) - -#define DSO_WM_HOOK_NOTIFY_COMPACTIVE (WM_USER + 400) -#define DSO_WM_HOOK_NOTIFY_APPACTIVATE (WM_USER + 401) -#define DSO_WM_HOOK_NOTIFY_FOCUSCHANGE (WM_USER + 402) -#define DSO_WM_HOOK_NOTIFY_SYNCPAINT (WM_USER + 403) -#define DSO_WM_HOOK_NOTIFY_PALETTECHANGE (WM_USER + 404) - -// State Flags for DSO_WM_ASYNCH_STATECHANGE: -#define DSO_STATE_MODAL 1 -#define DSO_STATE_ACTIVATION 2 -#define DSO_STATE_INTERACTIVE 3 -#define DSO_STATE_RETURNFROMMODAL 4 - - -//////////////////////////////////////////////////////////////////// -// Menu Bar Items -// -#define DSO_MAX_MENUITEMS 16 -#define DSO_MAX_MENUNAME_LENGTH 32 - -#ifndef DT_HIDEPREFIX -#define DT_HIDEPREFIX 0x00100000 -#define DT_PREFIXONLY 0x00200000 -#endif - -#define SYNCPAINT_TIMER_ID 4 - - -//////////////////////////////////////////////////////////////////// -// Control Class Factory -// -class CDsoFramerClassFactory : public IClassFactory -{ -public: - CDsoFramerClassFactory(): m_cRef(0){} - ~CDsoFramerClassFactory(void){} - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IClassFactory Implementation - STDMETHODIMP CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv); - STDMETHODIMP LockServer(BOOL fLock); - -private: - ULONG m_cRef; // Reference count - -}; - -//////////////////////////////////////////////////////////////////// -// CDsoFramerControl -- Main Control (OCX) Object -// -// The CDsoFramerControl control is standard OLE control designed around -// the OCX94 specification. Because we plan on doing custom integration to -// act as both OLE object and OLE host, it does not use frameworks like ATL -// or MFC which would only complicate the nature of the sample. -// -// The control inherits from its automation interface, but uses nested -// classes for all OLE interfaces. This is not a requirement but does help -// to clearly seperate the tasks done by each interface and makes finding -// ref count problems easier to spot since each interface carries its own -// counter and will assert (in debug) if interface is over or under released. -// -// The control is basically a stage for the ActiveDocument embedding, and -// handles any external (user) commands. The task of actually acting as -// a DocObject host is done in the site object CDsoDocObject, which this -// class creates and uses for the embedding. -// -class CDsoFramerControl : public _FramerControl -{ -public: - CDsoFramerControl(LPUNKNOWN punk); - ~CDsoFramerControl(void); - - // IUnknown Implementation -- Always delgates to outer unknown... - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv){return m_pOuterUnknown->QueryInterface(riid, ppv);} - STDMETHODIMP_(ULONG) AddRef(void){return m_pOuterUnknown->AddRef();} - STDMETHODIMP_(ULONG) Release(void){return m_pOuterUnknown->Release();} - - // IDispatch Implementation - STDMETHODIMP GetTypeInfoCount(UINT* pctinfo); - STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo); - STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId); - STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr); - - // _FramerControl Implementation - STDMETHODIMP Activate(); - STDMETHODIMP get_ActiveDocument(IDispatch** ppdisp); - STDMETHODIMP CreateNew(BSTR ProgIdOrTemplate); - STDMETHODIMP Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP _PrintOutOld(VARIANT PromptToSelectPrinter); - STDMETHODIMP Close(); - STDMETHODIMP put_Caption(BSTR bstr); - STDMETHODIMP get_Caption(BSTR* pbstr); - STDMETHODIMP put_Titlebar(VARIANT_BOOL vbool); - STDMETHODIMP get_Titlebar(VARIANT_BOOL* pbool); - STDMETHODIMP put_Toolbars(VARIANT_BOOL vbool); - STDMETHODIMP get_Toolbars(VARIANT_BOOL* pbool); - STDMETHODIMP put_ModalState(VARIANT_BOOL vbool); - STDMETHODIMP get_ModalState(VARIANT_BOOL* pbool); - STDMETHODIMP ShowDialog(dsoShowDialogType DlgType); - STDMETHODIMP put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool); - STDMETHODIMP get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool); - STDMETHODIMP put_BorderStyle(dsoBorderStyle style); - STDMETHODIMP get_BorderStyle(dsoBorderStyle* pstyle); - STDMETHODIMP put_BorderColor(OLE_COLOR clr); - STDMETHODIMP get_BorderColor(OLE_COLOR* pclr); - STDMETHODIMP put_BackColor(OLE_COLOR clr); - STDMETHODIMP get_BackColor(OLE_COLOR* pclr); - STDMETHODIMP put_ForeColor(OLE_COLOR clr); - STDMETHODIMP get_ForeColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarTextColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarTextColor(OLE_COLOR* pclr); - STDMETHODIMP ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP put_Menubar(VARIANT_BOOL vbool); - STDMETHODIMP get_Menubar(VARIANT_BOOL* pbool); - STDMETHODIMP put_HostName(BSTR bstr); - STDMETHODIMP get_HostName(BSTR* pbstr); - STDMETHODIMP get_DocumentFullName(BSTR* pbstr); - STDMETHODIMP PrintOut(VARIANT PromptUser, VARIANT PrinterName, VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile); - STDMETHODIMP PrintPreview(); - STDMETHODIMP PrintPreviewExit(); - STDMETHODIMP get_IsReadOnly(VARIANT_BOOL* pbool); - STDMETHODIMP get_IsDirty(VARIANT_BOOL* pbool); - STDMETHODIMP put_LockServer(VARIANT_BOOL vbool); - STDMETHODIMP get_LockServer(VARIANT_BOOL* pvbool); - STDMETHODIMP GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults); - STDMETHODIMP SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray); - STDMETHODIMP put_ActivationPolicy(dsoActivationPolicy lPolicy); - STDMETHODIMP get_ActivationPolicy(dsoActivationPolicy *plPolicy); - STDMETHODIMP put_FrameHookPolicy(dsoFrameHookPolicy lPolicy); - STDMETHODIMP get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy); - STDMETHODIMP put_MenuAccelerators(VARIANT_BOOL vbool); - STDMETHODIMP get_MenuAccelerators(VARIANT_BOOL* pvbool); - STDMETHODIMP put_EventsEnabled(VARIANT_BOOL vbool); - STDMETHODIMP get_EventsEnabled(VARIANT_BOOL* pvbool); - STDMETHODIMP get_DocumentName(BSTR* pbstr); - - // IInternalUnknown Implementation - BEGIN_INTERFACE_PART(InternalUnknown, IUnknown) - END_INTERFACE_PART(InternalUnknown) - - // IPersistStreamInit Implementation - BEGIN_INTERFACE_PART(PersistStreamInit, IPersistStreamInit) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP Load(LPSTREAM pStm); - STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); - STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); - STDMETHODIMP InitNew(void); - END_INTERFACE_PART(PersistStreamInit) - - // IPersistPropertyBag Implementation - BEGIN_INTERFACE_PART(PersistPropertyBag, IPersistPropertyBag) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP InitNew(void); - STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); - STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); - END_INTERFACE_PART(PersistPropertyBag) - - // IPersistStorage Implementation - BEGIN_INTERFACE_PART(PersistStorage, IPersistStorage) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP InitNew(LPSTORAGE pStg); - STDMETHODIMP Load(LPSTORAGE pStg); - STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); - STDMETHODIMP SaveCompleted(LPSTORAGE pStg); - STDMETHODIMP HandsOffStorage(void); - END_INTERFACE_PART(PersistStorage) - - // IOleObject Implementation - BEGIN_INTERFACE_PART(OleObject, IOleObject) - STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); - STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); - STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); - STDMETHODIMP Close(DWORD dwSaveOption); - STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); - STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); - STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); - STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); - STDMETHODIMP EnumVerbs(IEnumOLEVERB **ppEnumOleVerb); - STDMETHODIMP Update(); - STDMETHODIMP IsUpToDate(); - STDMETHODIMP GetUserClassID(CLSID *pClsid); - STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); - STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); - STDMETHODIMP Unadvise(DWORD dwConnection); - STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); - STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); - STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); - END_INTERFACE_PART(OleObject) - - // IOleControl Implementation - BEGIN_INTERFACE_PART(OleControl, IOleControl) - STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); - STDMETHODIMP OnMnemonic(LPMSG pMsg); - STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); - STDMETHODIMP FreezeEvents(BOOL bFreeze); - END_INTERFACE_PART(OleControl) - - // IOleInplaceObject Implementation - BEGIN_INTERFACE_PART(OleInplaceObject, IOleInPlaceObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP InPlaceDeactivate(); - STDMETHODIMP UIDeactivate(); - STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); - STDMETHODIMP ReactivateAndUndo(); - END_INTERFACE_PART(OleInplaceObject) - - // IOleInplaceActiveObject Implementation - BEGIN_INTERFACE_PART(OleInplaceActiveObject, IOleInPlaceActiveObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); - STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); - STDMETHODIMP OnDocWindowActivate(BOOL fActivate); - STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); - STDMETHODIMP EnableModeless(BOOL fEnable); - END_INTERFACE_PART(OleInplaceActiveObject) - - // IViewObjectEx Implementation - BEGIN_INTERFACE_PART(ViewObjectEx, IViewObjectEx) - STDMETHODIMP Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue); - STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); - STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); - STDMETHODIMP Unfreeze(DWORD dwFreeze); - STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink); - STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel); - STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); - STDMETHODIMP GetViewStatus(DWORD* pdwStatus); - STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); - END_INTERFACE_PART(ViewObjectEx) - - // IDataObject Implementation - BEGIN_INTERFACE_PART(DataObject, IDataObject) - STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP QueryGetData(FORMATETC *pfmtc); - STDMETHODIMP GetCanonicalFormatEtc(FORMATETC * pfmtcIn, FORMATETC * pfmtcOut); - STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); - STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); - STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); - STDMETHODIMP DUnadvise(DWORD dwConnection); - STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); - END_INTERFACE_PART(DataObject) - - // IProvideClassInfo Implementation - BEGIN_INTERFACE_PART(ProvideClassInfo, IProvideClassInfo) - STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); - END_INTERFACE_PART(ProvideClassInfo) - - // IConnectionPointContainer Implementation - BEGIN_INTERFACE_PART(ConnectionPointContainer, IConnectionPointContainer) - STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); - STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); - END_INTERFACE_PART(ConnectionPointContainer) - - // IEnumConnectionPoints Implementation - BEGIN_INTERFACE_PART(EnumConnectionPoints, IEnumConnectionPoints) - STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); - STDMETHODIMP Skip(ULONG cConnections); - STDMETHODIMP Reset(void); - STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); - END_INTERFACE_PART(EnumConnectionPoints) - - // IConnectionPoint Implementation - BEGIN_INTERFACE_PART(ConnectionPoint, IConnectionPoint) - STDMETHODIMP GetConnectionInterface(IID *pIID); - STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); - STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); - STDMETHODIMP Unadvise(DWORD dwCookie); - STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); - END_INTERFACE_PART(ConnectionPoint) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // ISupportErrorInfo Implementation - BEGIN_INTERFACE_PART(SupportErrorInfo, ISupportErrorInfo) - STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); - END_INTERFACE_PART(SupportErrorInfo) - - // IObjectSafety Implementation - BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety) - STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); - STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); - END_INTERFACE_PART(ObjectSafety) - - // IDsoDocObjectSite Implementation (for DocObject Callbacks to control) - BEGIN_INTERFACE_PART(DsoDocObjectSite, IDsoDocObjectSite) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); - STDMETHODIMP SysMenuCommand(UINT uiCharCode); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - END_INTERFACE_PART(DsoDocObjectSite) - - STDMETHODIMP InitializeNewInstance(); - - STDMETHODIMP InPlaceActivate(LONG lVerb); - STDMETHODIMP UIActivate(BOOL fForceUIActive); - STDMETHODIMP_(void) SetInPlaceVisible(BOOL fShow); - STDMETHODIMP_(void) UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject); - STDMETHODIMP_(void) UpdateInteractiveState(BOOL fActive); - STDMETHODIMP_(void) EnableDropFile(BOOL fEnable); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - STDMETHODIMP_(void) OnDestroyWindow(); - STDMETHODIMP_(void) OnResize(); - STDMETHODIMP_(void) OnMouseMove(UINT x, UINT y); - STDMETHODIMP_(void) OnButtonDown(UINT x, UINT y); - STDMETHODIMP_(void) OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam); - STDMETHODIMP_(void) OnToolbarAction(DWORD cmd); - STDMETHODIMP_(void) OnDropFile(HDROP hdrpFile); - STDMETHODIMP_(void) OnTimer(UINT id); - - STDMETHODIMP_(void) OnForegroundCompChange(BOOL fCompActive); - STDMETHODIMP_(void) OnAppActivationChange(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnComponentActivationChange(BOOL fActivate); - STDMETHODIMP_(void) OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd); - STDMETHODIMP_(void) OnUIFocusChange(BOOL fUIActive); - - STDMETHODIMP_(void) OnPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnSyncPaint(); - STDMETHODIMP_(void) OnWindowEnable(BOOL fEnable){TRACE1("CDsoFramerControl::OnWindowEnable(%d)\n", fEnable);} - STDMETHODIMP_(BOOL) OnSysCommandMenu(CHAR ch); - - STDMETHODIMP_(HMENU) GetActivePopupMenu(); - STDMETHODIMP_(BOOL) FAlertUser(HRESULT hr, LPWSTR pwsFileName); - STDMETHODIMP_(BOOL) FRunningInDesignMode(); - STDMETHODIMP DoDialogAction(dsoShowDialogType item); - - STDMETHODIMP_(void) RaiseActivationEvent(BOOL fActive); - - STDMETHODIMP ProvideErrorInfo(HRESULT hres); - STDMETHODIMP RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs); - - STDMETHODIMP SetTempServerLock(BOOL fLock); - STDMETHODIMP ResetFrameHook(HWND hwndFrameWindow); - - // Some inline methods are provided for common tasks such as site notification - // or calculation of draw size based on user selection of tools and border style. - - void __fastcall ViewChanged() - { - if (m_pDataAdviseHolder) // Send data change notification. - m_pDataAdviseHolder->SendOnDataChange((IDataObject*)&m_xDataObject, NULL, 0); - - if (m_pViewAdviseSink) // Send the view change notification.... - { - m_pViewAdviseSink->OnViewChange(DVASPECT_CONTENT, -1); - if (m_fViewAdviseOnlyOnce) // If they asked to be advised once, kill the connection - m_xViewObjectEx.SetAdvise(DVASPECT_CONTENT, 0, NULL); - } - InvalidateRect(m_hwnd, NULL, TRUE); // Ensure a full repaint... - } - - void __fastcall GetSizeRectAfterBorder(LPRECT lprcx, LPRECT lprc) - { - if (lprcx) CopyRect(lprc, lprcx); - else SetRect(lprc, 0, 0, m_Size.cx, m_Size.cy); - if (m_fBorderStyle) InflateRect(lprc, -(4-m_fBorderStyle), -(4-m_fBorderStyle)); - } - - void __fastcall GetSizeRectAfterTitlebar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterBorder(lprcx, lprc); - if (m_fShowTitlebar) lprc->top += 21; - } - - void __fastcall GetSizeRectForMenuBar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - lprc->bottom = lprc->top + 24; - } - - void __fastcall GetSizeRectForDocument(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - if (m_fShowMenuBar) lprc->top += 24; - if (lprc->top > lprc->bottom) lprc->top = lprc->bottom; - } - - - void __fastcall RedrawCaption() - { - RECT rcT; - if ((m_hwnd) && (m_fShowTitlebar)) - { GetClientRect(m_hwnd, &rcT); rcT.bottom = 21; - InvalidateRect(m_hwnd, &rcT, FALSE); - } - if ((m_hwnd) && (m_fShowMenuBar)) - { GetSizeRectForMenuBar(NULL, &rcT); - InvalidateRect(m_hwnd, &rcT, FALSE); - } - } - - BOOL __fastcall FUseFrameHook(){return (m_lHookPolicy != dsoDisableHook);}; - BOOL __fastcall FDelayFrameHookSet(){return (m_lHookPolicy == dsoSetOnFirstOpen);}; - - BOOL __fastcall FDrawBitmapOnAppDeactive(){return (!(m_lActivationPolicy & dsoKeepUIActiveOnAppDeactive));} - BOOL __fastcall FChangeObjActiveOnFocusChange(){return (m_lActivationPolicy & dsoCompDeactivateOnLostFocus);}; - BOOL __fastcall FIPDeactivateOnCompChange(){return (m_lActivationPolicy & dsoIPDeactivateOnCompDeactive);}; - - // The control window proceedure is handled through static class method. - static STDMETHODIMP_(LRESULT) ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // Force redaw of all child windows... - STDMETHODIMP_(BOOL) InvalidateAllChildWindows(HWND hwnd); - static STDMETHODIMP_(BOOL) InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam); - - // The variables for the control are kept private but accessible to the - // nested classes for each interface. -private: - - ULONG m_cRef; // Reference count - IUnknown *m_pOuterUnknown; // Outer IUnknown (points to m_xInternalUnknown if not agg) - ITypeInfo *m_ptiDispType; // ITypeInfo Pointer (IDispatch Impl) - EXCEPINFO *m_pDispExcep; // EXCEPINFO Pointer (IDispatch Impl) - - HWND m_hwnd; // our window - HWND m_hwndParent; // immediate parent window - SIZEL m_Size; // the size of this control - RECT m_rcLocation; // where we at - - IOleClientSite *m_pClientSite; // active client site of host containter - IOleControlSite *m_pControlSite; // control site - IOleInPlaceSite *m_pInPlaceSite; // inplace site - IOleInPlaceFrame *m_pInPlaceFrame; // inplace frame - IOleInPlaceUIWindow *m_pInPlaceUIWindow; // inplace ui window - - IAdviseSink *m_pViewAdviseSink; // advise sink for view (only 1 allowed) - IOleAdviseHolder *m_pOleAdviseHolder; // OLE advise holder (for oleobject sinks) - IDataAdviseHolder *m_pDataAdviseHolder; // OLE data advise holder (for dataobject sink) - IDispatch *m_dispEvents; // event sink (we only support 1 at a time) - IStorage *m_pOleStorage; // IStorage for OLE hosts. - - CDsoDocObject *m_pDocObjFrame; // The Embedding Class - CDsoDocObject *m_pServerLock; // Optional Server Lock for out-of-proc DocObject - - OLE_COLOR m_clrBorderColor; // Control Colors - OLE_COLOR m_clrBackColor; // " - OLE_COLOR m_clrForeColor; // " - OLE_COLOR m_clrTBarColor; // " - OLE_COLOR m_clrTBarTextColor; // " - - BSTR m_bstrCustomCaption; // A custom caption (if provided) - HMENU m_hmenuFilePopup; // The File menu popup - WORD m_wFileMenuFlags; // Bitflags of enabled file menu items. - WORD m_wSelMenuItem; // Which item (if any) is selected - WORD m_cMenuItems; // Count of items on menu bar - RECT m_rgrcMenuItems[DSO_MAX_MENUITEMS]; // Menu bar items - CHAR m_rgchMenuAccel[DSO_MAX_MENUITEMS]; // Menu bar accelerators - LPWSTR m_pwszHostName; // Custom name for SetHostNames - - class CDsoFrameHookManager* m_pHookManager; // Frame Window Hook Manager Class - LONG m_lHookPolicy; // Policy on how to use frame hook for this host. - LONG m_lActivationPolicy; // Policy on activation behavior for comp focus - HBITMAP m_hbmDeactive; // Bitmap used for IPDeactiveOnXXX policies - UINT m_uiSyncPaint; // Sync paint counter for draw issues with UIDeactivateOnXXX - - unsigned int m_fDirty:1; // does the control need to be resaved? - unsigned int m_fInPlaceActive:1; // are we in place active or not? - unsigned int m_fInPlaceVisible:1; // we are in place visible or not? - unsigned int m_fUIActive:1; // are we UI active or not. - unsigned int m_fHasFocus:1; // do we have current focus. - unsigned int m_fViewAdvisePrimeFirst: 1;// for IViewobject2::setadvise - unsigned int m_fViewAdviseOnlyOnce: 1; // for IViewobject2::setadvise - unsigned int m_fUsingWindowRgn:1; // for SetObjectRects and clipping - unsigned int m_fFreezeEvents:1; // should events be frozen? - unsigned int m_fDesignMode:1; // are we in design mode? - unsigned int m_fModeFlagValid:1; // has mode changed since last check? - unsigned int m_fBorderStyle:2; // the border style - unsigned int m_fShowTitlebar:1; // should we show titlebar? - unsigned int m_fShowToolbars:1; // should we show toolbars? - unsigned int m_fModalState:1; // are we modal? - unsigned int m_fObjectMenu:1; // are we over obj menu item? - unsigned int m_fConCntDone:1; // for enum connectpts - unsigned int m_fAppActive:1; // is the app active? - unsigned int m_fComponentActive:1; // is the component active? - unsigned int m_fShowMenuBar:1; // should we show menubar? - unsigned int m_fInDocumentLoad:1; // set when loading file - unsigned int m_fNoInteractive:1; // set when we don't allow interaction with docobj - unsigned int m_fShowMenuPrev:1; // were menus visible before loss of interactivity? - unsigned int m_fShowToolsPrev:1; // were toolbars visible before loss of interactivity? - unsigned int m_fSyncPaintTimer:1; // is syncpaint timer running? - unsigned int m_fInControlActivate:1; // is currently in activation call? - unsigned int m_fInFocusChange:1; // are we in a focus change? - unsigned int m_fActivateOnStatus:1; // we need to activate on change of status - unsigned int m_fDisableMenuAccel:1; // using menu accelerators - unsigned int m_fBkgrdPaintTimer:1; // using menu accelerators - -}; - - -//////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -- Frame Window Hook Class -// -// Used by the control to allow for proper host notification of focus -// and activation events occurring at top-level window frame. Because -// this DocObject host is an OCX, we don't own these notifications and -// have to "steal" them from our parent using a subclass. -// -// IMPORTANT: Since the parent frame may exist on a separate thread, this -// class does nothing but the hook. The code to notify the active component -// is in a separate global class that is shared by all threads. -// -class CDsoFrameWindowHook -{ -public: - CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook created\n");m_cHookCount=0;m_hwndTopLevelHost=NULL;m_pfnOrigWndProc=NULL;m_fHostUnicodeWindow=FALSE;} - ~CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook deleted\n");} - - static STDMETHODIMP_(CDsoFrameWindowHook*) AttachToFrameWindow(HWND hwndParent); - STDMETHODIMP Detach(); - - static STDMETHODIMP_(CDsoFrameWindowHook*) GetHookFromWindow(HWND hwnd); - inline STDMETHODIMP_(void) AddRef(){InterlockedIncrement((LONG*)&m_cHookCount);} - - static STDMETHODIMP_(LRESULT) - HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - -protected: - DWORD m_cHookCount; - HWND m_hwndTopLevelHost; // Top-level host window (hooked) - WNDPROC m_pfnOrigWndProc; - BOOL m_fHostUnicodeWindow; -}; - -// THE MAX NUMBER OF DSOFRAMER CONTROLS PER PROCESS -#define DSOF_MAX_CONTROLS 20 - -//////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -- Hook Manager Class -// -// Used to keep track of which control is active and forward notifications -// to it using window messages (to cross thread boundaries). -// -class CDsoFrameHookManager -{ -public: - CDsoFrameHookManager(){ODS("CDsoFrameHookManager created\n"); m_fAppActive=TRUE; m_idxActive=DSOF_MAX_CONTROLS; m_cComponents=0;} - ~CDsoFrameHookManager(){ODS("CDsoFrameHookManager deleted\n");} - - static STDMETHODIMP_(CDsoFrameHookManager*) - RegisterFramerControl(HWND hwndParent, HWND hwndControl); - - STDMETHODIMP AddComponent(HWND hwndParent, HWND hwndControl); - STDMETHODIMP DetachComponent(HWND hwndControl); - STDMETHODIMP SetActiveComponent(HWND hwndControl); - STDMETHODIMP OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam); - - inline STDMETHODIMP_(HWND) - GetActiveComponentWindow(){return m_pComponents[m_idxActive].hwndControl;} - - inline STDMETHODIMP_(CDsoFrameWindowHook*) - GetActiveComponentFrame(){return m_pComponents[m_idxActive].phookFrame;} - - STDMETHODIMP_(BOOL) SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam); - -protected: - BOOL m_fAppActive; - DWORD m_idxActive; - DWORD m_cComponents; - struct FHOOK_COMPONENTS - { - HWND hwndControl; - CDsoFrameWindowHook *phookFrame; - } m_pComponents[DSOF_MAX_CONTROLS]; -}; - -#endif //DS_DSOFRAMER_H \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.sln b/PROMS/DSOFramer/Source2005/dsoframer.sln deleted file mode 100644 index 2c94c084..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.sln +++ /dev/null @@ -1,69 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Any CPU.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.Build.0 = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.Build.0 = Release|Win32 - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Win32.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Win32.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Win32.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Win32.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Win32.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/Source2005/dsoframer.sln.old b/PROMS/DSOFramer/Source2005/dsoframer.sln.old deleted file mode 100644 index 2996d403..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.sln.old +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcproj b/PROMS/DSOFramer/Source2005/dsoframer.vcproj deleted file mode 100644 index e933b00d..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcproj +++ /dev/null @@ -1,470 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.7.10.old b/PROMS/DSOFramer/Source2005/dsoframer.vcproj.7.10.old deleted file mode 100644 index 3fa47abc..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.7.10.old +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.RHMDESKTOP.Rich Mark.user b/PROMS/DSOFramer/Source2005/dsoframer.vcproj.RHMDESKTOP.Rich Mark.user deleted file mode 100644 index d2e6cf73..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.RHMDESKTOP.Rich Mark.user +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj b/PROMS/DSOFramer/Source2005/dsoframer.vcxproj deleted file mode 100644 index 93db35ac..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj +++ /dev/null @@ -1,235 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {005801E1-A867-4CBB-995F-BA2EF4360BDF} - 10.0.19041.0 - - - - DynamicLibrary - v142 - false - - - DynamicLibrary - v142 - false - - - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - .\Debug\ - .\Debug\ - false - - - .\Release\ - .\Release\ - false - - - - Performing registration - regsvr32 /s /c "$(TargetPath)" -echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" - - $(OutDir)regsvr32.trg;%(Outputs) - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Debug/dsoframer.tlb - - - - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebug - 4Bytes - - .\Debug/dsoframer.pch - .\Debug/ - .\Debug/ - .\Debug/ - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - oledlg.lib;urlmon.lib;%(AdditionalDependencies) - Debug/dsoframer.ocx - 1.2 - true - .\dsoframer.def - true - .\Debug/dsoframer.pdb - true - .\Debug/dsoframer.map - Windows - - 0x22000000 - .\Debug/dsoframer.lib - MachineX86 - - - - - Performing registration - regsvr32 /s /c "$(TargetPath)" -echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" - - $(OutDir)regsvr32.trg;%(Outputs) - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/dsoframer.tlb - - - - MinSpace - OnlyExplicitInline - Size - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - MultiThreaded - 4Bytes - true - .\Release/dsoframer.pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - ProgramDatabase - StdCall - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - oledlg.lib;urlmon.lib;%(AdditionalDependencies) - Release/dsoframer.ocx - 1.2 - true - .\dsoframer.def - true - .\Release/dsoframer.pdb - true - .\Release/dsoframer.map - Windows - 0x22000000 - true - .\Release/dsoframer.lib - .rdata=.text - MachineX86 - - - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - - - .\lib\dsoframerlib.h - - - .\lib\dsoframerlib.c - - - - - res;$(OUTDIR);%(AdditionalIncludeDirectories) - res;$(OUTDIR);%(AdditionalIncludeDirectories) - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj.filters b/PROMS/DSOFramer/Source2005/dsoframer.vcxproj.filters deleted file mode 100644 index 6019d794..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj.filters +++ /dev/null @@ -1,80 +0,0 @@ - - - - - {bdfc3b0a-cabf-4124-953b-4729b929e053} - c;cpp;rc;idl - - - {6016a852-0b50-45a4-b42f-6da4fa81584f} - h;def - - - {10808205-29e0-458c-b830-e7849723134d} - ico;cur;tlb;bmp - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Header Files - - - Resources - - - - - Resources - - - Resources - - - \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/ipprevw.h b/PROMS/DSOFramer/Source2005/ipprevw.h deleted file mode 100644 index 22ace9fe..00000000 --- a/PROMS/DSOFramer/Source2005/ipprevw.h +++ /dev/null @@ -1,88 +0,0 @@ -/*************************************************************************** - * IPPREVIEW.H - * - * DSOFramer: IOleInplacePrintPreview/IOlePreviewCallback - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef __IPPREVIEW_H -#define __IPPREVIEW_H - -//////////////////////////////////////////////////////////////////////// -// -// IOlePreviewCallback -// -// Implemented by host to receive notifaction messages -// from ip object while displaying a print preview. -// -DEFINE_GUID(IID_IOlePreviewCallback, 0xB722BCD5, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOlePreviewCallback -DECLARE_INTERFACE_(IOlePreviewCallback, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOlePreviewCallback methods - STDMETHOD(Notify)(THIS_ DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) PURE; -}; - -#define NOTIFY_FINISHED 1 -#define NOTIFY_BUSY 2 -#define NOTIFY_IDLE 4 -#define NOTIFY_DISABLERESIZE 8 -#define NOTIFY_QUERYCLOSEPREVIEW 16 -#define NOTIFY_FORCECLOSEPREVIEW 32 -#define NOTIFY_UIACTIVE 64 -#define NOTIFY_UNABLETOPREVIEW 128 - -//////////////////////////////////////////////////////////////////////// -// -// IOleInplacePrintPreview -// -// Implemented by server to start/stop print preview. Hosts should -// call QueryStatus to make sure server is able to enter preview mode -// before calling StartPrintPreview. -// -DEFINE_GUID(IID_IOleInplacePrintPreview, 0xB722BCD4, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOleInplacePrintPreview -DECLARE_INTERFACE_(IOleInplacePrintPreview, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOleInplacePrintPreview methods - STDMETHOD(StartPrintPreview)(THIS_ DWORD grfFlags, DVTARGETDEVICE *ptd, IOlePreviewCallback *ppCallback, LONG nFirstPage) PURE; - STDMETHOD(EndPrintPreview)(THIS_ BOOL fForceClose) PURE; - STDMETHOD(QueryStatus)(THIS_ void) PURE; -}; - -#define PREVIEWFLAG_MAYBOTHERUSER 1 -#define PREVIEWFLAG_PROMPTUSER 2 -#define PREVIEWFLAG_USERMAYCHANGEPRINTER 4 -#define PREVIEWFLAG_RECOMPOSETODEVICE 8 - - -#endif //__IPPREVIEW_H diff --git a/PROMS/DSOFramer/Source2005/mainentry.cpp b/PROMS/DSOFramer/Source2005/mainentry.cpp deleted file mode 100644 index ef36e7e1..00000000 --- a/PROMS/DSOFramer/Source2005/mainentry.cpp +++ /dev/null @@ -1,318 +0,0 @@ -/*************************************************************************** - * MAINENTRY.CPP - * - * Main DLL Entry and Required COM Entry Points. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#define INITGUID // Init the GUIDS for the control... -#include "dsoframer.h" - -HINSTANCE v_hModule = NULL; // DLL module handle -HANDLE v_hPrivateHeap = NULL; // Private Memory Heap -ULONG v_cLocks = 0; // Count of server locks -HICON v_icoOffDocIcon = NULL; // Small office icon (for caption bar) -BOOL v_fUnicodeAPI = FALSE; // Flag to determine if we should us Unicode API -BOOL v_fWindows2KPlus = FALSE; -CRITICAL_SECTION v_csecThreadSynch; - -//////////////////////////////////////////////////////////////////////// -// DllMain -- OCX Main Entry -// -// -extern "C" BOOL APIENTRY DllMain(HINSTANCE hDllHandle, DWORD dwReason, LPVOID /*lpReserved*/) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - v_hModule = hDllHandle; - v_hPrivateHeap = HeapCreate(0, 0x1000, 0); - v_icoOffDocIcon = (HICON)LoadImage(hDllHandle, MAKEINTRESOURCE(IDI_SMALLOFFDOC), IMAGE_ICON, 16, 16, 0); - { - DWORD dwVersion = GetVersion(); - v_fUnicodeAPI = ((dwVersion & 0x80000000) == 0); - v_fWindows2KPlus = ((v_fUnicodeAPI) && (LOBYTE(LOWORD(dwVersion)) > 4)); - } - InitializeCriticalSection(&v_csecThreadSynch); - DisableThreadLibraryCalls(hDllHandle); - break; - - case DLL_PROCESS_DETACH: - if (v_icoOffDocIcon) DeleteObject(v_icoOffDocIcon); - if (v_hPrivateHeap) HeapDestroy(v_hPrivateHeap); - DeleteCriticalSection(&v_csecThreadSynch); - break; - } - return TRUE; -} - -#ifdef DSO_MIN_CRT_STARTUP -extern "C" BOOL APIENTRY _DllMainCRTStartup(HINSTANCE hDllHandle, DWORD dwReason, LPVOID lpReserved) -{return DllMain(hDllHandle, dwReason, lpReserved);} -#endif - -//////////////////////////////////////////////////////////////////////// -// Standard COM DLL Entry Points -// -// -//////////////////////////////////////////////////////////////////////// -// DllCanUnloadNow -// -// -STDAPI DllCanUnloadNow() -{ - return ((v_cLocks == 0) ? S_OK : S_FALSE); -} - -//////////////////////////////////////////////////////////////////////// -// DllGetClassObject -// -// Returns IClassFactory instance for FramerControl. We only support -// this one object for creation. -// -STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerClassFactory* pcf; - - CHECK_NULL_RETURN(ppv, E_POINTER); - *ppv = NULL; - - // The only component we can create is the BinderControl... - if (rclsid != CLSID_FramerControl) - return CLASS_E_CLASSNOTAVAILABLE; - - // Create the needed class factory... - pcf = new CDsoFramerClassFactory(); - CHECK_NULL_RETURN(pcf, E_OUTOFMEMORY); - - // Get requested interface. - if (FAILED(hr = pcf->QueryInterface(riid, ppv))) - { - *ppv = NULL; delete pcf; - } - else InterlockedIncrement((LPLONG)&v_cLocks); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllRegisterServer -// -// Registration of the OCX. -// -STDAPI DllRegisterServer() -{ - HRESULT hr = S_OK; - HKEY hk, hk2; - DWORD dwret; - CHAR szbuffer[256]; - LPWSTR pwszModule; - ITypeInfo* pti; - - // If we can't find the path to the DLL, we can't register... - if (!FGetModuleFileName(v_hModule, &pwszModule)) - return E_FAIL; - - // Setup the CLSID. This is the most important. If there is a critical failure, - // we will set HR = GetLastError and return... - if ((dwret = RegCreateKeyEx(HKEY_CLASSES_ROOT, - "CLSID\\"DSOFRAMERCTL_CLSIDSTR, 0, NULL, 0, KEY_WRITE, NULL, &hk, NULL)) != ERROR_SUCCESS) - { - DsoMemFree(pwszModule); - return HRESULT_FROM_WIN32(dwret); - } - - lstrcpy(szbuffer, DSOFRAMERCTL_SHORTNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // Setup the InprocServer32 key... - dwret = RegCreateKeyEx(hk, "InprocServer32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "Apartment"); - RegSetValueEx(hk2, "ThreadingModel", 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // We call a wrapper function for this setting since the path should be - // stored in Unicode to handle non-ANSI file path names on some systems. - // This wrapper will convert the path to ANSI if we are running on Win9x. - // The rest of the Reg calls should be OK in ANSI since they do not - // contain non-ANSI/Unicode-specific characters... - if (!FSetRegKeyValue(hk2, pwszModule)) - hr = E_ACCESSDENIED; - - RegCloseKey(hk2); - - dwret = RegCreateKeyEx(hk, "ProgID", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_PROGID); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - } - else hr = HRESULT_FROM_WIN32(dwret); - - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "Control", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - RegCloseKey(hk2); - } - else hr = HRESULT_FROM_WIN32(dwret); - } - - - // If we succeeded so far, andle the remaining (non-critical) reg keys... - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "ToolboxBitmap32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - LPWSTR pwszT = DsoCopyStringCat(pwszModule, L",102"); - if (pwszT) - { - FSetRegKeyValue(hk2, pwszT); - DsoMemFree(pwszT); - } - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "TypeLib", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_TLIBSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "Version", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_VERSIONSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "MiscStatus", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "131473"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "DataFormats\\GetSet\\0", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "3,1,32,1"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - } - - RegCloseKey(hk); - DsoMemFree(pwszModule); - - // This should catch any critical failures during setup of CLSID... - RETURN_ON_FAILURE(hr); - - // Setup the ProgID (non-critical)... - if (RegCreateKeyEx(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID, 0, - NULL, 0, KEY_WRITE, NULL, &hk, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_FULLNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - if (RegCreateKeyEx(hk, "CLSID", 0, - NULL, 0, KEY_WRITE, NULL, &hk2, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_CLSIDSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - RegCloseKey(hk); - } - - // Load the type info (this should register the lib once)... - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, &pti); - if (SUCCEEDED(hr)) pti->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// RegRecursiveDeleteKey -// -// Helper function called by DllUnregisterServer for nested key removal. -// -static HRESULT RegRecursiveDeleteKey(HKEY hkParent, LPCSTR pszSubKey) -{ - HRESULT hr = S_OK; - HKEY hk; - DWORD dwret, dwsize; - FILETIME time ; - CHAR szbuffer[512]; - - dwret = RegOpenKeyEx(hkParent, pszSubKey, 0, KEY_ALL_ACCESS, &hk); - if (dwret != ERROR_SUCCESS) - return HRESULT_FROM_WIN32(dwret); - - // Enumerate all of the decendents of this child... - dwsize = 510 ; - while (RegEnumKeyEx(hk, 0, szbuffer, &dwsize, NULL, NULL, NULL, &time) == ERROR_SUCCESS) - { - // If there are any sub-folders, delete them first (to make NT happy)... - hr = RegRecursiveDeleteKey(hk, szbuffer); - if (FAILED(hr)) break; - dwsize = 510; - } - - // Close the child... - RegCloseKey(hk); - - RETURN_ON_FAILURE(hr); - - // Delete this child. - dwret = RegDeleteKey(hkParent, pszSubKey); - if (dwret != ERROR_SUCCESS) - hr = HRESULT_FROM_WIN32(dwret); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllUnregisterServer -// -// Removal code for the OCX. -// -STDAPI DllUnregisterServer() -{ - HRESULT hr; - hr = RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "CLSID\\"DSOFRAMERCTL_CLSIDSTR); - if (SUCCEEDED(hr)) - { - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID); - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "TypeLib\\"DSOFRAMERCTL_TLIBSTR); - } - - // This means the key does not exist (i.e., the DLL - // was alreay unregistered, so return OK)... - if (hr == 0x80070002) hr = S_OK; - - return hr; -} diff --git a/PROMS/DSOFramer/Source2005/rbbinder.h b/PROMS/DSOFramer/Source2005/rbbinder.h deleted file mode 100644 index c312a2bb..00000000 --- a/PROMS/DSOFramer/Source2005/rbbinder.h +++ /dev/null @@ -1,253 +0,0 @@ -/*************************************************************************** - * RBBINDER.H - * - * DSOFramer: Internet Publishing Provider (MSDAIPP) Compatible Header - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_RBBINDER_H -#define DS_RBBINDER_H - -//////////////////////////////////////////////////////////////////////// -// The Microsoft OLEDB Provider for Internet Publishing (MSDAIPP) is now -// standard with MDAC 2.5. However, it will run with MDAC 2.1, so this -// header will allow us to safely compile without 2.5. -// -#define OLEDBVER 0x0250 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include // 2-byte structure packing - -#ifndef BEGIN_INTERFACE -#define BEGIN_INTERFACE -#endif - - -//////////////////////////////////////////////////////////////////////// -// MSDAIPP Specific GUIDs (not defined in OLEDB.H) -// -DEFINE_GUID(CLSID_MSDAIPP_DSO, 0xAF320921L, 0x9381, 0x11d1, 0x9C, 0x3C, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(CLSID_MSDAIPP_BINDER, 0xE1D2BF40L, 0xA96B, 0x11d1, 0x9C, 0x6B, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(DBPROPSET_MSDAIPP_INIT, 0x8F1033E3L, 0xB2CD, 0x11d1, 0x9C, 0x74, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); - - -//////////////////////////////////////////////////////////////////////// -// OLEDB Additional defines -- included for machines with MDAC 2.0/2.1 -// - -//////////////////////////////////////////////////////////////////////// -// OLEDB 2.5 GUIDS Redefined for use here; this is to avoid linker errors -// on machines that have different versions of MDAC libs. -// -DEFINE_GUID(IIDX_IBindResource, 0x0c733ab1L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IDBBinderProperties, 0x0c733ab3L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_ICreateRow, 0x0c733ab2L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IAuthenticate, 0x79eac9d0L, 0xbaf9, 0x11ce, 0x8c, 0x82, 0x00, 0xaa, 0x00, 0x4b, 0xa9, 0x0b); -DEFINE_GUID(DBGUIDX_STREAM, 0xc8b522f9L, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); - - -/////////////////////////////////////////////////////////////////////// -// MSDAIPP Binding Interfaces (all this should be standard in MDAC 2.5) -// -#ifndef __IBindResource_FWD_DEFINED__ -#define __IBindResource_FWD_DEFINED__ - -typedef interface IBindResource IBindResource; - -typedef DWORD DBBINDURLFLAG; -enum DBBINDURLFLAGENUM -{ - DBBINDURLFLAG_READ = 0x1L, - DBBINDURLFLAG_WRITE = 0x2L, - DBBINDURLFLAG_READWRITE = 0x3L, - DBBINDURLFLAG_SHARE_DENY_READ = 0x4L, - DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8L, - DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xcL, - DBBINDURLFLAG_SHARE_DENY_NONE = 0x10L, - DBBINDURLFLAG_ASYNCHRONOUS = 0x1000L, - DBBINDURLFLAG_COLLECTION = 0x2000L, - DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000L, - DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000L, - DBBINDURLFLAG_RECURSIVE = 0x400000L, - DBBINDURLFLAG_OUTPUT = 0x800000L, - DBBINDURLFLAG_WAITFORINIT = 0x1000000L, - DBBINDURLFLAG_OPENIFEXISTS = 0x2000000L, - DBBINDURLFLAG_OVERWRITE = 0x4000000L, - DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000L -}; - -typedef DWORD DBBINDURLSTATUS; -enum DBBINDURLSTATUSENUM -{ - DBBINDURLSTATUS_S_OK = 0L, - DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1L, - DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4L, - DBBINDURLSTATUS_S_REDIRECTED = 0x8L -}; - -enum DBPROP_OLEDB25_RB -{ - DBPROP_INIT_BINDFLAGS = 0x10eL, - DBPROP_INIT_LOCKOWNER = 0x10fL -}; - -typedef ULONG DBCOUNTITEM; - -typedef struct tagDBIMPLICITSESSION - { - IUnknown __RPC_FAR *pUnkOuter; - IID __RPC_FAR *piid; - IUnknown __RPC_FAR *pSession; - } DBIMPLICITSESSION; - -#endif //__IBindResource_FWD_DEFINED__ - - -#ifndef __IBindResource_INTERFACE_DEFINED__ -#define __IBindResource_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IBindResource -DECLARE_INTERFACE_(IBindResource, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IBindResource methods */ - STDMETHOD(Bind)(THIS_ - /* [in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ DBIMPLICITSESSION __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__IBindResource_INTERFACE_DEFINED__ - - - -#ifndef __ICreateRow_INTERFACE_DEFINED__ -#define __ICreateRow_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE ICreateRow -DECLARE_INTERFACE_(ICreateRow, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* ICreateRow methods */ - STDMETHOD(CreateRow)(THIS_ - /* [unique][in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [unique][in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ IUnknown __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [out] */ LPOLESTR __RPC_FAR *ppwszNewURL, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__ICreateRow_INTERFACE_DEFINED__ - - -#ifndef __IDBBinderProperties_INTERFACE_DEFINED__ -#define __IDBBinderProperties_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IDBBinderProperties -DECLARE_INTERFACE_(IDBBinderProperties, IDBProperties) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IDBProperties methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - - STDMETHOD(GetProperties)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertySets, DBPROPSET __RPC_FAR *__RPC_FAR *prgPropertySets) PURE; - STDMETHOD(GetPropertyInfo)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertyInfoSets, DBPROPINFOSET __RPC_FAR *__RPC_FAR *prgPropertyInfoSets, OLECHAR __RPC_FAR *__RPC_FAR *ppDescBuffer) PURE; - STDMETHOD(SetProperties)(THIS_ ULONG cPropertySets, DBPROPSET __RPC_FAR rgPropertySets[]) PURE; -#endif - /* IDBBinderProperties methods */ - STDMETHOD(Reset)(THIS) PURE; -}; - -#endif //__IDBBinderProperties_INTERFACE_DEFINED__ - - -//////////////////////////////////////////////////////////////////////// -// IAuthenticate (borrowed from urlmon.h to avoid extra includes) -// -#ifndef __IAuthenticate_INTERFACE_DEFINED__ -#define __IAuthenticate_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IAuthenticate -DECLARE_INTERFACE_(IAuthenticate, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IAuthenticate methods */ - STDMETHOD(Authenticate)(THIS_ HWND __RPC_FAR *phwnd, LPWSTR __RPC_FAR *pszUsername, LPWSTR __RPC_FAR *pszPassword) PURE; -}; - -#endif //__IAuthenticate_INTERFACE_DEFINED__ - -//OLEDB 2.1 Error values -#ifndef DB_E_READONLY -#define DB_E_READONLY ((HRESULT)0x80040E94L) -#define DB_E_RESOURCELOCKED ((HRESULT)0x80040E92L) -#define DB_E_CANNOTCONNECT ((HRESULT)0x80040E96L) -#define DB_E_TIMEOUT ((HRESULT)0x80040E97L) -#define DB_E_RESOURCEEXISTS ((HRESULT)0x80040E98L) -#define DB_E_OUTOFSPACE ((HRESULT)0x80040E9AL) -#endif - -//OLEDB 2.5 Error values -#ifndef DB_SEC_E_SAFEMODE_DENIED -#define DB_SEC_E_SAFEMODE_DENIED ((HRESULT)0x80040E9BL) -#endif - -#ifdef __cplusplus -} //extern "C" -#endif - -#endif // DS_RBBINDER_H - diff --git a/PROMS/DSOFramer/Source2005/utilities.cpp b/PROMS/DSOFramer/Source2005/utilities.cpp deleted file mode 100644 index 9b34cdf1..00000000 --- a/PROMS/DSOFramer/Source2005/utilities.cpp +++ /dev/null @@ -1,1359 +0,0 @@ -/*************************************************************************** - * UTILITIES.CPP - * - * Shared helper functions and routines. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// Core Utility Functions -// -//////////////////////////////////////////////////////////////////////// -// Heap Allocation (Private Heap) -// -extern HANDLE v_hPrivateHeap; -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize) -{ - CHECK_NULL_RETURN(v_hPrivateHeap, NULL); - return HeapAlloc(v_hPrivateHeap, HEAP_ZERO_MEMORY, cbSize); -} - -STDAPI_(void) DsoMemFree(LPVOID ptr) -{ - if ((v_hPrivateHeap) && (ptr)) - HeapFree(v_hPrivateHeap, 0, ptr); -} - -void * _cdecl operator new(size_t size){ return DsoMemAlloc(size);} -void _cdecl operator delete(void *ptr){ DsoMemFree(ptr); } -int __cdecl _purecall(){__asm{int 3}; return 0;} - -//////////////////////////////////////////////////////////////////////// -// Global String Functions -// -//////////////////////////////////////////////////////////////////////// -// DsoConvertToUnicodeEx -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pwszUnicode, E_POINTER); - pwszUnicode[0] = L'\0'; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = MultiByteToWideChar(iCode, 0, pszMbcsString, cbMbcsLen, pwszUnicode, cbUniLen); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pwszUnicode[cbRet] = L'\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCSEx -// -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pszMbcsString, DWORD cbMbcsLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - pszMbcsString[0] = L'\0'; - - CHECK_NULL_RETURN(pwszUnicodeString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = WideCharToMultiByte(iCode, 0, pwszUnicodeString, -1, pszMbcsString, cbMbcsLen, NULL, NULL); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pszMbcsString[cbRet] = '\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPWSTR -// -// Takes a MBCS string and returns a LPWSTR allocated on private heap. -// -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString) -{ - LPWSTR pwsz = NULL; - UINT cblen, cbnew; - - if ((pszMbcsString) && - ((cblen = lstrlen(pszMbcsString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((pwsz = (LPWSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToUnicodeEx(pszMbcsString, cblen, pwsz, cbnew, GetACP()))) - { - DsoMemFree(pwsz); - pwsz = NULL; - } - } - } - - return pwsz; -} -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCS -// -// Takes a WCHAR string and returns a LPSTR on the private heap. -// -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString) -{ - LPSTR psz = NULL; - UINT cblen, cbnew; - - if ((pwszUnicodeString) && - ((cblen = lstrlenW(pwszUnicodeString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((psz = (LPSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToMBCSEx(pwszUnicodeString, cblen, psz, cbnew, GetACP()))) - { - DsoMemFree(psz); psz = NULL; - } - } - } - - return psz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToBSTR -// -// Takes a MBCS string and returns a BSTR. NULL is returned if the -// function fails or the string is empty. -// -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString) -{ - BSTR bstr = NULL; - LPWSTR pwsz = DsoConvertToLPWSTR(pszMbcsString); - if (pwsz) - { - bstr = SysAllocString(pwsz); - DsoMemFree(pwsz); - } - return bstr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPOLESTR -// -// Returns Unicode string in COM Task Memory (CoTaskMemAlloc). -// -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszUnicodeString, NULL); - cblen = lstrlenW(pwszUnicodeString); - - pwsz = (LPWSTR)CoTaskMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszUnicodeString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyString -// -// Duplicates the string into private heap string. -// -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszString, NULL); - cblen = lstrlenW(pwszString); - - pwsz = (LPWSTR)DsoMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCat -// -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2) -{return DsoCopyStringCatEx(pwszString1, 1, &pwszString2);} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCatEx -// -// Duplicates the string into private heap string and appends one or more -// strings to the end (concatenation). -// -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs) -{ - LPWSTR pwsz; - UINT i, cblenb, cblent; - UINT *pcblens; - - // We assume you have a base string to start with. If not, we return NULL... - if ((pwszBaseString == NULL) || - ((cblenb = lstrlenW(pwszBaseString)) < 1)) - return NULL; - - // If we have nothing to append, just do a plain copy... - if ((cStrs == 0) || (ppwszStrs == NULL)) - return DsoCopyString(pwszBaseString); - - // Determine the size of the final string by finding the lengths - // of each. We create an array of sizes to use later on... - cblent = cblenb; - pcblens = new UINT[cStrs]; - CHECK_NULL_RETURN(pcblens, NULL); - - for (i = 0; i < cStrs; i++) - { - pcblens[i] = lstrlenW(ppwszStrs[i]); - cblent += pcblens[i]; - } - - // If we have data to append, create the new string and append the - // data by copying them in place. We expect UTF-16 Unicode strings - // for this to work, but this should be normal... - if (cblent > cblenb) - { - pwsz = (LPWSTR)DsoMemAlloc(((cblent + 1) * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, NULL); - - memcpy(pwsz, pwszBaseString, (cblenb * sizeof(WCHAR))); - cblent = cblenb; - - for (i = 0; i < cStrs; i++) - { - memcpy((pwsz + cblent), ppwszStrs[i], (pcblens[i] * sizeof(WCHAR))); - cblent += pcblens[i]; - } - } - else pwsz = DsoCopyString(pwszBaseString); - - delete [] pcblens; - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCLSIDtoLPSTR -// -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid) -{ - LPSTR psz = NULL; - LPWSTR pwsz; - if (SUCCEEDED(StringFromCLSID(clsid, &pwsz))) - { - psz = DsoConvertToMBCS(pwsz); - CoTaskMemFree(pwsz); - } - return psz; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoCompareStringsEx -// -// Calls CompareString API using Unicode version (if available on OS). Otherwise, -// we have to thunk strings down to MBCS to compare. This is fairly inefficient for -// Win9x systems that don't handle Unicode, but hey...this is only a sample. -// -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2) -{ - UINT iret; - LCID lcid = GetThreadLocale(); - UINT cblen1, cblen2; - - // Check that valid parameters are passed and then contain somethimg... - if ((pwsz1 == NULL) || (cch1 == 0) || - ((cblen1 = ((cch1 > 0) ? cch1 : lstrlenW(pwsz1))) == 0)) - return CSTR_LESS_THAN; - - if ((pwsz2 == NULL) || (cch2 == 0) || - ((cblen2 = ((cch2 > 0) ? cch2 : lstrlenW(pwsz2))) == 0)) - return CSTR_GREATER_THAN; - - // If the string is of the same size, then we do quick compare to test for - // equality (this is slightly faster than calling the API, but only if we - // expect the calls to find an equal match)... - if (cblen1 == cblen2) - { - for (iret = 0; iret < cblen1; iret++) - { - if (pwsz1[iret] == pwsz2[iret]) - continue; - - if (((pwsz1[iret] >= 'A') && (pwsz1[iret] <= 'Z')) && - ((pwsz1[iret] + ('a' - 'A')) == pwsz2[iret])) - continue; - - if (((pwsz2[iret] >= 'A') && (pwsz2[iret] <= 'Z')) && - ((pwsz2[iret] + ('a' - 'A')) == pwsz1[iret])) - continue; - - break; // don't continue if we can't quickly match... - } - - // If we made it all the way, then they are equal... - if (iret == cblen1) - return CSTR_EQUAL; - } - - // Now ask the OS to check the strings and give us its read. (We prefer checking - // in Unicode since this is faster and we may have strings that can't be thunked - // down to the local ANSI code page)... - if (v_fUnicodeAPI) - { - iret = CompareStringW(lcid, NORM_IGNORECASE | NORM_IGNOREWIDTH, pwsz1, cblen1, pwsz2, cblen2); - } - else - { - // If we are on Win9x, we don't have much of choice (thunk the call)... - LPSTR psz1 = DsoConvertToMBCS(pwsz1); - LPSTR psz2 = DsoConvertToMBCS(pwsz2); - iret = CompareStringA(lcid, NORM_IGNORECASE, psz1, -1, psz2, -1); - DsoMemFree(psz2); - DsoMemFree(psz1); - } - - return iret; -} - - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -//////////////////////////////////////////////////////////////////////// -// General Functions (checks to see if we can recognize type) -// -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz) -{ - return ((pwsz) && (*pwsz == L'\\') && (*(pwsz + 1) == L'\\') && (*(pwsz + 2) != L'\\')); -} - -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz) -{ - return ((pwsz) && - (((*pwsz > 64) && (*pwsz < 91)) || ((*pwsz > 96) && (*pwsz < 123))) && - (*(pwsz + 1) == L':') && (*(pwsz + 2) == L'\\')); -} - -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz) -{ - return ((pwsz) && ((*pwsz == L'H') || (*pwsz == L'h')) && - ((*(pwsz + 1) == L'T') || (*(pwsz + 1) == L't')) && - ((*(pwsz + 2) == L'T') || (*(pwsz + 2) == L't')) && - ((*(pwsz + 3) == L'P') || (*(pwsz + 3) == L'p')) && - ((*(pwsz + 4) == L':') || (((*(pwsz + 4) == L'S') || (*(pwsz + 4) == L's')) && (*(pwsz + 5) == L':')))); -} - -//////////////////////////////////////////////////////////////////////// -// GetTempPathForURLDownload -// -// Constructs a temp path for a downloaded file. Note we scan the URL -// to find the name of the file so we can use its exention for server -// association (in case it is a non-docfile -- like RTF) and also -// create our own subfolder to try and avoid name conflicts in temp -// folder itself. -// -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile) -{ - DWORD dw; - LPWSTR pwszTPath = NULL; - LPWSTR pwszTFile = NULL; - CHAR szTmpPath[MAX_PATH]; - - // Do a little parameter checking and find length of the URL... - if (!(pwszURL) || ((dw = lstrlenW(pwszURL)) < 6) || - !(LooksLikeHTTP(pwszURL)) || !(ppwszLocalFile)) - return FALSE; - - *ppwszLocalFile = NULL; - - if (GetTempPath(MAX_PATH, szTmpPath)) - { - DWORD dwtlen = lstrlen(szTmpPath); - if (dwtlen > 0 && szTmpPath[dwtlen-1] != '\\') - lstrcat(szTmpPath, "\\"); - - lstrcat(szTmpPath, "DsoFramer"); - - if (CreateDirectory(szTmpPath, NULL) || GetLastError() == ERROR_ALREADY_EXISTS) - { - lstrcat(szTmpPath, "\\"); - pwszTPath = DsoConvertToLPWSTR(szTmpPath); - } - } - - if (pwszTPath) - { - if (pwszTFile = DsoCopyString(pwszURL)) - { - LPWSTR pwszT = pwszTFile; - while (*(++pwszT)) - if (*pwszT == L'?'){*pwszT = L'\0'; break;} - - while (*(--pwszT)) - if (*pwszT == L'/'){++pwszT; break;} - - *ppwszLocalFile = DsoCopyStringCat(pwszTPath, pwszT); - - DsoMemFree(pwszTFile); - } - - DsoMemFree(pwszTPath); - } - - return (BOOL)(*ppwszLocalFile); -} - -//////////////////////////////////////////////////////////////////////// -// URLDownloadFile -// -// Does a simple URLMON download of file (no save back to server allowed), -// and no dependent files will be downloaded (just one temp file). -// -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile) -{ - typedef HRESULT (WINAPI *PFN_URLDTFW)(LPUNKNOWN, LPCWSTR, LPCWSTR, DWORD, LPUNKNOWN); - static PFN_URLDTFW pfnURLDownloadToFileW = NULL; - HMODULE hUrlmon; - - if (pfnURLDownloadToFileW == NULL) - { - if (hUrlmon = LoadLibrary("URLMON.DLL")) - pfnURLDownloadToFileW = (PFN_URLDTFW)GetProcAddress(hUrlmon, "URLDownloadToFileW"); - } - - if (pfnURLDownloadToFileW == NULL) - return E_UNEXPECTED; - - return pfnURLDownloadToFileW(punk, pwszURL, pwszLocalFile, 0, NULL); -} - - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -#define HIMETRIC_PER_INCH 2540 // number HIMETRIC units per inch -#define PTS_PER_INCH 72 // number points (font size) per inch - -#define MAP_PIX_TO_LOGHIM(x,ppli) MulDiv(HIMETRIC_PER_INCH, (x), (ppli)) -#define MAP_LOGHIM_TO_PIX(x,ppli) MulDiv((ppli), (x), HIMETRIC_PER_INCH) - -//////////////////////////////////////////////////////////////////////// -// DsoHimetricToPixels -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_LOGHIM_TO_PIX(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_LOGHIM_TO_PIX(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// DsoPixelsToHimetric -// -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_PIX_TO_LOGHIM(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_PIX_TO_LOGHIM(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd) -{ - HBITMAP hbmpold, hbmp = NULL; - HDC hdcWin, hdcMem; - RECT rc; - INT x, y; - - if (!GetWindowRect(hwnd, &rc)) - return NULL; - - x = (rc.right - rc.left); if (x < 0) x = 1; - y = (rc.bottom - rc.top); if (y < 0) y = 1; - - hdcWin = GetDC(hwnd); - hdcMem = CreateCompatibleDC(hdcWin); - - hbmp = CreateCompatibleBitmap(hdcWin, x, y); - hbmpold = (HBITMAP)SelectObject(hdcMem, hbmp); - - BitBlt(hdcMem, 0,0, x, y, hdcWin, 0,0, SRCCOPY); - - SelectObject(hdcMem, hbmpold); - DeleteDC(hdcMem); - ReleaseDC(hwnd, hdcWin); - - return hbmp; -} - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild) -{ - HWND hwnd; - - if ((hwndChild == NULL) || !IsWindow(hwndChild)) - return FALSE; - - if (hwndParent == NULL) - return TRUE; - - if (!IsWindow(hwndParent)) - return FALSE; - - hwnd = hwndChild; - - while (hwnd = GetParent(hwnd)) - if (hwnd == hwndParent) - return TRUE; - - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// DsoGetTypeInfoEx -// -// Gets an ITypeInfo from the LIBID specified. Optionally can load and -// register the typelib from a module resource (if specified). Used to -// load our typelib on demand. -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti) -{ - HRESULT hr; - ITypeLib* ptlib; - - CHECK_NULL_RETURN(ppti, E_POINTER); - *ppti = NULL; - - // Try to pull information from the registry... - hr = LoadRegTypeLib(rlibid, wVerMaj, wVerMin, lcid, &ptlib); - - // If that failed, and we have a resource module to load from, - // try loading it from the module... - if (FAILED(hr) && (hResource)) - { - LPWSTR pwszPath; - if (FGetModuleFileName(hResource, &pwszPath)) - { - // Now, load the type library from module resource file... - hr = LoadTypeLib(pwszPath, &ptlib); - - // Register library to make things easier next time... - if (SUCCEEDED(hr)) - RegisterTypeLib(ptlib, pwszPath, NULL); - - DsoMemFree(pwszPath); - } - } - - // We have the typelib. Now get the requested typeinfo... - if (SUCCEEDED(hr)) - hr = ptlib->GetTypeInfoOfGuid(rguid, ppti); - - // Release the type library interface. - SAFE_RELEASE_INTERFACE(ptlib); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoDispatchInvoke -// -// Wrapper for IDispatch::Invoke calls to event sinks, or late bound call -// to embedded object to get ambient property. -// -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret) -{ - HRESULT hr = S_FALSE; - DISPID dspidPut = DISPID_PROPERTYPUT; - DISPPARAMS dspparm = {NULL, NULL, 0, 0}; - - CHECK_NULL_RETURN(pdisp, E_POINTER); - - dspparm.rgvarg = rgargs; - dspparm.cArgs = cargs; - - if ((wflags & DISPATCH_PROPERTYPUT) || (wflags & DISPATCH_PROPERTYPUTREF)) - { - dspparm.rgdispidNamedArgs = &dspidPut; - dspparm.cNamedArgs = 1; - } - - SEH_TRY - - if (pwszname) - hr = pdisp->GetIDsOfNames(IID_NULL, &pwszname, 1, LOCALE_USER_DEFAULT, &dspid); - - if (SUCCEEDED(hr)) - hr = pdisp->Invoke(dspid, IID_NULL, LOCALE_USER_DEFAULT, (WORD)(DISPATCH_METHOD | wflags), &dspparm, pvtret, NULL, NULL); - - SEH_EXCEPT(hr) - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoReportError -- Report Error for both ComThreadError and DispError. -// -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx) -{ - BSTR bstrSource, bstrDescription; - ICreateErrorInfo* pcerrinfo; - IErrorInfo* perrinfo; - CHAR szError[MAX_PATH]; - UINT nID = 0; - - // Don't need to do anything unless this is an error. - if ((hr == S_OK) || SUCCEEDED(hr)) return hr; - - // Is this one of our custom errors (if so we will pull description from resource)... - if ((hr > DSO_E_ERR_BASE) && (hr < DSO_E_ERR_MAX)) - nID = (hr & 0xFF); - - // Set the source name... - bstrSource = SysAllocString(L"DsoFramerControl"); - - // Set the error description... - if (pwszCustomMessage) - { - bstrDescription = SysAllocString(pwszCustomMessage); - } - else if (((nID) && LoadString(v_hModule, nID, szError, sizeof(szError))) || - (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, hr, 0, szError, sizeof(szError), NULL))) - { - bstrDescription = DsoConvertToBSTR(szError); - } - else bstrDescription = NULL; - - // Set ErrorInfo so that vtable clients can get rich error information... - if (SUCCEEDED(CreateErrorInfo(&pcerrinfo))) - { - pcerrinfo->SetSource(bstrSource); - pcerrinfo->SetDescription(bstrDescription); - - if (SUCCEEDED(pcerrinfo->QueryInterface(IID_IErrorInfo, (void**) &perrinfo))) - { - SetErrorInfo(0, perrinfo); - perrinfo->Release(); - } - pcerrinfo->Release(); - } - - // Fill-in DispException Structure for late-boud clients... - if (peiDispEx) - { - peiDispEx->scode = hr; - peiDispEx->bstrSource = SysAllocString(bstrSource); - peiDispEx->bstrDescription = SysAllocString(bstrDescription); - } - - // Free temp strings... - SAFE_FREEBSTR(bstrDescription); - SAFE_FREEBSTR(bstrSource); - - // We always return error passed (so caller can chain this in return call). - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// Variant Type Helpers (Fast Access to Variant Data) -// -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px) -{return ((px->vt == (VT_VARIANT|VT_BYREF)) ? (px->pvarVal) : px);} - -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px) -{return ((px->vt == VT_EMPTY) || ((px->vt & VT_ERROR) == VT_ERROR));} - -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px) -{return ((px->vt == VT_BSTR) ? px->bstrVal : ((px->vt == (VT_BSTR|VT_BYREF)) ? *(px->pbstrVal) : NULL));} - -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px) -{return (((px->vt & (VT_BYREF|VT_ARRAY)) == (VT_BYREF|VT_ARRAY)) ? *(px->pparray) : (((px->vt & VT_ARRAY) == VT_ARRAY) ? px->parray : NULL));} - -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px) -{return (((px->vt == VT_DISPATCH) || (px->vt == VT_UNKNOWN)) ? px->punkVal : (((px->vt == (VT_DISPATCH|VT_BYREF)) || (px->vt == (VT_UNKNOWN|VT_BYREF))) ? *(px->ppunkVal) : NULL));} - -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef) -{return (((px->vt & 0xFF) != VT_I2) ? fdef : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->piVal) : px->iVal);} - -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef) -{return (((px->vt & 0xFF) != VT_I4) ? (LONG)DsoPVarShortFromPVar(px, (SHORT)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->plVal) : px->lVal);} - -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef) -{return (((px->vt & 0xFF) != VT_BOOL) ? (BOOL)DsoPVarLongFromPVar(px, (LONG)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? (BOOL)(*(px->pboolVal)) : (BOOL)(px->boolVal));} - - -//////////////////////////////////////////////////////////////////////// -// Win32 Unicode API wrappers -// -// This project is not compiled to Unicode in order for it to run on Win9x -// machines. However, in order to try to keep the code language/locale neutral -// we use these wrappers to call the Unicode API functions when supported, -// and thunk down strings to local code page if must run MBCS API. -// - -//////////////////////////////////////////////////////////////////////// -// FFileExists -// -// Returns TRUE if the given file exists. Does not handle URLs. -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath) -{ - DWORD dw = 0xFFFFFFFF; - if (v_fUnicodeAPI) - { - dw = GetFileAttributesW(wzPath); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzPath); - if (psz) dw = GetFileAttributesA(psz); - DsoMemFree(psz); - } - return (dw != 0xFFFFFFFF); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenLocalFile -// -// Returns TRUE if the file can be opened with the access required. -// Use the handle for ReadFile/WriteFile operations as normal. -// -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile) -{ - CHECK_NULL_RETURN(phFile, FALSE); - *phFile = INVALID_HANDLE_VALUE; - if (v_fUnicodeAPI) - { - *phFile = CreateFileW(wzFilePath, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzFilePath); - if (psz) *phFile = CreateFileA(psz, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - DsoMemFree(psz); - } - return (*phFile != INVALID_HANDLE_VALUE); -} - - -//////////////////////////////////////////////////////////////////////// -// FPerformShellOp -// -// This function started as a wrapper for SHFileOperation, but that -// shell function had an enormous performance hit, especially on Win9x -// and NT4. To speed things up we removed the shell32 call and are -// using the kernel32 APIs instead. The only drawback is we can't -// handle multiple files, but that is not critical for this project. -// -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo) -{ - BOOL f = FALSE; - if (v_fUnicodeAPI) - { - switch (dwOp) - { - case FO_COPY: f = CopyFileW(wzFrom, wzTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileW(wzFrom, wzTo); break; - case FO_DELETE: f = DeleteFileW(wzFrom); break; - } - } - else - { - LPSTR pszFrom = DsoConvertToMBCS(wzFrom); - LPSTR pszTo = DsoConvertToMBCS(wzTo); - - switch (dwOp) - { - case FO_COPY: f = CopyFileA(pszFrom, pszTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileA(pszFrom, pszTo); break; - case FO_DELETE: f = DeleteFileA(pszFrom); break; - } - - if (pszFrom) DsoMemFree(pszFrom); - if (pszTo) DsoMemFree(pszTo); - } - - return f; -} - -//////////////////////////////////////////////////////////////////////// -// FGetModuleFileName -// -// Handles Unicode/ANSI paths from a module handle. -// -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName) -{ - LPWSTR pwsz; - DWORD dw; - - CHECK_NULL_RETURN(wzFileName, FALSE); - *wzFileName = NULL; - - pwsz = (LPWSTR)DsoMemAlloc((MAX_PATH * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, FALSE); - - if (v_fUnicodeAPI) - { - dw = GetModuleFileNameW(hModule, pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - } - else - { - dw = GetModuleFileNameA(hModule, (LPSTR)pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - - LPWSTR pwsz2 = DsoConvertToLPWSTR((LPSTR)pwsz); - if (pwsz2 == NULL) - { - DsoMemFree(pwsz); - return FALSE; - } - - DsoMemFree(pwsz); - pwsz = pwsz2; - } - - *wzFileName = pwsz; - return TRUE; -} - - -//////////////////////////////////////////////////////////////////////// -// FIsIECacheFile -// -// Determines if file came from IE Cache (treat as read-only). -// -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile) -{ - BOOL fIsCacheFile = FALSE; - LPWSTR pwszTmpCache = NULL; - BYTE rgbuffer[MAX_PATH * sizeof(WCHAR)]; - HKEY hk; - - if (RegOpenKey(HKEY_CURRENT_USER, - "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hk) == ERROR_SUCCESS) - { - DWORD dwT, dwS; dwT = MAX_PATH; - memset(rgbuffer, 0, (MAX_PATH * sizeof(WCHAR))); - - if (v_fUnicodeAPI) - { - if ((RegQueryValueExA(hk, "Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoConvertToLPWSTR((LPSTR)rgbuffer); - } - else - { - if ((RegQueryValueExW(hk, L"Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoCopyString((LPWSTR)rgbuffer); - } - - RegCloseKey(hk); - - if (pwszTmpCache) - { - dwS = lstrlenW(pwszTmpCache); - dwT = lstrlenW(pwszFile); - fIsCacheFile = ((dwS < dwT) && - (DsoCompareStringsEx(pwszTmpCache, dwS, pwszFile, dwS) == CSTR_EQUAL)); - DsoMemFree(pwszTmpCache); - } - } - - return fIsCacheFile; -} - -//////////////////////////////////////////////////////////////////////// -// FDrawText -// -// This is used by the control for drawing the caption in the titlebar. -// Since a custom caption could contain Unicode characters only printable -// on Unicode OS, we should try to use the Unicode version when available. -// -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt) -{ - BOOL f; - if (v_fUnicodeAPI) - { - f = (BOOL)DrawTextW(hdc, pwsz, -1, prc, fmt); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - f = (BOOL)DrawTextA(hdc, psz, -1, prc, fmt); - DsoMemFree(psz); - } - return f; -} - - -//////////////////////////////////////////////////////////////////////// -// FSetRegKeyValue -// -// We use this for registration when dealing with the file path, since -// that path may have Unicode characters on some systems. Win9x boxes -// will have to be converted to ANSI. -// -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz) -{ - LONG lret; - if (v_fUnicodeAPI) - { - lret = RegSetValueExW(hk, NULL, 0, REG_SZ, (BYTE*)pwsz, (lstrlenW(pwsz) * sizeof(WCHAR))); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - lret = RegSetValueExA(hk, NULL, 0, REG_SZ, (BYTE*)psz, lstrlen(psz)); - DsoMemFree(psz); - } - return (lret == ERROR_SUCCESS); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenPrinter -// -// Open the specified printer by name. -// -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - if (v_fUnicodeAPI) - { - PRINTER_DEFAULTSW prtdef; - memset(&prtdef, 0, sizeof(PRINTER_DEFAULTSW)); - prtdef.DesiredAccess = PRINTER_ACCESS_USE; - fRet = OpenPrinterW((LPWSTR)pwszPrinter, phandle, &prtdef); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwszPrinter); - fRet = OpenPrinterA(psz, phandle, NULL); - if (!fRet) dwLastError = GetLastError(); - DsoMemFree(psz); - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - -//////////////////////////////////////////////////////////////////////// -// FGetPrinterSettings -// -// Returns the default device, port name, and DEVMODE structure for the -// printer passed. Handles Unicode translation of DEVMODE if on Win9x. -// -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - DWORD cbNeed, cbAlloc = 0; - - if ((ppwszProcessor == NULL) || (ppwszDevice == NULL) || (ppwszOutput == NULL) || - (ppdvmode == NULL) || (pcbSize == NULL)) - return FALSE; - - *ppwszProcessor = NULL; *ppwszDevice = NULL; *ppwszOutput = NULL; - *ppdvmode = NULL; *pcbSize = 0; - - if (v_fUnicodeAPI) // Use Unicode API if possible (much easier)... - { - GetPrinterW(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2W *pinfo = (PRINTER_INFO_2W*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterW(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoCopyString(pinfo->pDriverName); - *ppwszOutput = DsoCopyString(pinfo->pPortName); - - if (pinfo->pDevMode) // If we have the devmode, just need to copy it... - { - DWORD cbData = (pinfo->pDevMode->dmSize) + (pinfo->pDevMode->dmDriverExtra); - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - memcpy(*ppdvmode, pinfo->pDevMode, cbData); - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - else - { - GetPrinterA(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2A *pinfo = (PRINTER_INFO_2A*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterA(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoConvertToLPWSTR(pinfo->pDriverName); - *ppwszOutput = DsoConvertToLPWSTR(pinfo->pPortName); - - if (pinfo->pDevMode) // For Win9x API, we have to convert the DEVMODEA - { // into DEVMODEW so we have Unicode names for TARGETDEVICE... - DWORD cbData = sizeof(DEVMODEW) + - ((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? (pinfo->pDevMode->dmSize - sizeof(DEVMODEA)) : 0) + - pinfo->pDevMode->dmDriverExtra; - - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmDeviceName), CCHDEVICENAME, - (LPWSTR)((*ppdvmode)->dmDeviceName), CCHDEVICENAME, 0); - - // The rest of the copy depends on the default size of the DEVMODE. - // Just check the size and convert the form name if it exists... - if (pinfo->pDevMode->dmSize <= FIELD_OFFSET(DEVMODEA, dmFormName)) - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - pinfo->pDevMode->dmSize - CCHDEVICENAME); - } - else - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - FIELD_OFFSET(DEVMODEA, dmFormName) - - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); - - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmFormName), CCHFORMNAME, - (LPWSTR)((*ppdvmode)->dmFormName), CCHFORMNAME, 0); - - if (pinfo->pDevMode->dmSize > FIELD_OFFSET(DEVMODEA, dmLogPixels)) - memcpy(&((*ppdvmode)->dmLogPixels), - &(pinfo->pDevMode->dmLogPixels), - pinfo->pDevMode->dmSize - FIELD_OFFSET(DEVMODEA, dmLogPixels)); - } - - (*ppdvmode)->dmSize = (WORD)((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? - (sizeof(DEVMODEW) + (pinfo->pDevMode->dmSize - sizeof(DEVMODEA))) : - sizeof(DEVMODEW)); - - memcpy((((BYTE*)(*ppdvmode)) + ((*ppdvmode)->dmSize)), - (((BYTE*)(pinfo->pDevMode)) + (pinfo->pDevMode->dmSize)), - pinfo->pDevMode->dmDriverExtra); - - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetFileFromUser -// -// Displays the Open/Save dialog using Unicode version if available. Returns the -// path as a unicode BSTR regardless of OS. -// -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - BOOL fSuccess; - DWORD dw; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrFile, E_POINTER); - *pbstrFile = NULL; - - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call. If so, we use OPENFILENAMEW and - // get the file path in Unicode, returned as BSTR... - if (v_fUnicodeAPI) - { - OPENFILENAMEW ofnw; - memset(&ofnw, 0, sizeof(OPENFILENAMEW)); - ofnw.lStructSize = sizeof(OPENFILENAMEW); - ofnw.hwndOwner = hwndOwner; - ofnw.lpstrFilter = pwzFilter; - ofnw.nFilterIndex = dwFiltIdx; - ofnw.lpstrDefExt = pwszDefExt; - ofnw.lpstrTitle = pwzTitle; - ofnw.lpstrFile = (LPWSTR)&buffer[0]; - ofnw.nMaxFile = MAX_PATH; - ofnw.Flags = dwFlags; - - if (pwszCurrentItem) - { - dw = lstrlenW(pwszCurrentItem); - if ((dw) && (dw < MAX_PATH)) - { - memcpy(ofnw.lpstrFile, pwszCurrentItem, dw * sizeof(WCHAR)); - ofnw.lpstrFile[dw] = L'\0'; - } - } - - if (fShowSave) - fSuccess = GetSaveFileNameW(&ofnw); - else - fSuccess = GetOpenFileNameW(&ofnw); - - if (fSuccess) - { - *pbstrFile = SysAllocString((LPWSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofnw.Flags & OFN_READONLY); - } - } - else - { // If not, then we use OPENFILENAMEA and thunk down our params to - // the MBCS of the system, and then thunk back the Unicode for the return... - OPENFILENAMEA ofn; - memset(&ofn, 0, sizeof(OPENFILENAMEA)); - ofn.lStructSize = sizeof(OPENFILENAMEA); - ofn.hwndOwner = hwndOwner; - ofn.lpstrFilter = DsoConvertToMBCS(pwzFilter); - ofn.nFilterIndex = dwFiltIdx; - ofn.lpstrDefExt = DsoConvertToMBCS(pwszDefExt); - ofn.lpstrTitle = DsoConvertToMBCS(pwzTitle); - ofn.lpstrFile = (LPSTR)&buffer[0]; - ofn.nMaxFile = MAX_PATH; - ofn.Flags = dwFlags; - - if (pwszCurrentItem) - DsoConvertToMBCSEx(pwszCurrentItem, lstrlenW(pwszCurrentItem), (LPSTR)&buffer[0], MAX_PATH, GetACP()); - - if (fShowSave) - fSuccess = GetSaveFileNameA(&ofn); - else - fSuccess = GetOpenFileNameA(&ofn); - - - if (fSuccess) - { - *pbstrFile = DsoConvertToBSTR((LPCSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofn.Flags & OFN_READONLY); - } - - DsoMemFree((void*)(ofn.lpstrDefExt)); - DsoMemFree((void*)(ofn.lpstrFilter)); - DsoMemFree((void*)(ofn.lpstrTitle)); - } - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrFile == NULL) ? E_FAIL : S_OK); -} - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetOleInsertObjectFromUser -// -// Displays the OLE InsertObject dialog using Unicode version if available. -// -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - LPCLSID lpNewExcludeList = NULL; - int nNewExcludeCount = 0; - int nNewExcludeLen = 0; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrResult, E_POINTER); - *pbstrResult = NULL; - - // To limit list to just those marked as DocObject servers, you have to enum - // the registry and create an exclude list for OLE dialog. Exclude all except - // those that are marked DocObject under their ProgID. - if (fDocObjectOnly) - { - HKEY hkCLSID; - HKEY hkItem; - HKEY hkDocObject; - DWORD dwIndex = 0; - CHAR szName[MAX_PATH+1]; - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_READ|KEY_ENUMERATE_SUB_KEYS, &hkCLSID) == ERROR_SUCCESS) - { - while (RegEnumKey(hkCLSID, dwIndex++, szName, MAX_PATH) == ERROR_SUCCESS) - { - if (RegOpenKeyEx(hkCLSID, szName, 0, KEY_READ, &hkItem) == ERROR_SUCCESS) - { - if ((RegOpenKeyEx(hkItem, "DocObject", 0, KEY_READ, &hkDocObject) != ERROR_SUCCESS)) - { - CLSID clsid; - LPWSTR pwszClsid = DsoConvertToLPWSTR(szName); - if ((pwszClsid) && SUCCEEDED(CLSIDFromString(pwszClsid, &clsid))) - { - if (lpNewExcludeList == NULL) - { - nNewExcludeCount = 0; - nNewExcludeLen = 16; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - } - if (nNewExcludeCount == nNewExcludeLen) - { - LPCLSID lpOldList = lpNewExcludeList; - nNewExcludeLen <<= 2; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - memcpy(lpNewExcludeList, lpOldList, sizeof(CLSID) * nNewExcludeCount); - delete [] lpOldList; - } - - lpNewExcludeList[nNewExcludeCount] = clsid; - nNewExcludeCount++; - } - SAFE_FREESTRING(pwszClsid); - RegCloseKey(hkDocObject); - } - - RegCloseKey(hkItem); - } - } - RegCloseKey(hkCLSID); - } - } - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call... - if (v_fUnicodeAPI) - { - OLEUIINSERTOBJECTW oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTW); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = pwzTitle; - oidlg.lpszFile = (LPWSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectW(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = SysAllocString((LPWSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - } - else - { - OLEUIINSERTOBJECTA oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTA); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = DsoConvertToMBCS(pwzTitle); - oidlg.lpszFile = (LPSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectA(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = DsoConvertToBSTR((LPSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - - DsoMemFree((void*)(oidlg.lpszCaption)); - } - - if (lpNewExcludeList) - delete [] lpNewExcludeList; - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrResult == NULL) ? E_FAIL : S_OK); -} diff --git a/PROMS/DSOFramer/Source2005/utilities.h b/PROMS/DSOFramer/Source2005/utilities.h deleted file mode 100644 index b0da4dec..00000000 --- a/PROMS/DSOFramer/Source2005/utilities.h +++ /dev/null @@ -1,242 +0,0 @@ -/*************************************************************************** - * UTILITIES.H - * - * DSOFramer: Common Utilities and Macros (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_UTILITIES_H -#define DS_UTILITIES_H - -#include -#include - -//////////////////////////////////////////////////////////////////////// -// Fixed Win32 Errors as HRESULTs -// -#define E_WIN32_BUFFERTOOSMALL 0x8007007A //HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) -#define E_WIN32_ACCESSVIOLATION 0x800701E7 //HRESULT_FROM_WIN32(ERROR_INVALID_ADDRESS) -#define E_WIN32_LASTERROR (0x80070000 | GetLastError()) // Assured Error with last Win32 code -#define E_VBA_NOREMOTESERVER 0x800A01CE - -//////////////////////////////////////////////////////////////////////// -// Heap Allocation -// -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize); -STDAPI_(void) DsoMemFree(LPVOID ptr); - -// Override new/delete to use our task allocator -// (removing CRT dependency will improve code performance and size)... -void * _cdecl operator new(size_t size); -void _cdecl operator delete(void *ptr); - -//////////////////////////////////////////////////////////////////////// -// String Manipulation Functions -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage); -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pwszMbcsString, DWORD cbMbcsLen, UINT uiCodePage); - -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString); -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString); -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString); -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString); -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2); -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString); -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2); -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs); -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid); - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz); -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile); -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile); - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py); -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py); - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd); - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild); - -//////////////////////////////////////////////////////////////////////// -// OLE/Typelib Function Wrappers -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti); -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret); -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx); - -//////////////////////////////////////////////////////////////////////// -// Unicode Win32 API wrappers (handles thunk down for Win9x) -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath); -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile); -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo); -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName); -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile); -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt); -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz); - -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle); -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize); - -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly); - -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype); - -//////////////////////////////////////////////////////////////////////// -// Common macros -- Used to make code more readable. -// -#define SEH_TRY __try { -#define SEH_EXCEPT(hr) } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){hr = E_WIN32_ACCESSVIOLATION;} -#define SEH_EXCEPT_NULL } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){} -#define SEH_START_FINALLY } __finally { -#define SEH_END_FINALLY } - -#define RETURN_ON_FAILURE(x) if (FAILED(x)) return (x) -#define GOTO_ON_FAILURE(x, lbl) if (FAILED(x)) goto lbl -#define CHECK_NULL_RETURN(v, e) if ((v) == NULL) return (e) - -#define SAFE_ADDREF_INTERFACE if (x) { (x)->AddRef(); } -#define SAFE_RELEASE_INTERFACE(x) if (x) { (x)->Release(); (x) = NULL; } -#define SAFE_SET_INTERFACE(x, y) if (((x) = (y)) != NULL) ((IUnknown*)(x))->AddRef() -#define SAFE_FREESTRING(s) if (s) { DsoMemFree(s); (s) = NULL; } -#define SAFE_FREEBSTR(s) if (s) { SysFreeString(s); (s) = NULL; } - -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px); -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px); -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px); -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px); -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px); -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef); -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef); -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef); - -#define PARAM_IS_MISSING(x) DsoIsVarParamMissing(DsoPVarFromPVarRef((x))) -#define LPWSTR_FROM_VARIANT(x) DsoPVarWStrFromPVar(DsoPVarFromPVarRef(&(x))) -#define LONG_FROM_VARIANT(x, y) DsoPVarLongFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define BOOL_FROM_VARIANT(x, y) DsoPVarBoolFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define PUNK_FROM_VARIANT(x) DsoPVarUnkFromPVar(DsoPVarFromPVarRef(&(x))) -#define PSARRAY_FROM_VARIANT(x) DsoPVarArrayFromPVar(DsoPVarFromPVarRef(&(x))) - -#define ASCII_UPPERCASE(x) ((((x) > 96) && ((x) < 123)) ? (x) - 32 : (x)) -#define ASCII_LOWERCASE(x) ((((x) > 64) && ((x) < 91)) ? (x) + 32 : (x)) - -//////////////////////////////////////////////////////////////////////// -// Debug macros -// -#ifdef _DEBUG - -#define ASSERT(x) if(!(x)) DebugBreak() -#define ODS(x) OutputDebugString(x) - -#define TRACE1(sz, arg1) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1)); \ - ODS(ach); } - -#define TRACE2(sz, arg1, arg2) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2)); \ - ODS(ach); } - -#define TRACE3(sz, arg1, arg2, arg3) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2), (arg3)); \ - ODS(ach); } - -#define TRACE_LPRECT(sz, lprc) { \ - CHAR ach[1024]; \ - wsprintf(ach, "RECT %s - left=%d, top=%d, right=%d, bottom=%d\n", \ - (sz), (lprc)->left, (lprc)->top, (lprc)->right, (lprc)->bottom); \ - ODS(ach); } - -#else // !defined(_DEBUG) - -#define ASSERT(x) -#define ODS(x) -#define TRACE1(sz, arg1) -#define TRACE2(sz, arg1, arg2) -#define TRACE3(sz, arg1, arg2, arg3) -#define TRACE_LPRECT(sz, lprc) - -#endif // (_DEBUG) - -//////////////////////////////////////////////////////////////////////// -// Macros for Nested COM Interfaces -// -#ifdef _DEBUG -#define DEFINE_REFCOUNT ULONG m_cRef; -#define IMPLEMENT_DEBUG_ADDREF m_cRef++; -#define IMPLEMENT_DEBUG_RELEASE(x) ASSERT(m_cRef > 0); m_cRef--; if (m_cRef == 0){ODS(" > I" #x " released\n");} -#define IMPLEMENT_DEBUG_REFSET m_cRef = 0; -#define IMPLEMENT_DEBUG_REFCHECK(x) ASSERT(m_cRef == 0); if (m_cRef != 0){ODS(" * I" #x " NOT released!!\n");} -#else -#define DEFINE_REFCOUNT -#define IMPLEMENT_DEBUG_ADDREF -#define IMPLEMENT_DEBUG_RELEASE(x) -#define IMPLEMENT_DEBUG_REFSET -#define IMPLEMENT_DEBUG_REFCHECK(x) -#endif /* !_DEBUG */ - -#define BEGIN_INTERFACE_PART(localClass, baseClass) \ -class X##localClass : public baseClass \ -{ public: X##localClass(){IMPLEMENT_DEBUG_REFSET} \ - ~X##localClass(){IMPLEMENT_DEBUG_REFCHECK(##localClass)} \ - STDMETHOD(QueryInterface)(REFIID iid, PVOID* ppvObj); \ - STDMETHOD_(ULONG, AddRef)(); \ - STDMETHOD_(ULONG, Release)(); \ - DEFINE_REFCOUNT - -#define END_INTERFACE_PART(localClass) \ -} m_x##localClass; \ -friend class X##localClass; - -#define METHOD_PROLOGUE(theClass, localClass) \ - theClass* pThis = \ - ((theClass*)(((BYTE*)this) - (size_t)&(((theClass*)0)->m_x##localClass))); - -#define IMPLEMENT_INTERFACE_UNKNOWN(theClass, localClass) \ - ULONG theClass::X##localClass::AddRef() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_ADDREF \ - return pThis->AddRef(); \ - } \ - ULONG theClass::X##localClass::Release() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_RELEASE(##localClass) \ - return pThis->Release(); \ - } \ - STDMETHODIMP theClass::X##localClass::QueryInterface(REFIID iid, void **ppvObj) { \ - METHOD_PROLOGUE(theClass, localClass) \ - return pThis->QueryInterface(iid, ppvObj); \ - } - - -#endif //DS_UTILITIES_H \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/version.h b/PROMS/DSOFramer/Source2005/version.h deleted file mode 100644 index fcc71283..00000000 --- a/PROMS/DSOFramer/Source2005/version.h +++ /dev/null @@ -1,59 +0,0 @@ -/*************************************************************************** - * VERSION.H - Contol version defines - * - * DSOFramer: Version Information Header (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: If you modify this sample, you should change all of the values - * below to differentiate your control from this sample. - * - ***************************************************************************/ -#ifndef DS_VERSION_H -#define DS_VERSION_H - -#define DSOFRAMERCTL_VERSION 1.3 -#define DSOFRAMERCTL_VERSION_MAJOR 1 -#define DSOFRAMERCTL_VERSION_MINOR 3 -#define DSOFRAMERCTL_VERSION_BUILD 1323 -#define DSOFRAMERCTL_VERSIONSTR "1.3" -#define DSOFRAMERCTL_VERSIONSTRFULL "1.3.1323.1" - -#define DSOFRAMERCTL_FULLNAME "DSO ActiveX Document Framer Control" -#define DSOFRAMERCTL_SHORTNAME "DSO Framer Control Object" - -#define DSOFRAMERCTL_PROGID "DSOFramer.FramerControl" - -#define DSOFRAMERCTL_TLIB 00460180-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_TLIBSTR "{00460180-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_INTERFACE 00460181-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOFRAMERCTL_CLSID 00460182-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_CLSIDSTR "{00460182-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_DISPEVTS 00460185-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOF_DISPID_FILECMD 1 -#define DSOF_DISPID_DOCOPEN 2 -#define DSOF_DISPID_DOCCLOSE 3 -#define DSOF_DISPID_ACTIVATE 4 -#define DSOF_DISPID_BDOCCLOSE 5 -#define DSOF_DISPID_BDOCSAVE 6 -#define DSOF_DISPID_ENDPREVIEW 7 -#define DSOF_DISPID_SAVECOMPLETE 8 - -#endif //DS_VERSION_H diff --git a/PROMS/DropDownPanel_sol/Demo.sln b/PROMS/DropDownPanel_sol/Demo.sln deleted file mode 100644 index 90784c24..00000000 --- a/PROMS/DropDownPanel_sol/Demo.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DropDownPanel", "DropDownPanel\DropDownPanel.csproj", "{34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Release|Any CPU.Build.0 = Release|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DropDownPanel_sol/Demo/Demo.csproj b/PROMS/DropDownPanel_sol/Demo/Demo.csproj deleted file mode 100644 index 2ba43504..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Demo.csproj +++ /dev/null @@ -1,91 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4} - WinExe - Properties - Demo - Demo - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - UserControl - - - - Component - - - Form - - - MainForm.cs - - - - - Designer - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC} - DropDownPanel - - - - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/DerivedTreeCombo.cs b/PROMS/DropDownPanel_sol/Demo/DerivedTreeCombo.cs deleted file mode 100644 index 827f8172..00000000 --- a/PROMS/DropDownPanel_sol/Demo/DerivedTreeCombo.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.ComponentModel; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - internal class DerivedTreeCombo : DropDownPanel - { - #region Constructor / Destructor - public DerivedTreeCombo() : base() - { - // The base class's property must be set because - // this derived implementation hides the setter. - base.DropDownControl = new DropDownTree(); - this.DropDownControl.BorderStyle = BorderStyle.None; - } - #endregion - #region Public Properties - /// - /// Returns the DateRangePicker, that is displayed in the dropdown. - /// - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public new DropDownTree DropDownControl // new is on purpose to change the property's data type and to hide the setter. - { - get - { - if (base.DropDownControl != null) - { - return base.DropDownControl as DropDownTree; - } - - return null; - } - } - - public new DropDownNode Value - { - get - { - if (this.DropDownControl != null) - { - return this.DropDownControl.Value as DropDownNode; - } - - return null; - } - set { base.Value = value; } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/DropDownNode.cs b/PROMS/DropDownPanel_sol/Demo/DropDownNode.cs deleted file mode 100644 index f0adc2df..00000000 --- a/PROMS/DropDownPanel_sol/Demo/DropDownNode.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - internal class DropDownNode : TreeNode, ILookupItem - { - #region Private Variable Declarations - private long _id = 0; - #endregion - #region Constructor / Destructor - /// - /// Default constructor. - /// - public DropDownNode() : base() - { - } - - /// - /// /// - /// Some constructors initializing the node with Id. - /// - /// - /// - /// - public DropDownNode(long Id, string Text) : base(Text) - { - _id = Id; - } - - public DropDownNode(long Id, string Text, DropDownNode[] Children) : base(Text, Children) - { - _id = Id; - } - - public DropDownNode(long Id, string Text, int ImageIndex, int SelectedImageIndex) : base(Text, ImageIndex, SelectedImageIndex) - { - _id = Id; - } - - public DropDownNode(long Id, string Text, int ImageIndex, int SelectedImageIndex, DropDownNode[] Children) : base(Text, ImageIndex, SelectedImageIndex, Children) - { - _id = Id; - } - #endregion - #region Public Methods - public override string ToString() - { - return this.GetType().Name + " (Id=" + Id.ToString() + ", Name=" + Text + ")"; - } - #endregion - #region ILookupItem Implementation - public long Id - { - get { return _id; } - } - - public new string Text - { - get { return base.Text; } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/DropDownTree.cs b/PROMS/DropDownPanel_sol/Demo/DropDownTree.cs deleted file mode 100644 index 94954cc9..00000000 --- a/PROMS/DropDownPanel_sol/Demo/DropDownTree.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - internal class DropDownTree : TreeView, IDropDownAware - { - #region DropDownTree - public DropDownTree() - { - } - #endregion - #region TreeView Events - /// - /// Allow keeping track of the editing process. - /// - /// - protected override void OnAfterSelect(TreeViewEventArgs e) - { - base.OnAfterSelect(e); - - if (ValueChanged != null) - { - ValueChanged(this, new DropDownValueChangedEventArgs(e.Node)); - } - } - - /// - /// A double click on a node counts as finish editing. - /// - /// - protected override void OnDoubleClick(EventArgs e) - { - base.OnDoubleClick(e); - - TreeNode node = HitTest(PointToClient(Cursor.Position)).Node; - - if ((FinishEditing != null) && (node != null)) - { - FinishEditing(this, new DropDownValueChangedEventArgs(node)); - } - } - - /// - /// ENNTER counts as finish editing, ESC as cancel (null is returned). - /// - /// - protected override void OnKeyUp(KeyEventArgs e) - { - base.OnKeyUp(e); - - if (FinishEditing != null) - { - switch (e.KeyCode) - { - case Keys.Enter: - FinishEditing(this, new DropDownValueChangedEventArgs(Value)); - break; - case Keys.Escape: - FinishEditing(this, new DropDownValueChangedEventArgs(null)); - break; - } - } - } - #endregion - #region IDropDownAware Implementation - public event DropDownValueChangedEventHandler FinishEditing; - public event DropDownValueChangedEventHandler ValueChanged; - - public object Value - { - get { return base.SelectedNode; } - set - { - if (value is DropDownNode) - { - base.SelectedNode = value as DropDownNode; - } - } - } - - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/MainForm.Designer.cs b/PROMS/DropDownPanel_sol/Demo/MainForm.Designer.cs deleted file mode 100644 index fcac6aa2..00000000 --- a/PROMS/DropDownPanel_sol/Demo/MainForm.Designer.cs +++ /dev/null @@ -1,114 +0,0 @@ -namespace Demo -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.onTheFlyBox = new System.Windows.Forms.GroupBox(); - this.treePanel = new AT.STO.UI.Win.DropDownPanel(); - this.txtMsg = new System.Windows.Forms.TextBox(); - this.derivedPanel = new System.Windows.Forms.GroupBox(); - this.derivedTreeCombo = new Demo.DerivedTreeCombo(); - this.onTheFlyBox.SuspendLayout(); - this.derivedPanel.SuspendLayout(); - this.SuspendLayout(); - // - // onTheFlyBox - // - this.onTheFlyBox.Controls.Add(this.treePanel); - this.onTheFlyBox.Location = new System.Drawing.Point(12, 12); - this.onTheFlyBox.Name = "onTheFlyBox"; - this.onTheFlyBox.Size = new System.Drawing.Size(171, 71); - this.onTheFlyBox.TabIndex = 1; - this.onTheFlyBox.TabStop = false; - this.onTheFlyBox.Text = "create control on the fly"; - // - // treePanel - // - this.treePanel.Location = new System.Drawing.Point(21, 31); - this.treePanel.Name = "treePanel"; - this.treePanel.Size = new System.Drawing.Size(124, 21); - this.treePanel.TabIndex = 1; - // - // txtMsg - // - this.txtMsg.AcceptsReturn = true; - this.txtMsg.Anchor = ((System.Windows.Forms.AnchorStyles) ((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtMsg.Location = new System.Drawing.Point(3, 175); - this.txtMsg.Multiline = true; - this.txtMsg.Name = "txtMsg"; - this.txtMsg.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.txtMsg.Size = new System.Drawing.Size(464, 152); - this.txtMsg.TabIndex = 2; - // - // derivedPanel - // - this.derivedPanel.Controls.Add(this.derivedTreeCombo); - this.derivedPanel.Location = new System.Drawing.Point(12, 89); - this.derivedPanel.Name = "derivedPanel"; - this.derivedPanel.Size = new System.Drawing.Size(171, 71); - this.derivedPanel.TabIndex = 4; - this.derivedPanel.TabStop = false; - this.derivedPanel.Text = "derived control"; - // - // derivedTreeCombo - // - this.derivedTreeCombo.Location = new System.Drawing.Point(21, 31); - this.derivedTreeCombo.Name = "derivedTreeCombo"; - this.derivedTreeCombo.Size = new System.Drawing.Size(124, 21); - this.derivedTreeCombo.TabIndex = 4; - this.derivedTreeCombo.Value = null; - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(467, 331); - this.Controls.Add(this.derivedPanel); - this.Controls.Add(this.txtMsg); - this.Controls.Add(this.onTheFlyBox); - this.Name = "MainForm"; - this.Text = "Main"; - this.onTheFlyBox.ResumeLayout(false); - this.derivedPanel.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.GroupBox onTheFlyBox; - private AT.STO.UI.Win.DropDownPanel treePanel; - private System.Windows.Forms.TextBox txtMsg; - private System.Windows.Forms.GroupBox derivedPanel; - private DerivedTreeCombo derivedTreeCombo; - } -} - diff --git a/PROMS/DropDownPanel_sol/Demo/MainForm.cs b/PROMS/DropDownPanel_sol/Demo/MainForm.cs deleted file mode 100644 index 09e34e88..00000000 --- a/PROMS/DropDownPanel_sol/Demo/MainForm.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - public partial class MainForm : Form - { - #region Constructor / Destructor - public MainForm() - { - InitializeComponent(); - } - #endregion - #region Form Events - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - InitializeDerived(); - InitializePanel(); - } - #endregion - #region Event Handler - private void DropDown_FinishEditing(object sender, DropDownValueChangedEventArgs e) - { - LogEvent((sender as Control).Name + ".FinishEditing", e.Value); - } - - private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e) - { - LogEvent((sender as Control).Name + ".ValueChanged", e.Value); - } - #endregion - #region Private Methods - /// - /// Populates a given DropDownTree. - /// - /// - private void CreateNodes(DropDownTree Tree) - { - DropDownNode root = new DropDownNode(1, "1"); - - Tree.Nodes.Clear(); - Tree.Nodes.Add(root); - - for (int i = 1; i <= 20; i++) - { - DropDownNode node = new DropDownNode(i * 1000, "1." + i.ToString("00")); - root.Nodes.Add(node); - - for (int j = 1; j <= 2; j++) - { - node.Nodes.Add(new DropDownNode((i * 1000) + (j * 10), "1." + i.ToString("00") + "." + j.ToString())); - } - } - - root.Expand(); - } - - private DropDownTree CreateTree() - { - DropDownTree tree = new DropDownTree(); - - tree.BorderStyle = BorderStyle.None; // border is drawn by the DropDownForm. - tree.Size = new Size(200, 300); // the DropDownPanel will be sized to make the tree fit. - - CreateNodes(tree); - - return tree; - } - - /// - /// Create and initialize the DerivedTreeCombo. - /// - private void InitializeDerived() - { - derivedTreeCombo.DropDownControl.Size = new Size(200, 300); - CreateNodes(derivedTreeCombo.DropDownControl); - - derivedTreeCombo.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing); - derivedTreeCombo.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - - /// - /// Create and initialize the DropDownTree. - /// - /// - private void InitializePanel() - { - treePanel.DropDownControl = CreateTree(); // make the DropDownTree the DropDownPanels control to display. - treePanel.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing); - treePanel.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - - private void LogEvent(string Event, object Value) - { - if (txtMsg.Lines.Length > 20) - { - txtMsg.Clear(); - } - - txtMsg.AppendText(Event + ": " + ((Value == null) ? "user canceled" : Value.ToString()) + "\r\n"); - } - #endregion - } -} \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/MainForm.resx b/PROMS/DropDownPanel_sol/Demo/MainForm.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DropDownPanel_sol/Demo/MainForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/DropDownPanel_sol/Demo/Program.cs b/PROMS/DropDownPanel_sol/Demo/Program.cs deleted file mode 100644 index 31ef34f5..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace Demo -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - } -} \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/AssemblyInfo.cs b/PROMS/DropDownPanel_sol/Demo/Properties/AssemblyInfo.cs deleted file mode 100644 index 7a817629..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Demo")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Demo")] -[assembly: AssemblyCopyright("Copyright © 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f6481bce-6b99-4def-b7d9-f811792f5e73")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.Designer.cs b/PROMS/DropDownPanel_sol/Demo/Properties/Resources.Designer.cs deleted file mode 100644 index 04d88e2d..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Demo.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Demo.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.resx b/PROMS/DropDownPanel_sol/Demo/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/DropDownPanel_sol/Demo/Properties/Settings.Designer.cs b/PROMS/DropDownPanel_sol/Demo/Properties/Settings.Designer.cs deleted file mode 100644 index 46d4cb74..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Demo.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings) (global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/Settings.settings b/PROMS/DropDownPanel_sol/Demo/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.Designer.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.Designer.cs deleted file mode 100644 index 2c4199bd..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.Designer.cs +++ /dev/null @@ -1,61 +0,0 @@ -namespace AT.STO.UI.Win -{ - partial class DropDownPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.combo = new System.Windows.Forms.ComboBox(); - this.SuspendLayout(); - // - // combo - // - this.combo.DropDownHeight = 1; - this.combo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.combo.FormattingEnabled = true; - this.combo.IntegralHeight = false; - this.combo.Location = new System.Drawing.Point(0, 0); - this.combo.Name = "combo"; - this.combo.Size = new System.Drawing.Size(86, 21); - this.combo.TabIndex = 0; - this.combo.DropDown += new System.EventHandler(this.Combo_DropDown); - // - // DropDownPanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.combo); - this.Name = "DropDownPanel"; - this.Size = new System.Drawing.Size(105, 32); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ComboBox combo; - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.cs deleted file mode 100644 index d06c16fa..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.cs +++ /dev/null @@ -1,287 +0,0 @@ -using System; -using System.ComponentModel; -using System.Diagnostics; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// Control that allows any other control that implements IDropDownAware to be displayed - /// in it's own combo-like dropdown area. This Control tries to mimic the standard ComboBox - /// as accurately as possible. - /// - public partial class DropDownPanel : UserControl, IDropDownAware - { - #region Private Variable Declarations - private IDropDownAware _dropDownControl = null; - private DropDownWindowHelper _dropDownHelper = null; - private Form _owner = null; - #endregion - #region Constructor / Destructor - /// - /// Default constructor - /// - public DropDownPanel() - { - InitializeComponent(); - - _dropDownHelper = new DropDownWindowHelper(); - - _dropDownHelper.DropDownClosed += new DropDownClosedEventHandler(DropDownHelper_DropDownClosed); - _dropDownHelper.DropDownCancel += new DropDownCancelEventHandler(DropDownHelper_DropDownCancel); - - combo.DisplayMember = "Text"; - combo.ValueMember = "Id"; - } - #endregion - #region Control Events - /// - /// The owning form is set within this event, wich is required to - /// force the owning form not to loose focus when the dropdown is - /// being displayed. Inherited controls should provide the PopupControl - /// within an overridden implementation of this event. - /// - /// - protected override void OnHandleCreated(EventArgs e) - { - _owner = this.FindForm(); - _dropDownHelper.ReleaseHandle(); - - if (_owner != null) - { - _dropDownHelper.AssignHandle(_owner.Handle); - } - } - - /// - /// Make sure that the overall control's height is exactly the height - /// of the internal ComboBox and that the ComboBox's widt is exactly the - /// width of the control. - /// - /// - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - combo.Location = new Point(0, 0); - combo.Width = this.ClientRectangle.Width; - this.Height = combo.Height; - } - #endregion - #region Event Handler - /// - /// We make our DropDownForm host the choosen control and show it instead - /// of the dropdown portion of the ComboBox. - /// - /// - /// - private void Combo_DropDown(object sender, EventArgs e) - { - if (!_dropDownHelper.DropDownShowing) - { - DropDownForm dropDown = new DropDownForm(_dropDownControl); - - - dropDown.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing); - dropDown.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged); - - combo.DroppedDown = false; - _dropDownHelper.ShowDropDown(_owner, dropDown, GetDropDownPosition(dropDown)); - } - else - { - _dropDownHelper.CloseDropDown(); - this.Focus(); - } - } - - private void DropDownHelper_DropDownClosed(object sender, DropDownClosedEventArgs e) - { - IDropDownAware dropDown = (e.DropDown as IDropDownAware); - - if ((dropDown != null) && (dropDown.Value != null)) - { - dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing); - dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - - combo.DroppedDown = false; - } - - private void DropDownHelper_DropDownCancel(object sender, DropDownCancelEventArgs e) - { - if (this.Bounds.Contains(Parent.PointToClient(e.CursorLocation))) - { - e.Cancel = true; - } - else - { - IDropDownAware dropDown = (e.DropDown as IDropDownAware); - - if (dropDown != null) - { - dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing); - dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - } - } - - private void DropDown_FinishEditing(object sender, DropDownValueChangedEventArgs e) - { - if (e.Value != null) - { - SetValue(e.Value as ILookupItem); - } - - if (this.FinishEditing != null) - { - this.FinishEditing(this, e); - } - - _dropDownControl.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing); - _dropDownControl.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged); - _dropDownHelper.CloseDropDown(); - } - - private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e) - { - if (this.ValueChanged != null) - { - this.ValueChanged(this, e); - } - } - #endregion - #region Public Properties - /// - /// Get or set the control (has to implement IDropDownAware) that is to - /// be displayed as the dropdown portion of the combobox. - /// - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public IDropDownAware DropDownControl - { - get { return _dropDownControl; } - set - { - _dropDownControl = value; - - this.Controls.Add(_dropDownControl as Control); - } - } - #endregion - #region Public Methods - public override string ToString() - { - return this.Name; - } - #endregion - #region Private Methods - /// - /// Calculate an acceptable position of the DropDownForm even in a - /// multi screen environment. - /// - /// - /// - private Point GetDropDownPosition(DropDownForm DropDown) - { - Point lt = Parent.PointToScreen(new Point(Left, Top)); - Point rb = Parent.PointToScreen(new Point(Right, Bottom)); - Rectangle screen = Screen.FromControl(this).Bounds; - Point point = new Point(); - - if (((lt.X + DropDown.Width) > (screen.X + screen.Width)) && ((rb.X - DropDown.Width) >= screen.X)) - { - point.X = rb.X - DropDown.Width; - - if ((point.X + DropDown.Width) > (screen.X + screen.Width)) - { - point.X = ((screen.X + screen.Width) - DropDown.Width); - } - } - else - { - point.X = lt.X; - - if (point.X < screen.X) - { - point.X = screen.X; - } - } - - if (((rb.Y + DropDown.Height) > (screen.Y + screen.Height)) && ((lt.Y - DropDown.Height) >= screen.Y)) - { - point.Y = lt.Y - DropDown.Height; - - if (point.Y < screen.Y) - { - point.Y = screen.Y; - } - } - else - { - point.Y = rb.Y; - - if ((point.Y + DropDown.Height) > (screen.Y + screen.Height)) - { - point.Y = ((screen.Y + screen.Height) - DropDown.Height); - } - } - - return point; - } - - /// - /// In this implementation we don't the user to edit the ComboBox - /// directly, so we add the new value to the item collection after - /// clearing it first. - /// - /// - /// - private void SetValue(ILookupItem Value) where T: struct - { - if (DropDownControl != null) - { - ILookupItem[] arr = new ILookupItem[0]; - - combo.DataSource = arr; - - if ((Value != null) && (Value is ILookupItem)) - { - DropDownControl.Value = Value; - - arr = new ILookupItem[1]{(ILookupItem) Value}; - combo.DataSource = arr; - combo.SelectedIndex = 0; - combo.Focus(); - } - else - { - DropDownControl.Value = null; - } - } - } - #endregion - #region IDropDownAware Implementation - /// - /// Fired either on OK, Cancel or a click outside the control to indicate - /// that the user has finished editing. - /// - public event DropDownValueChangedEventHandler FinishEditing; - - /// - /// Fired on any change of the controls's value during the editing process. - /// - public event DropDownValueChangedEventHandler ValueChanged; - - /// - /// Gets or sets the controls' value. - /// - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public object Value - { - get { return _dropDownControl.Value; } - set { SetValue(value as ILookupItem); } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.csproj b/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.csproj deleted file mode 100644 index 8239b3d3..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.csproj +++ /dev/null @@ -1,73 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC} - Library - Properties - DropDownPanel - DropDownPanel - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - Form - - - DropDownForm.cs - - - UserControl - - - DropDownPanel.cs - - - - - - - - - - - - - DropDownForm.cs - Designer - - - - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.resx b/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.resx deleted file mode 100644 index 9363c465..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - True - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Events/Events.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Events/Events.cs deleted file mode 100644 index e5659774..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Events/Events.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// Represents the method which responds to a event. - /// - /// - /// - public delegate void DropDownCancelEventHandler(object sender, DropDownCancelEventArgs e); - - /// - /// Represents the method which responds to a event. - /// - /// - /// - public delegate void DropDownClosedEventHandler(object sender, DropDownClosedEventArgs e); - - /// - /// - /// - /// The object firing the event. - /// - public delegate void DropDownValueChangedEventHandler(object sender, DropDownValueChangedEventArgs e); - - /// - /// Arguments to a . Provides a - /// reference to the popup form that is to be closed and - /// allows the operation to be cancelled. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - public class DropDownCancelEventArgs : EventArgs - { - #region Private Variable Declarations - private bool _cancel = false; - private Point _cursorLocation; - private Form _dropDown = null; - #endregion - #region Constructor / Destructor - /// - /// 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. - public DropDownCancelEventArgs(Form DropDown, Point CursorLocation) - { - _dropDown = DropDown; - _cursorLocation = CursorLocation; - _cancel = false; - } - #endregion - #region Public Properties - /// - /// - /// - public bool Cancel - { - get { return _cancel; } - set { _cancel = value; } - } - - /// - /// - /// - public Point CursorLocation - { - get { return _cursorLocation; } - } - - /// - /// - /// - public Form DropDown - { - get { return _dropDown; } - } - #endregion - } - - /// - /// Contains event information for a event. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - public class DropDownClosedEventArgs : EventArgs - { - #region Private Variable Declarations - private Form _dropDown = null; - #endregion - #region Constructor / Destructor - /// - /// Constructs a new instance of this class for the specified - /// popup form. - /// - /// DropDown Form which is being closed. - public DropDownClosedEventArgs(Form DropDown) - { - _dropDown = DropDown; - } - #endregion - #region Public Properties - /// - /// Gets the dropdown form which is being closed. - /// - public Form DropDown - { - get { return _dropDown; } - } - #endregion - } - - /// - /// Contains event information for DropDownValueChangedEventHandler. - /// - public class DropDownValueChangedEventArgs : EventArgs - { - #region Private Variable Declarations - private object _value = null; - #endregion - #region Constructor / Destructor - /// - /// Default Constructor - /// - public DropDownValueChangedEventArgs() - { - } - - /// - /// Initialization with the control's value. - /// - /// - public DropDownValueChangedEventArgs(object Value) - { - _value = Value; - } - #endregion - #region Public Properties - /// - /// Gets or sets the control's value. - /// - public object Value - { - get { return _value; } - set { _value = value; } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.cs deleted file mode 100644 index 6e6a45db..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// The form that pops up instead of the dropdown portion of the - /// DropDownPanel's combobox. It containes the actual control to - /// display. - /// - internal partial class DropDownForm : Form, IDropDownAware - { - #region Private Variable Declaration - private IDropDownAware _control = null; - #endregion - #region Constructor / Destructor - /// - /// Default Constructor - /// - public DropDownForm() - { - InitializeComponent(); - } - - /// - /// Constructor to initialize the for with the control to display. - /// - /// The control to display. - public DropDownForm(IDropDownAware Ctrl) : this() - { - if (Ctrl != null) - { - _control = Ctrl; - - InitializeControl(_control as Control); - } - } - #endregion - #region Form Events - protected override void OnClosing(CancelEventArgs e) - { - this.Controls.Remove(_control as Control); - base.OnClosing(e); - } - - protected override void OnShown(EventArgs e) - { - base.OnShown(e); - - _control.FinishEditing += new DropDownValueChangedEventHandler(Ctrl_FinishEditing); - _control.ValueChanged += new DropDownValueChangedEventHandler(Ctrl_ValueChanged); - } - #endregion - #region Event Handler - private void Ctrl_FinishEditing(object sender, DropDownValueChangedEventArgs e) - { - if (this.FinishEditing != null) - { - this.FinishEditing(this, e); - } - - _control.FinishEditing -= new DropDownValueChangedEventHandler(Ctrl_FinishEditing); - _control.ValueChanged -= new DropDownValueChangedEventHandler(Ctrl_ValueChanged); - } - - private void Ctrl_ValueChanged(object sender, DropDownValueChangedEventArgs e) - { - if (this.ValueChanged != null) - { - this.ValueChanged(this, e); - } - } - #endregion - #region IDropDownAware Implementation - /// - /// Fired either on OK, Cancel or a click outside the control to indicate - /// that the user has finished editing. - /// - public event DropDownValueChangedEventHandler FinishEditing; - - /// - /// Fired on any change of the controls's value during the editing process. - /// - public event DropDownValueChangedEventHandler ValueChanged; - - /// - /// Gets or sets the controls' value. - /// - public object Value - { - get { return _control.Value; } - set { _control.Value = value; } - } - #endregion - #region Private Methods - private void InitializeControl(Control Ctrl) - { - Size size = Ctrl.Size; - Size inner = this.ClientRectangle.Size; - Size outer = this.Size; - int gap = outer.Width - inner.Width; - - size.Width += gap; - size.Height += gap; - - this.Size = size; - this.Controls.Add(Ctrl); - Ctrl.Location = new Point(0, 0); - Ctrl.Visible = true; - Ctrl.Invalidate(); - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.designer.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.designer.cs deleted file mode 100644 index c6a5a2c2..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.designer.cs +++ /dev/null @@ -1,52 +0,0 @@ -namespace AT.STO.UI.Win -{ - partial class DropDownForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // DropDownForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.Window; - this.ClientSize = new System.Drawing.Size(226, 211); - this.ControlBox = false; - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "DropDownForm"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.ResumeLayout(false); - - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.resx b/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownMessageFilter.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownMessageFilter.cs deleted file mode 100644 index cca60462..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownMessageFilter.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// 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. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - internal class DropDownMessageFilter : IMessageFilter - { - #region Private Constants - private const int WM_LBUTTONDOWN = 0x201; - private const int WM_RBUTTONDOWN = 0x204; - private const int WM_MBUTTONDOWN = 0x207; - private const int WM_NCLBUTTONDOWN = 0x0A1; - private const int WM_NCRBUTTONDOWN = 0x0A4; - private const int WM_NCMBUTTONDOWN = 0x0A7; - #endregion - #region Private Variable Declarations - private Form _dropDown = null; - private DropDownWindowHelper _owner = null; - #endregion - #region Event Declarations - public event DropDownCancelEventHandler DropDownCancel; - #endregion - #region Constructor / Destructor - /// - /// Constructs a new instance of this class and sets the owning - /// object. - /// - /// The object - /// which owns this class. - public DropDownMessageFilter(DropDownWindowHelper Owner) - { - _owner = Owner; - } - #endregion - #region Public Properties - /// - /// Gets/sets the dropdown form which is being displayed. - /// - public Form DropDown - { - get { return _dropDown; } - set { _dropDown = value; } - } - #endregion - #region Private Methods - private void OnMouseDown() - { - Point cursorPos = Cursor.Position; // Get the cursor location - - if (!_dropDown.Bounds.Contains(cursorPos)) // Check if it is within the popup form - { - OnDropDownCancel(new DropDownCancelEventArgs(_dropDown, cursorPos)); // If not, then call to see if it should be closed - } - } - #endregion - #region DropDownCancelEvent Implementation - protected virtual void OnDropDownCancel(DropDownCancelEventArgs e) - { - if (this.DropDownCancel != null) - { - this.DropDownCancel(this, e); - } - - if (!e.Cancel) - { - _owner.CloseDropDown(); - _dropDown = null; // Clear reference for GC - } - } - #endregion - #region IMessageFilter Implementation - /// - /// 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. - public bool PreFilterMessage(ref Message m) - { - if (_dropDown != null) - { - switch (m.Msg) - { - case WM_LBUTTONDOWN: - case WM_RBUTTONDOWN: - case WM_MBUTTONDOWN: - case WM_NCLBUTTONDOWN: - case WM_NCRBUTTONDOWN: - case WM_NCMBUTTONDOWN: OnMouseDown(); break; - } - } - - return false; - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownWindowHelper.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownWindowHelper.cs deleted file mode 100644 index 54250577..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownWindowHelper.cs +++ /dev/null @@ -1,203 +0,0 @@ -using System; -using System.Drawing; -using System.Runtime.InteropServices; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// 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. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - internal class DropDownWindowHelper : NativeWindow - { - #region Private Variable Declarations - private EventHandler DropDownClosedHandler = null; - - private Form _dropDown = null; - private bool _dropDownShowing = false; - private DropDownMessageFilter _filter = null; - private Form _owner = null; - private bool _skipClose = false; - #endregion - #region Event Declarations - public event DropDownCancelEventHandler DropDownCancel; - public event DropDownClosedEventHandler DropDownClosed; - #endregion - #region Constructor / Destructor - /// - /// Default constructor. - /// - /// Use the - /// method to attach this class to the form you want to show popups from. - public DropDownWindowHelper() - { - _filter = new DropDownMessageFilter(this); - _filter.DropDownCancel += new DropDownCancelEventHandler(Popup_Cancel); - } - #endregion - #region Event Handler - private void Popup_Cancel(object sender, DropDownCancelEventArgs e) - { - OnDropDownCancel(e); - } - - /// - /// Responds to the - /// event from the popup form. - /// - /// Popup form that has been closed. - /// Not used. - private void Popup_Closed(object sender, EventArgs e) - { - CloseDropDown(); - } - - /// - /// 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 - protected override void WndProc(ref Message m) - { - base.WndProc(ref m); - - if (DropDownShowing) - { - if (m.Msg == UIApiCalls.WM_NCACTIVATE) - { - if (((int)m.WParam) == 0) // Check if the title bar will made inactive: - { // Note it's no good to try and consume this message; if you try to do that you'll end up with windows - UIApiCalls.SendMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 1, IntPtr.Zero); // If so reactivate it. - } - } - else if (m.Msg == UIApiCalls.WM_ACTIVATEAPP) - { - if ((int)m.WParam == 0) // Check if the application is being deactivated. - { - CloseDropDown(); // It is so cancel the popup: - UIApiCalls.PostMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 0, IntPtr.Zero); // And put the title bar into the inactive state: - } - } - } - } - #endregion - #region Public Methods - /// - /// 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 - /// 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. - public void ShowDropDown(Form Owner, Form DropDown, Point Location) - { - _owner = Owner; - _dropDown = DropDown; - Application.AddMessageFilter(_filter); // Start checking for the popup being cancelled - DropDown.StartPosition = FormStartPosition.Manual; // Set the location of the popup form: - DropDown.Location = Location; - Owner.AddOwnedForm(DropDown); // Make it owned by the window that's displaying it: - DropDownClosedHandler = new EventHandler(Popup_Closed); // Respond to the Closed event in case the popup is closed by its own internal means - DropDown.Closed += DropDownClosedHandler; - - _dropDownShowing = true; // Show the popup: - DropDown.Show(); - DropDown.Activate(); - - // A little bit of fun. We've shown the popup, but because we've kept the main window's - // title bar in focus the tab sequence isn't quite right. This can be fixed by sending a tab, - // but that on its own would shift focus to the second control in the form. So send a tab, - // followed by a reverse-tab. - UIApiCalls.keybd_event((byte) Keys.Tab, 0, 0, 0); - UIApiCalls.keybd_event((byte) Keys.Tab, 0, UIApiCalls.KEYEVENTF_KEYUP, 0); - UIApiCalls.keybd_event((byte) Keys.ShiftKey, 0, 0, 0); - UIApiCalls.keybd_event((byte) Keys.Tab, 0, 0, 0); - UIApiCalls.keybd_event((byte) Keys.Tab, 0, UIApiCalls.KEYEVENTF_KEYUP, 0); - UIApiCalls.keybd_event((byte) Keys.ShiftKey, 0, UIApiCalls.KEYEVENTF_KEYUP, 0); - - _filter.DropDown = DropDown; // Start filtering for mouse clicks outside the popup - } - - /// - /// Called when the popup is being hidden. - /// - public void CloseDropDown() - { - if (DropDownShowing) - { - if (!_skipClose) - { - OnPDropDownClosed(new DropDownClosedEventArgs(_dropDown)); - } - - _skipClose = false; - - _owner.RemoveOwnedForm(_dropDown); // Make sure the popup is closed and we've cleaned up: - _dropDownShowing = false; - _dropDown.Closed -= DropDownClosedHandler; - DropDownClosedHandler = null; - _dropDown.Close(); - - Application.RemoveMessageFilter(_filter); // No longer need to filter for clicks outside the popup. - - // If we did something from the popup which shifted focus to a new form, like showing another popup - // or dialog, then Windows won't know how to bring the original owner back to the foreground, so - // force it here: - _owner.Activate(); - - _dropDown = null; // Null out references for GC - _owner = null; - } - } - #endregion - #region Public Properties - /// - /// Indicator weither the DropDown is showing. - /// - public bool DropDownShowing - { - get { return _dropDownShowing; } - } - #endregion - #region Event Implementation - protected virtual void OnDropDownCancel(DropDownCancelEventArgs e) - { - if (this.DropDownCancel != null) - { - this.DropDownCancel(this, e); - - if (!e.Cancel) - { - _skipClose = true; - } - } - } - - protected virtual void OnPDropDownClosed(DropDownClosedEventArgs e) - { - if (this.DropDownClosed != null) - { - this.DropDownClosed(this, e); - } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/IDropDownAware.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/IDropDownAware.cs deleted file mode 100644 index 94874f2b..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/IDropDownAware.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; - -namespace AT.STO.UI.Win -{ - /// - /// Standard interface that has to be implemented by control's that - /// should be diplayed in the dropdown area of the DropDownPanel. - /// - public interface IDropDownAware - { - #region Event Declarations - /// - /// Fired either on OK, Cancel or a click outside the control to indicate - /// that the user has finished editing. - /// - event DropDownValueChangedEventHandler FinishEditing; - - /// - /// Fired on any change of the controls's value during the editing process. - /// - event DropDownValueChangedEventHandler ValueChanged; - #endregion - #region Public Properties - /// - /// Gets or sets the controls' value. - /// - object Value { get; set; } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/ILookupItem.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/ILookupItem.cs deleted file mode 100644 index b3181e2a..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/ILookupItem.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace AT.STO.UI.Win -{ - public interface ILookupItem where T: struct - { - T Id { get; } - string Text { get; } - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Properties/AssemblyInfo.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Properties/AssemblyInfo.cs deleted file mode 100644 index edf85828..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DropDownPanel")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DropDownPanel")] -[assembly: AssemblyCopyright("Copyright © 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d59d03fc-b0ff-4210-867d-cfa4cef1728c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Unmanaged/UIApiCalls.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Unmanaged/UIApiCalls.cs deleted file mode 100644 index 92b2f160..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Unmanaged/UIApiCalls.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace AT.STO.UI.Win -{ - public static class UIApiCalls - { - #region Public Constants - public const int WM_ACTIVATE = 0x006; - public const int WM_ACTIVATEAPP = 0x01C; - public const int WM_NCACTIVATE = 0x086; - public const int KEYEVENTF_KEYUP = 0x0002; - #endregion - #region Public Static API Calls - [DllImport("user32", CharSet = CharSet.Auto)] - public extern static int SendMessage(IntPtr handle, int msg, int wParam, IntPtr lParam); - - [DllImport("user32", CharSet = CharSet.Auto)] - public extern static int PostMessage(IntPtr handle, int msg, int wParam, IntPtr lParam); - - [DllImport("user32")] - public extern static void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); - #endregion - } -} diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp.sln b/PROMS/Font Work/MyPdfComp/MyPdfComp.sln deleted file mode 100644 index a5ea9e42..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyPdfComp", "MyPdfComp\MyPdfComp.csproj", "{0EFADF44-AF95-421F-8727-6388B62253DC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0EFADF44-AF95-421F-8727-6388B62253DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0EFADF44-AF95-421F-8727-6388B62253DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0EFADF44-AF95-421F-8727-6388B62253DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0EFADF44-AF95-421F-8727-6388B62253DC}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.Designer.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.Designer.cs deleted file mode 100644 index fcb6bcf6..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace MyPdfComp -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Text = "Form1"; - } - - #endregion - } -} - diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.cs deleted file mode 100644 index 8241fa63..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace MyPdfComp -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.resx b/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.resx deleted file mode 100644 index 0c231e6f..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/Font Work/MyPdfComp/MyPdfComp/MyPdfComp.csproj b/PROMS/Font Work/MyPdfComp/MyPdfComp/MyPdfComp.csproj deleted file mode 100644 index d5648912..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/MyPdfComp.csproj +++ /dev/null @@ -1,74 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {0EFADF44-AF95-421F-8727-6388B62253DC} - WinExe - Properties - MyPdfComp - MyPdfComp - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - Form1.cs - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Program.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Program.cs deleted file mode 100644 index 2146567b..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace MyPdfComp -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/AssemblyInfo.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/AssemblyInfo.cs deleted file mode 100644 index b42d5007..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MyPdfComp")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MyPdfComp")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("bc67c2c5-25e8-4a91-b64d-dfd72ffff056")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.Designer.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.Designer.cs deleted file mode 100644 index 68edfb3c..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MyPdfComp.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MyPdfComp.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.resx b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.Designer.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.Designer.cs deleted file mode 100644 index 90b0cb34..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MyPdfComp.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.settings b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/ImportWordContent/App.config b/PROMS/ImportWordContent/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/ImportWordContent/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/ImportWordContent/ImportWordContent.csproj b/PROMS/ImportWordContent/ImportWordContent.csproj deleted file mode 100644 index cad90a1f..00000000 --- a/PROMS/ImportWordContent/ImportWordContent.csproj +++ /dev/null @@ -1,94 +0,0 @@ - - - - - Debug - AnyCPU - {50D0BCAC-E461-45C1-8716-2795EFC4F38C} - WinExe - Properties - ImportWordContent - ImportWordContent - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - Form - - - frmImportWordContent.cs - - - - - frmImportWordContent.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - {70f23722-19a3-4ac1-a900-55831c945786} - LBWordLibrary - - - - - \ No newline at end of file diff --git a/PROMS/ImportWordContent/Program.cs b/PROMS/ImportWordContent/Program.cs deleted file mode 100644 index dd1e853a..00000000 --- a/PROMS/ImportWordContent/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ImportWordContent -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmImportWordContent()); - } - } -} diff --git a/PROMS/ImportWordContent/Properties/AssemblyInfo.cs b/PROMS/ImportWordContent/Properties/AssemblyInfo.cs deleted file mode 100644 index dceb0ebe..00000000 --- a/PROMS/ImportWordContent/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImportWordContent")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ImportWordContent")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5a071d1d-11f9-4476-9750-dd4725ab1aaf")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ImportWordContent/Properties/Resources.Designer.cs b/PROMS/ImportWordContent/Properties/Resources.Designer.cs deleted file mode 100644 index 45037bf7..00000000 --- a/PROMS/ImportWordContent/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ImportWordContent.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ImportWordContent.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/ImportWordContent/Properties/Resources.resx b/PROMS/ImportWordContent/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/ImportWordContent/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/ImportWordContent/Properties/Settings.Designer.cs b/PROMS/ImportWordContent/Properties/Settings.Designer.cs deleted file mode 100644 index 2e694fae..00000000 --- a/PROMS/ImportWordContent/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ImportWordContent.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/ImportWordContent/Properties/Settings.settings b/PROMS/ImportWordContent/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/ImportWordContent/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/ImportWordContent/frmImportWordContent.Designer.cs b/PROMS/ImportWordContent/frmImportWordContent.Designer.cs deleted file mode 100644 index 7315779c..00000000 --- a/PROMS/ImportWordContent/frmImportWordContent.Designer.cs +++ /dev/null @@ -1,193 +0,0 @@ -namespace ImportWordContent -{ - partial class frmImportWordContent - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnBrowse = new System.Windows.Forms.Button(); - this.btnOpen = new System.Windows.Forms.Button(); - this.btnPage = new System.Windows.Forms.Button(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.tbWordFile = new System.Windows.Forms.TextBox(); - this.tbParagraph = new System.Windows.Forms.TextBox(); - this.btnNext = new System.Windows.Forms.Button(); - this.tbStyle = new System.Windows.Forms.TextBox(); - this.tbLevel = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.btnPrevious = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // btnBrowse - // - this.btnBrowse.Location = new System.Drawing.Point(512, 12); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(75, 23); - this.btnBrowse.TabIndex = 0; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // btnOpen - // - this.btnOpen.Location = new System.Drawing.Point(512, 41); - this.btnOpen.Name = "btnOpen"; - this.btnOpen.Size = new System.Drawing.Size(75, 23); - this.btnOpen.TabIndex = 1; - this.btnOpen.Text = "Open"; - this.btnOpen.UseVisualStyleBackColor = true; - this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click); - // - // btnPage - // - this.btnPage.Location = new System.Drawing.Point(512, 70); - this.btnPage.Name = "btnPage"; - this.btnPage.Size = new System.Drawing.Size(75, 23); - this.btnPage.TabIndex = 2; - this.btnPage.Tag = "MoveDown"; - this.btnPage.Text = "Page"; - this.btnPage.UseVisualStyleBackColor = true; - this.btnPage.Click += new System.EventHandler(this.btnNext_Click); - // - // ofd - // - this.ofd.Filter = "Docx Files|*.docx|Doc Files|*.doc|All Files|*.*"; - this.ofd.FileOk += new System.ComponentModel.CancelEventHandler(this.ofd_FileOk); - // - // tbWordFile - // - this.tbWordFile.Location = new System.Drawing.Point(39, 14); - this.tbWordFile.Name = "tbWordFile"; - this.tbWordFile.Size = new System.Drawing.Size(455, 20); - this.tbWordFile.TabIndex = 3; - this.tbWordFile.Text = "H:\\Volian\\WEC\\CPP-PMS-GJP-853 Rev 2.docx"; - // - // tbParagraph - // - this.tbParagraph.Location = new System.Drawing.Point(39, 95); - this.tbParagraph.Multiline = true; - this.tbParagraph.Name = "tbParagraph"; - this.tbParagraph.Size = new System.Drawing.Size(455, 60); - this.tbParagraph.TabIndex = 4; - // - // btnNext - // - this.btnNext.Location = new System.Drawing.Point(512, 132); - this.btnNext.Name = "btnNext"; - this.btnNext.Size = new System.Drawing.Size(75, 23); - this.btnNext.TabIndex = 5; - this.btnNext.Tag = "MoveDown"; - this.btnNext.Text = "Next"; - this.btnNext.UseVisualStyleBackColor = true; - this.btnNext.Click += new System.EventHandler(this.btnParagraph_Click); - // - // tbStyle - // - this.tbStyle.Location = new System.Drawing.Point(104, 51); - this.tbStyle.Name = "tbStyle"; - this.tbStyle.Size = new System.Drawing.Size(241, 20); - this.tbStyle.TabIndex = 6; - // - // tbLevel - // - this.tbLevel.Location = new System.Drawing.Point(425, 51); - this.tbLevel.Name = "tbLevel"; - this.tbLevel.Size = new System.Drawing.Size(69, 20); - this.tbLevel.TabIndex = 7; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(49, 56); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(30, 13); - this.label1.TabIndex = 8; - this.label1.Text = "Style"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(366, 52); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(33, 13); - this.label2.TabIndex = 9; - this.label2.Text = "Level"; - // - // btnPrevious - // - this.btnPrevious.Location = new System.Drawing.Point(512, 103); - this.btnPrevious.Name = "btnPrevious"; - this.btnPrevious.Size = new System.Drawing.Size(75, 23); - this.btnPrevious.TabIndex = 10; - this.btnPrevious.Tag = "MoveDown"; - this.btnPrevious.Text = "Previous"; - this.btnPrevious.UseVisualStyleBackColor = true; - this.btnPrevious.Click += new System.EventHandler(this.btnPrevious_Click); - // - // frmImportWordContent - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(605, 180); - this.Controls.Add(this.btnPrevious); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.tbLevel); - this.Controls.Add(this.tbStyle); - this.Controls.Add(this.btnNext); - this.Controls.Add(this.tbParagraph); - this.Controls.Add(this.tbWordFile); - this.Controls.Add(this.btnPage); - this.Controls.Add(this.btnOpen); - this.Controls.Add(this.btnBrowse); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "frmImportWordContent"; - this.ShowIcon = false; - this.Text = "Import Word Content"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.Button btnOpen; - private System.Windows.Forms.Button btnPage; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.TextBox tbWordFile; - private System.Windows.Forms.TextBox tbParagraph; - private System.Windows.Forms.Button btnNext; - private System.Windows.Forms.TextBox tbStyle; - private System.Windows.Forms.TextBox tbLevel; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button btnPrevious; - } -} - diff --git a/PROMS/ImportWordContent/frmImportWordContent.cs b/PROMS/ImportWordContent/frmImportWordContent.cs deleted file mode 100644 index 0646eeaf..00000000 --- a/PROMS/ImportWordContent/frmImportWordContent.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using LBWordLibrary; - -namespace ImportWordContent -{ - public partial class frmImportWordContent : Form - { - public frmImportWordContent() - { - InitializeComponent(); - btnNext.Enabled = false; - btnPage.Enabled = false; - btnPrevious.Enabled = false; - } - private void ofd_FileOk(object sender, CancelEventArgs e) - { - tbWordFile.Text = ofd.FileName; - } - private void btnBrowse_Click(object sender, EventArgs e) - { - // if we have a word doc open, then close it and reset WordApp - if (_WordApp != null) - { - _WordApp.Quit(false); - _WordApp = null; - } - ofd.ShowDialog(); - } - LBApplicationClass _WordApp; - private void btnOpen_Click(object sender, EventArgs e) - { - if (!File.Exists(tbWordFile.Text)) - { - MessageBox.Show(string.Format("{0}", tbWordFile.Text), "File Does Not Exist", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - btnNext.Enabled = false; - btnPage.Enabled = false; - btnPrevious.Enabled = false; - return; - } - _WordApp = new LBApplicationClass(); - _WordApp.Documents.Open(tbWordFile.Text); - _WordApp.Visible = true; - btnNext.Enabled = true; - btnPage.Enabled = true; - btnPrevious.Enabled = true; - } - - private void btnNext_Click(object sender, EventArgs e) - { - _WordApp.Selection.MoveDown(LBWdUnits.wdScreen, 1, 0); - } - - private void btnParagraph_Click(object sender, EventArgs e) - { - _WordApp.Selection.MoveDown(LBWdUnits.wdParagraph, 1, 0); - _WordApp.Selection.MoveDown(LBWdUnits.wdParagraph, 1, 1); - tbParagraph.Text = _WordApp.Selection.Text; - tbStyle.Text = _WordApp.Selection.Style.NameLocal; - tbLevel.Text = _WordApp.Selection.Style.ListLevelNumber.ToString(); - //_WordApp.Selection.Copy(); - Clipboard.SetText(tbParagraph.Text); - } - - private void btnPrevious_Click(object sender, EventArgs e) - { - _WordApp.Selection.MoveUp(LBWdUnits.wdParagraph, 1, 0); - _WordApp.Selection.MoveUp(LBWdUnits.wdParagraph, 1, 1); - tbParagraph.Text = _WordApp.Selection.Text; - tbStyle.Text = _WordApp.Selection.Style.NameLocal; - tbLevel.Text = _WordApp.Selection.Style.ListLevelNumber.ToString(); - } - } -} diff --git a/PROMS/ImportWordContent/frmImportWordContent.resx b/PROMS/ImportWordContent/frmImportWordContent.resx deleted file mode 100644 index c8e62f0d..00000000 --- a/PROMS/ImportWordContent/frmImportWordContent.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 53 - - \ No newline at end of file diff --git a/PROMS/MyGeneration/csla_21/CSLA_Objects.csgen b/PROMS/MyGeneration/csla_21/CSLA_Objects.csgen deleted file mode 100644 index b834e1b1..00000000 --- a/PROMS/MyGeneration/csla_21/CSLA_Objects.csgen +++ /dev/null @@ -1,5102 +0,0 @@ -##|TYPE Template -##|UNIQUEID ce9c6b98-62fe-4a36-9a31-cd33b283f574 -##|TITLE CSLA Business Objects -##|NAMESPACE CSLA_21 -##|SOURCE_TYPE Source -##|OUTPUT_LANGUAGE C# -##|GUI_ENGINE .Net Script -##|GUI_LANGUAGE C# -##|GUI_BEGIN -<%#NAMESPACE System, System.Text, System.Collections, Zeus, Zeus.UserInterface, Zeus.DotNetScript %> - -public class GeneratedGui : DotNetScriptGui -{ - public GeneratedGui( ZeusGuiContext context ) : base( context ) {} - private bool bInitializing=false; - public override void Setup() - { - bInitializing = true; - if ( !input.Contains( "chooseTables" ) || !input.Contains( "txtPath" ) || - ( !input.Contains( "chkClass" ) && !input.Contains( "chkNaming" ) ) ) - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.ReadInputFromCache(context); - ui.Title = "CSLA Object Mapping"; - ui.Width = 600; - ui.Height = 660; - - // Grab default output path - string sOutputPath = ""; - - if( input.Contains( "defaultOutputPath" ) ) - { - sOutputPath = input["defaultOutputPath"].ToString(); - } - //int top=0; - // Setup Folder selection input control. - GuiLabel label1 = ui.AddLabel( "label1", "Select the output path:", "Select the output path in the field below." ); - label1.Width = 200; - GuiTextBox outputPath = ui.AddTextBox( "outputPath", sOutputPath, "Select the Output Path." ); - outputPath.Width = 450; - GuiFilePicker selectPath = ui.AddFilePicker( "selectPath", "Select Path", "Select the Output Path.", "outputPath", true ); - selectPath.Top = outputPath.Top; - selectPath.Width = 100; - selectPath.Left = outputPath.Left + outputPath.Width + 20; - - // Setup Database selection combobox. - GuiLabel label4 = ui.AddLabel( "label4", "Select a database:", "Select a database in the dropdown below." ); - label4.Width = 250; - GuiComboBox chooseDatabase = ui.AddComboBox( "chooseDatabase", "Select a database." ); - chooseDatabase.Width = 250; - // Namespace - GuiLabel label2 = ui.AddLabel( "label2", "Namespace: ", "Provide your objects namespace." ); - label2.Width = 280; - GuiTextBox classNamespace = ui.AddTextBox( "classNamespace", "VEPROMS.CSLA.Library", "Provide your objects namespace." ); - classNamespace.Width = 280; - - GuiLabel label3 = ui.AddLabel( "label3", "Member prefix: ", "Provide your Prefix." ); - label3.Width = 100; - label3.Top = label2.Top; - label3.Left = label2.Width + 20; - GuiTextBox memberPrefix = ui.AddTextBox( "memberPrefix", "_", "" ); - memberPrefix.Width = 100; - memberPrefix.Top = classNamespace.Top; - memberPrefix.Left = classNamespace.Width + 20; - - GuiLabel label3A = ui.AddLabel( "label3A", "dbConnection: ", "Provide a Connection." ); - label3A.Width = 150; - label3A.Top = label3.Top; - label3A.Left = label3.Left+label3.Width + 10; - GuiTextBox dbConnection = ui.AddTextBox( "dbConnection", "VEPROMS", "" ); - dbConnection.Width = 150; - dbConnection.Top = memberPrefix.Top; - dbConnection.Left = memberPrefix.Left + memberPrefix.Width + 10; - GuiCheckBox chkGenerateMain = MakeGuiCheckBox( "chkGenerateMain", "Main", true, "Create Main Object",100 ); - GuiCheckBox chkFKList = MakeGuiCheckBox( "chkFKList", "FK List", true, "Create FK List Object" ,70,chkGenerateMain,100,0); - GuiCheckBox chkFKItem = MakeGuiCheckBox( "chkFKItem", "FK Item", true, "Create FK Item Object" ,70,chkFKList,0,-1); - GuiCheckBox chkInfoList = MakeGuiCheckBox( "chkInfoList", "Info List", true, "Create FK Info List Object" ,70,chkFKItem,0,-1); - GuiCheckBox chkInfo = MakeGuiCheckBox( "chkInfo", "Info", true, "Create Info Object" ,70,chkInfoList,0,-1); - GuiCheckBox chkPartBM = MakeGuiCheckBox("chkPartBM","Business Methods",true,"Create Business Methods",130,chkGenerateMain,170,0); - GuiCheckBox chkPartDA = MakeGuiCheckBox("chkPartDA","Data Access",true,"Create Data Access",130,chkGenerateMain,300,0); - GuiCheckBox chkPartVR = MakeGuiCheckBox("chkPartVR","Validation Rules",true,"Create Validation Rules",130,chkPartBM,0,-1); - GuiCheckBox chkPartEX = MakeGuiCheckBox("chkPartEX","Exists",true,"Create Exists",130,chkPartDA,0,-1); - GuiCheckBox chkPartAR = MakeGuiCheckBox("chkPartAR","Authorization Rules",true,"Create Authorization Rules",130,chkPartVR,0,-1); - GuiCheckBox chkPartDF = MakeGuiCheckBox("chkPartDF","Defaults",true,"Create Defaults",130,chkPartEX,0,-1); - GuiCheckBox chkPartFM = MakeGuiCheckBox("chkPartFM","Factory Methods",true,"Create Factory Methods",130,chkPartAR,0,-1); - GuiCheckBox chkPartCM = MakeGuiCheckBox("chkPartCM","Component Model",true,"Create Component Model Interface",130,chkGenerateMain,430,0); - GuiCheckBox chkPartL4N = MakeGuiCheckBox("chkPartL4N","Log4Net",true,"Create Log4Net Code",130,chkPartCM,0,-1); - GuiCheckBox chkVolian = MakeGuiCheckBox("chkVolian","Volian Header",true,"Add Header",130,chkPartL4N,0,-1); - GuiCheckBox chkDatabase = MakeGuiCheckBox("chkDatabase","Database.cs",true,"Create Database Object",130,chkGenerateMain,0,50); - GuiCheckBox chkPartEXT = MakeGuiCheckBox("chkPartEXT","Extension Sample",true,"Create Extensions",130,chkPartDF,0,-1); - GuiCheckBox chkCreateFiles = MakeGuiCheckBox( "chkCreateFiles", "Create Code Files", true, "Create Code Files" ,150); - GuiCheckBox chkDebug = MakeGuiCheckBox("chkDebug","Debug Output",true,"Add Debug",130,chkCreateFiles,150,0); - chkDebug.Checked = false; - GuiTextBox tbDebug = ui.AddTextBox( "tbDebug", "", "Start Date" ); - tbDebug.Top = chkDebug.Top; - tbDebug.Width = 150; - tbDebug.Left = chkDebug.Left + 150; - GuiLabel label7 = ui.AddLabel( "label7", "Select tables:", "Select tables from the listbox below." ); - //label7.Top = chkEqualsHashCode.Top + 20; - GuiListBox chooseTables = ui.AddListBox( "chooseTables", "Select tables." ); - chooseTables.Height = 120; - - // Setup Views selection multi-select listbox. - GuiLabel label8 = ui.AddLabel( "label8", "Select views:", "Select views from the listbox below." ); - GuiListBox chooseViews = ui.AddListBox( "chooseViews", "Select views." ); - chooseViews.Height = 120; - - // Attach the onchange event to the cmbDatabases control. - setupDatabaseDropdown( chooseDatabase ); - chooseDatabase.AttachEvent( "onchange", "chooseDatabase_onchange" ); - - ui.ShowGui = true; - } - else - { - ui.ShowGui = false; - } - bInitializing = false; - } - public void setupDatabaseDropdown( GuiComboBox Databases ) - { - try - { - if( MyMeta.IsConnected ) - { - Databases.BindData( MyMeta.Databases ); - if( MyMeta.DefaultDatabase != null ) - { - Databases.SelectedValue = MyMeta.DefaultDatabase.Alias; - bindTables( Databases.SelectedValue ); - bindViews( Databases.SelectedValue ); - } - } - } - catch - { - } - } - - public void bindTables( string sDatabase ) - { - int count = 0; - - GuiListBox lstTables = ui["chooseTables"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstTables.BindData( db.Tables ); - } - catch - { - } - } - - public void bindViews( string sDatabase ) - { - int count = 0; - - GuiListBox lstViews = ui["chooseViews"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstViews.BindData( db.Views ); - } - catch - { - } - } - - public void chooseDatabase_onchange( GuiComboBox control ) - { - int count = 0; - GuiComboBox cmbDatabases = ui["chooseDatabase"] as GuiComboBox; - bindTables( cmbDatabases.SelectedText ); - bindViews( cmbDatabases.SelectedText ); - GuiTextBox dbConnection = ui["dbConnection"] as GuiTextBox; - dbConnection.Text=cmbDatabases.SelectedText; - GuiTextBox classNamespace = ui["classNamespace"] as GuiTextBox; - classNamespace.Text=cmbDatabases.SelectedText + ".CSLA.Library"; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private ArrayList _classList; - private ArrayList _duplicateList; - private ArrayList _PropDescList; - private string _dbName; - private string _tableName; - private string _className; - private string _exportPath; - private string _nameSpace; - private string _prefix; - private string _dbConnection; - private string _subclassName; - private string _refreshMine; - private ITable _workingTable; - private Hashtable dicRead; - //private Hashtable dicReadI; - private bool _chkGenerateMain; - private bool _chkFKList; - private bool _chkFKItem; - private bool _chkInfoList; - private bool _chkInfo; - private bool _chkCreateFiles; - private bool _chkPartBM; - private bool _chkPartDA; - private bool _chkPartVR; - private bool _chkPartEX; - private bool _chkPartAR; - private bool _chkPartDF; - private bool _chkPartFM; - private bool _chkPartEXT; - private bool _chkPartCM; - private bool _chkDatabase; - private bool _chkPartL4N; - private bool _chkDebug; - private bool _chkVolian; - private string _tbDebug; - private string _databaseLogDebug; - private string _databaseLogInfo; - private string _databaseLogWarn; - private string _databaseLogError; - private string _databaseLogFatal; - private bool _doOldParent=false; - - public bool AddToClassList(string className) - { - if (_classList.Contains(className)) - { - _duplicateList.Add(className); - return false; - } - else - { - _classList.Add(className); - return true; - } - } - public delegate bool Filter(IColumn column); - public string Debug(string str) - { - if (_chkDebug && str.CompareTo(_tbDebug) >= 0)return "/**** MyGeneration Debug " + str + " ****/"; - return ""; - } - public string DebugLine(string str) - { - if (_chkDebug && str.CompareTo(_tbDebug) >= 0)return "\r\n/**** MyGeneration Debug " + str + " ****/"; - return ""; - } - public void SaveFile() - { - if (_chkCreateFiles) - { - output.save( Path.Combine( _exportPath, _className + ".cs" ), false ); - output.clear(); - } - } - public GeneratedTemplate( ZeusContext context ) : base( context ) {} - - public override void Render() - { - DateTime tStart = DateTime.Now; - if (context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - try{ - InitializeDictionaries(); - _dbName = input["chooseDatabase"].ToString(); - _PropDescList = new ArrayList(); - _selectedTables = input["chooseTables"] as ArrayList; - _selectedViews = input["chooseViews"] as ArrayList; - _exportPath = input["outputPath"].ToString(); - _nameSpace = input["classNamespace"].ToString(); - _prefix = input["memberPrefix"].ToString(); - _dbConnection = input["dbConnection"].ToString(); - _chkGenerateMain=(bool)input["chkGenerateMain"]; - _chkFKList=(bool)input["chkFKList"]; - _chkFKItem=(bool)input["chkFKItem"]; - _chkInfoList=(bool)input["chkInfoList"]; - _chkInfo=(bool)input["chkInfo"]; - _chkCreateFiles=(bool)input["chkCreateFiles"]; - _chkPartBM=(bool)input["chkPartBM"]; - _chkPartDA=(bool)input["chkPartDA"]; - _chkPartVR=(bool)input["chkPartVR"]; - _chkPartEX=(bool)input["chkPartEX"]; - _chkPartAR=(bool)input["chkPartAR"]; - _chkPartDF=(bool)input["chkPartDF"]; - _chkPartFM=(bool)input["chkPartFM"]; - _chkPartEXT=(bool)input["chkPartEXT"]; - _chkPartCM=(bool)input["chkPartCM"]; - _chkPartL4N=(bool)input["chkPartL4N"]; - if (_chkPartL4N) - { - _databaseLogDebug = "if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat"; - _databaseLogInfo = "if (_MyLog.IsInfoEnabled) _MyLog.InfoFormat"; - _databaseLogWarn = "if (_MyLog.IsWarnEnabled) _MyLog.WarnFormat"; - _databaseLogError = "if (_MyLog.IsErrorEnabled) _MyLog.Error"; - _databaseLogFatal = "if (_MyLog.IsFatalEnabled) _MyLog.Fatal"; - } - else - { - _databaseLogDebug = "Database.LogInfo"; - _databaseLogInfo = "Database.LogInfo"; - _databaseLogWarn = "Database.LogInfo"; - _databaseLogError = "Database.LogException"; - _databaseLogFatal = "Database.LogException"; - } - _chkDatabase=(bool)input["chkDatabase"]; - _chkDebug=(bool)input["chkDebug"]; - _chkVolian=(bool)input["chkVolian"]; - _tbDebug=(string)input["tbDebug"]; - _classList=new ArrayList(); - _duplicateList=new ArrayList(); - if (_chkDatabase)GenerateDatabase(); - foreach( string _newTable in _selectedTables ) - { - _workingTable = MyMeta.Databases[_dbName].Tables[_newTable]; - GenerateClassFiles( _workingTable ); - } - GeneratePropertyDescriptor(); - GenerateCommonRules(); - if (_duplicateList.Count > 0) - { - WriteLine("Duplicate Classes"); - foreach(string s in _duplicateList) - { - WriteLine("[{0}]",s); - } - } - DateTime tEnd = DateTime.Now; - WriteLine(string.Format("Total Generation Time: {0} Seconds",TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalSeconds)); - //foreach( string _newView in _selectedViews ) - //{ - // IView _workingView = MyMeta.Databases[_dbName].Views[_newView]; - // GenerateClassFiles( _workingView.Columns, _className); - //} - } - catch(Exception ex) - { - output.write(ex.Message); - } - } - private void InitializeDictionaries() - { - dicRead = new Hashtable(); - dicRead["Guid"]="{fmember} = dr.GetGuid(\"{fname}\");"; - dicRead["string"]="{fmember} = dr.GetString(\"{fname}\");"; - dicRead["SmartDate"]="{fmember} = dr.GetSmartDate(\"{fname}\").Text;"; - dicRead["DateTime"]="{fmember} = dr.GetDateTime(\"{fname}\");"; - dicRead["timestamp"]="dr.GetBytes(\"{fname}\", 0, {fmember}, 0, 8);"; - dicRead["image"]="{fmember} = (byte[])dr.GetValue(\"{fname}\");"; - dicRead["varbinary"]="{fmember} = (byte[])dr.GetValue(\"{fname}\");"; - dicRead["int"]="{fmember} = dr.GetInt32(\"{fname}\");"; - dicRead["Int32"]="{fmember} = dr.GetInt32(\"{fname}\");"; - dicRead["Int16"]="{fmember} = dr.GetInt16(\"{fname}\");"; - dicRead["Int16"]="{fmember} = dr.GetInt16(\"{fname}\");"; - dicRead["Int64"]="{fmember} = dr.GetInt64(\"{fname}\");"; - dicRead["byte"]="{fmember} = dr.GetByte(\"{fname}\");"; - dicRead["char"]="{fmember} = dr.GetChar(\"{fname}\");"; - dicRead["double"]="{fmember} = dr.GetDouble(\"{fname}\");"; - dicRead["float"]="{fmember} = dr.GetFloat(\"{fname}\");"; - dicRead["decimal"]="{fmember} = dr.GetDecimal(\"{fname}\");"; - dicRead["bool"]="{fmember} = dr.GetBoolean(\"{fname}\");"; - dicRead["long"]="{fmember} = dr.GetInt64(\"{fname}\");"; - dicRead["int?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int32?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int16?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int16?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int64?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["byte?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["char?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["double?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["float?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["decimal?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["bool?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["long?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["DateTime?"]="if (!dr.IsDBNull(dr.GetOrdinal(\"{fname}\"))) {fmember} = dr.GetDateTime(\"{fname}\");"; - } - private void GenerateClassFiles(ITable tbl) - { - if (_chkGenerateMain)GenerateMainClass(tbl); - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if (tbl == fk.PrimaryTable) - { - if (!IsPrimaryKey(fk)) - { - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); - if (_chkFKList)GenerateFKListClass(fk,sAlias); - if (_chkFKItem && fk.PrimaryTable != fk.ForeignTable )GenerateFKClass(fk,sAlias); - } - } - } - if (_chkInfoList && AnyNotOneToOne(tbl))GenerateInfoListClass(tbl); // InfoList if any non 1 to 1 relationships - if (_chkInfo)GenerateInfoClass(tbl); - } -// private void ShowForeignKey(ForeignKey fk) -// { -// output.writeln("Primary " + fk.PrimaryTable.Name); -// foreach(IColumn col in fk.PrimaryColumns)output.writeln(" " + col.Name + " " + col.IsInPrimaryKey.ToString()); -// output.writeln(" Foreign " + fk.ForeignTable.Name); -// foreach(IColumn col in fk.ForeignColumns)output.writeln(" " + col.Name + " " + col.IsInPrimaryKey.ToString()); -// } - private void GenerateMainClass( ITable tbl ) - { - _className = ClassName( tbl ); - _PropDescList.Add(_className); - if (!AddToClassList(_className))return; - _tableName = tbl.Alias; - vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;"); - string sInterface=""; - if (_chkPartCM) - { - //sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : BusinessBase<<%=_className%>><%=sInterface%>, IDisposable, IVEHasBrokenRules - {<% - Log4Net(); - vlnRefreshInfo(); - vlnCollection(tbl,UniqueIndexes(tbl),false); - if (_chkPartBM)vlnBusinessMethods(tbl.Columns); - if (_chkPartVR)vlnValidationRules(tbl.Columns); - if (_chkPartAR)vlnAuthorizationRules(tbl.Columns); - if (_chkPartFM)vlnFactoryMethods(tbl.Columns); - if (_chkPartDA)vlnDataAccessPortal(tbl.Columns); - if (_chkPartEX)vlnExists(tbl.Columns); - if (_chkPartDF)vlnDefaults(tbl.Columns); - vlnFooterCM(""); - if (_chkPartEXT)vlnExtension(tbl.Columns); - SaveFile(); - } - private void GenerateFKListClass(IForeignKey fk,string sAlias) - { - _className = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable )+sAlias; - _className = FKClassesName(fk)+sAlias; - if (!AddToClassList(_className))return; - if (fk.PrimaryTable == fk.ForeignTable) - _subclassName = ClassName( fk.PrimaryTable); - else - _subclassName = ClassName( fk.PrimaryTable) + ClassName( fk.ForeignTable )+sAlias; - _tableName = "//CSLATODO: No Table Name"; - vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;"); - string sInterface = ""; - if (_chkPartCM) - { - sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : BusinessListBase<<%=_className%>, <%=_subclassName%>><%=sInterface%>, IVEHasBrokenRules , IDisposable - {<% - Log4Net(); - if (_chkPartBM)vlnBusinessMethodsFKList(fk,sAlias); - if (_chkPartVR)vlnValidationRulesFKList(fk,sAlias); - if (_chkPartFM)vlnFactoryMethodsFKList(fk,sAlias); - if (_chkPartDA)vlnDataAccessPortalFKList(fk,sAlias); - vlnFooterCM(ClassesName( fk.ForeignTable ) + sAlias); - SaveFile(); - } - private void GenerateFKClass(IForeignKey fk,string sAlias) - { - _className = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - _PropDescList.Add(_className); - if (!AddToClassList(_className))return; - _tableName = fk.ForeignTable.Alias; - vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;"); - string sInterface=""; - if (_chkPartCM) - { - //sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : BusinessBase<<%=_className%>><%=sInterface%>, IVEHasBrokenRules, IDisposable - {<% - Log4Net(); - if (_chkPartBM)vlnBusinessMethodsFKItem(fk,sAlias); - if (_chkPartVR)vlnValidationRulesFKItem(fk,sAlias); - if (_chkPartAR)vlnAuthorizationRulesFKItem(fk,sAlias); - if (_chkPartFM)vlnFactoryMethodsFKItem(fk,sAlias); - if (_chkPartDA)vlnDataAccessPortalFKItem(fk,sAlias); - if (_chkPartDF)vlnDefaults(fk.ForeignTable.Columns); - vlnFooterCM(""); - if (_chkPartEXT)vlnExtension(fk.ForeignTable.Columns); - SaveFile(); - } - private void vlnFooterCM(string displayName) - { - if (_chkPartCM) - { - if (displayName!="")vlnComponentModelFKList(); -%> - } // Class<% - if (displayName!="")vlnPropertyDescriptorFKList(); - if (displayName!="")vlnConvertorFKList(displayName); - else vlnConvertorFKItem(); -%> -} // Namespace -<% - } - else - { -%> - } // Class -} // Namespace -<% - } - } - private void GenerateInfoListClass( ITable tbl ) - { - _className = ClassName( tbl ) + "InfoList"; - if (!AddToClassList(_className))return; - _tableName = tbl.Alias; - _subclassName = ClassName( tbl ) + "Info"; - vlnHeader("\r\nusing System.Collections.Generic;"); - string sInterface=""; - if (_chkPartCM) - { - sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : ReadOnlyListBase<<%=_className%>, <%=_subclassName%>><%=sInterface%>, IDisposable - {<% - Log4Net(); - if (_chkPartBM) - { -%> - #region Business Methods - internal new IList<<%=_subclassName%>> Items - { get { return base.Items; } } - public void AddEvents() - { - foreach (<%=_subclassName%> tmp in this) - { - tmp.Changed += new <%=_subclassName%>Event(tmp_Changed); - } - } - void tmp_Changed(object sender) - { - for (int i = 0; i < Count; i++) - { - if (base[i] == sender) - this.OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, i)); - } - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=_className%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - foreach (<%=_subclassName%> tmp in this) - { - tmp.Changed -= new <%=_subclassName%>Event(tmp_Changed); - } - } - #endregion<%} - if (_chkPartFM)vlnFactoryMethodsInfoList(tbl.Columns); - if (_chkPartDA)vlnDataAccessPortalInfoList(tbl.Columns); - vlnFooterCM(ClassesName( tbl ) ); - SaveFile(); - } - private void GenerateInfoClass( ITable tbl ) - { - _className = ClassName( tbl ) + "Info"; - _PropDescList.Add(_className); - if (!AddToClassList(_className))return; - _tableName = tbl.Alias; - vlnHeader("\r\nusing System.Collections.Generic;","\r\n\tpublic delegate void " + _className + "Event(object sender);"); - string sInterface=""; - if (_chkPartCM) - { - //sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : ReadOnlyBase<<%=_className%>><%=sInterface%>, IDisposable - { - public event <%=_className%>Event Changed; - private void OnChange() - { - if (Changed != null) Changed(this); - }<% - Log4Net(); - vlnCollection(tbl,new ArrayList(),true); - if (_chkPartBM)vlnBusinessMethodsInfo(tbl.Columns); - if (_chkPartFM)vlnFactoryMethodsInfo(tbl.Columns); - if (_chkPartDA)vlnDataAccessPortalInfo(tbl.Columns); - vlnInfoExtension(tbl.Columns);//20070410 - vlnFooterCM(""); - SaveFile(); - } - private void vlnHeader() - { - vlnHeader(""); - } - private void vlnHeader(string sUsing) - { - vlnHeader(sUsing,""); - } - private void vlnHeader(string sUsing,bool serialize) - { - vlnHeader(sUsing,"",serialize); - } - private void vlnHeader(string sUsing,string sDelegate) - { - vlnHeader(sUsing,sDelegate,true); - } - private void vlnHeader(string sUsing,string sDelegate,bool serialize) - { - if (_chkVolian){ -%>// ======================================================================== -// Copyright 2007 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -<% - } -%> -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; -using System.Configuration; -using System.IO;<% - if (_chkPartCM) - { -%> -using System.ComponentModel;<% - } -%><%=sUsing%> -namespace <%=_nameSpace%> -{<%=sDelegate%> - /// - /// <%=_className%> Generated by MyGeneration using the CSLA Object Mapping template - /// <% - if (serialize) - { -%> - [Serializable()]<% - } - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if (colsi.Count != colsp.Count)return false; - for(int i=0;i - #region Collection - private static List<<%=_className%>> _CacheList = new List<<%=_className%>>(); - protected static void AddToCache(<%=_className%> <%=LocalName(_className)%>) - { - if (!_CacheList.Contains(<%=LocalName(_className)%>)) _CacheList.Add(<%=LocalName(_className)%>); // In AddToCache - } - protected static void RemoveFromCache(<%=_className%> <%=LocalName(_className)%>) - { - while (_CacheList.Contains(<%=LocalName(_className)%>)) _CacheList.Remove(<%=LocalName(_className)%>); // In RemoveFromCache - } - private static Dictionary>> _CacheByPrimaryKey = new Dictionary>>();<% - //ArrayList uniqueIndexes=UniqueIndexes(tbl); - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); -%> - private static Dictionary>> _CacheBy<%=sBy%> = new Dictionary>>();<% - } -%> - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move <%=_className%>(s) from temporary _CacheList to _CacheByPrimaryKey - { - <%=_className%> tmp = _CacheList[0]; // Get the first <%=_className%> - string pKey = <%=pKey%>; - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List<<%=_className%>>(); // Add new list for PrimaryKey<% - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("tmp.{prop}.ToString()",ind.Columns," + \"_\" + ",""); -%> - _CacheBy<%=sBy%>[<%=sKey%>] = new List<<%=_className%>>(); // Add new list for <%=sBy%><% - } -%> - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list<% - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("tmp.{prop}.ToString()",ind.Columns," + \"_\" + ",""); -%> - _CacheBy<%=sBy%>[<%=sKey%>].Add(tmp); // Unique Index<% - } -%> - _CacheList.RemoveAt(0); // Remove the first <%=_className%> - } - }<% - if (bInfo && AnyNotOneToOne(_workingTable)) // AddList function for infolist - Any non 1 to 1 relationships - { -%> - internal static void AddList(<%=_className%>List lst) - { - foreach (<%=_className%> item in lst) AddToCache(item); - }<% - } -%> - protected static <%=_className%> GetCachedByPrimaryKey(<%=pKeysType%>) - { - ConvertListToDictionary(); - string key = <%=pKey2%>; - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - }<% - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("{local}.ToString()",ind.Columns," + \"_\" + ",""); - string sKeysType = FormatColumns("{ctype} {local}",ind.Columns,", ",""); - string sKeys = FormatColumns("{local}",ind.Columns,", ",""); -%> - protected static <%=_className%> GetCachedBy<%=sBy%>(<%=sKeysType%>) - { - ConvertListToDictionary(); - string key = <%=sKey%>; - if (_CacheBy<%=sBy%>.ContainsKey(key)) return _CacheBy<%=sBy%>[key][0]; - return null; - }<% - } -%> - #endregion<% - } - private void vlnBusinessMethods(IColumns Columns ) - { -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - }<% - vlnProperties(Columns); - //vlnRelatedItems(Columns); - vlnToString(Columns); - vlnGetIDValue(_workingTable.PrimaryKeys); -%> - #endregion<% - } - private string ParentCheck(IColumn col) // 20070221 - Logic to check for parent value - { - IForeignKey pfk = FKParentFK(col.Table); - if (pfk == null)return null; - IColumn relCol = RelatedColumnF(col,pfk); - if (relCol==null) return null; - return FormatColumn("\r\n\t\t\t\tif (_" + ParentName(pfk) + " != null) return _" + ParentName(pfk) + ".{prop};",relCol); - } - private void vlnProperties(IColumns Columns) - { - // Create all properties - foreach(IColumn col in Columns) - { - bool bReadOnly = col.IsInPrimaryKey || col.IsAutoKey || col.IsComputed; -// bool bRelatedObject = true; - vlnIdentity(col); -// string sParentCheck = ParentCheck(col); -// if (sParentCheck != null) -// { -// bReadOnly=true; -// bRelatedObject=false; -// } - // Need logic to handle parent child - string sParentCheck=""; - if (IsRelObj(col)) - sParentCheck =FormatColumn("\r\n\t\t\t\tif ({!member} != null) {member} = {!member}.{!column};",col); - vlnProperty(CSLAType( col ),MemberName(col) - ,PropertyName(col),InitializeValue( col ),GetDescription(col),bReadOnly || IsRelObj(col),col.IsInPrimaryKey,false,null,sParentCheck,null,null); -// if (bRelatedObject) - vlnRelObjProperty(col,bReadOnly,false); - } - // Add Foreign Key Properties - This should be controllable -// foreach(IColumn field in Columns) -// { -// if (field.IsInForeignKey && field.IsInPrimaryKey) -// { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - string sExtDirty=""; - string sExtValid=""; -// foreach( IForeignKey fk in field.ForeignKeys ) - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (fk.PrimaryTable == _workingTable){ - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); -// string sList = _className + ClassesName( fk.ForeignTable ); - string sList = FKClassName(fk ); - string sLists = FKClassesName(fk ); - vlnProperty("int",MemberName(sList) + sAlias + "Count" ,sList + sAlias + "Count", " = 0;", - "Count of " + sLists + " for this " + ClassName(_workingTable) + Debug("20070501.3"),true,false,false,null,null,null,null); - if (!IsPrimaryKey(fk)){ - //vlnProperty(sLists+sAlias,MemberName(sLists)+sAlias,sLists + sAlias, - //" = " + sLists+sAlias + ".New();","Related Field" + Debug("20070501.2"),true,false,true,fk,null,null,null); - vlnProperty(sLists+sAlias,MemberName(sLists)+sAlias,sLists + sAlias, - " = null;","Related Field" + Debug("20070501.2"),true,false,true,fk,null,null,null); - //sExtDirty += " || " + MemberName(sLists+sAlias) + ".IsDirty"; - //sExtValid += " && " + MemberName(sLists+sAlias) + ".IsValid"; - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sLists+sAlias)); - // Added List 20100924 - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName(sLists+sAlias)); - } else { - string sItem = ClassName(fk.ForeignTable); - //vlnProperty(sItem+sAlias, MemberName("My" + sItem)+sAlias,"My" + sItem + sAlias, - //" = My" + sItem+sAlias + ".New();","Related Field",true,false,true,fk,null,null); - string sCheck = string.Format("\r\n\t\t\t\tif ({0} == null) {0} = {1}.New({2});", - MemberName("My" + sItem)+sAlias, sItem, OneToOne(fk) ? "this" : FormatColumns("{member}",fk.PrimaryColumns,", ","")); - vlnProperty(sItem+sAlias, MemberName("My" + sItem)+sAlias,"My" + sItem + sAlias, - " = null;","Related Field" + Debug("20070501.1"),true,false,true,fk,sCheck,null,null); - bool bReq = !fk.ForeignColumns[0].IsNullable; - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sItem+sAlias)); - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName("My" + sItem+sAlias)); - } - } - else // - { - if (IsPrimaryKey1(fk) && !IsPrimaryKey(fk)){ - bool bReq = !fk.ForeignColumns[0].IsNullable; - string sClass = ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk); - //sExtDirty += string.Format(" || ({0} == null? " + bReq.ToString().ToLower() + " : {0}.IsDirty)",MemberName("My" + sClass)); - //sExtValid += string.Format(" && ({0} == null? " + (!bReq).ToString().ToLower() + " : {0}.IsValid)",MemberName("My" + sClass)); - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sClass)); - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName("My" + sClass)); - } - } - } - //if (sExtDirty!="") - vlnDirty(sExtDirty); - //if (sExtValid!="")vlnOverride("Valid",sExtValid); - vlnValid(sExtValid); -// } -// } - } - private void vlnDirty(string sExtension) - { - if(sExtension == "") - { - %> - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - }<% - } - else - { - %> - public override bool IsDirty - { - get - { - if ( base.IsDirty ) - return true; - return IsDirtyList(new List()); - } - } - public bool IsDirtyList(List list) - { - if (base.IsDirty || list.Contains(this)) - return base.IsDirty; - list.Add(this); - return base.IsDirty<%=sExtension%>; - }<% - } - } - private void vlnValid(string sExtension) - { - if(sExtension == "") - { - %> - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - }<% - } - else - { - %> - public override bool IsValid - { - get { return IsValidList(new List()); } - } - public bool IsValidList(List list) - { - if(list.Contains(this)) - return (IsNew && !IsDirty) ? true : base.IsValid; - list.Add(this); - return ((IsNew && !IsDirty) ? true : base.IsValid)<%=sExtension%>; - }<% - } - } - private void vlnIdentity(IColumn column) - { - if (column.IsAutoKey) - { - string sProp=FormatColumn("{prop}",column); -%> - private static int _next<%=sProp%> = -1; - public static int Next<%=sProp%> - { - get { return _next<%=sProp%>--; } - }<% - } - } - private void vlnLazyLoad(string sType,string sMemberName,string sPropertyName,IForeignKey fk) - { - if (fk==null)return; - //if (OneToOne(fk.ForeignTable))return; - if (OneToOne(fk))return; - string sBy = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sKeys=FormatColumns("{prop}",fk.PrimaryColumns,", ",""); - string sRelClass=FKClassesName(fk) + GetAlias(fk); - string sClassName=MemberName(FKClassName(fk) + GetAlias(fk));//20070207 -%> - if (<%=sClassName%>Count < 0 || (<%=sClassName%>Count > 0 && <%=sMemberName%> == null)) - <%=sMemberName%> = <%=sType%>.GetBy<%=sBy%>(<%=sKeys%>); - if (<%=sClassName%>Count < 0 ) - <%=sClassName%>Count = <%=sMemberName%> == null ? 0 : <%=sMemberName%>.Count; - if (<%=sMemberName%> == null) - <%=sMemberName%> = <%=sRelClass%>.New();<% - } - private void vlnResetLazyLoad(string sType,string sMemberName,string sPropertyName,IForeignKey fk) - { - if (fk==null)return; - //if (OneToOne(fk.ForeignTable))return; - if (OneToOne(fk))return; - string sBy = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sKeys=FormatColumns("{prop}",fk.PrimaryColumns,", ",""); - string sRelClass=FKClassesName(fk) + GetAlias(fk); - string sClassName=MemberName(FKClassName(fk) + GetAlias(fk));//20070207 -%> - public void Reset<%=sMemberName%>() - { - <%=sClassName%>Count = -1; - }<% - } - private void vlnProperty(string sType,string sMemberName,string sPropertyName,string sDefault,string sDescription,bool bReadOnly,bool bPrimaryKey,bool bCompModel,IForeignKey fk,string sParentCheck,string sParentCheck2, string sParentCheck3) - { - string suffix = (sPropertyName==_className?"Fld":""); -%> - private <%=ReturnType(sType)%> <%=sMemberName%><%=suffix%><%=sDefault%><% - if (!sDefault.EndsWith("timestamp")){ - if (sDescription != ""){ -%> - /// - /// <%=sDescription%> - /// <% - } - if (_chkPartCM && bCompModel) - { -%> - [TypeConverter(typeof(<%=sType%>Converter))]<% - } - if (bPrimaryKey){ -%> - [System.ComponentModel.DataObjectField(true, true)]<% - } -%> - public <%=ReturnType(sType)%> <%=sPropertyName%><%=suffix%> - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sPropertyName%><%=suffix%>", true);<%vlnLazyLoad(sType,sMemberName,sPropertyName,fk);%><%=sParentCheck%> - return <%=sMemberName%><%=suffix%><%=ReturnMember(sType)%>; - }<% - if (!bReadOnly){ - switch(sType) - { - case "SmartDate": -%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty("<%=sPropertyName%><%=suffix%>", true); - if (value == null) value = string.Empty; - <%=sMemberName%><%=suffix%> = value; - try - { - SmartDate tmp = new SmartDate(value); - if (<%=sMemberName%><%=suffix%> != tmp.ToString()) - { - <%=sMemberName%><%=suffix%> = tmp.ToString(); - // CSLATODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - }<% - break; - default: -%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty("<%=sPropertyName%><%=suffix%>", true);<% - if (sType=="string"){ -%> - if (value == null) value = string.Empty;<% - } - if(sParentCheck2 ==null) // 20080722RHM - { -%> - if (<%=sMemberName%><%=suffix%> != value)<% - } - else// 20080722RHM - { -%> - if (<%=sParentCheck3%>)<% - } -%> - { - <%=sMemberName%><%=suffix%><%=ReturnMember(sType)%> = value;<%=sParentCheck2%> - PropertyHasChanged(); - } - }<% - break; - } - } -%> - }<%vlnResetLazyLoad(sType,sMemberName,sPropertyName,fk);%><% - } - - } - private void vlnToString(IColumns Columns) - { -%> - // CSLATODO: Replace base <%=_className%>.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current <%=_className%> - //public override string ToString() - //{ - // return base.ToString(); - //}<% - } - private void vlnGetIDValue(IColumns Columns) - { - string keyID=""; - string sep="("; - if (Columns.Count==1){ - keyID=MemberName(Columns[0]); - } - else - { - foreach(IColumn field in Columns) - { - keyID+=sep+MemberName(field)+ ".ToString()"; - sep=" + \".\" + "; - } - keyID+=").GetHashCode()"; - } -%> - // CSLATODO: Check <%=_className%>.GetIdValue to assure that the ID returned is unique - /// - /// Overrides Base GetIdValue - Used internally by CSLA to determine equality - /// - /// A Unique ID for the current <%=_className%> - protected override object GetIdValue() - { - return My<%=_className%>Unique; // Absolutely Unique ID - }<% - } - private string extName - { - get {return _className + "Extension";} - } - private string extMName - { - get {return MemberName(_className + "Extension");} - } - private void vlnValidationRules(IColumns Columns ) - { -%> - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - {<%=Debug("20070509.vlnValidationRules")%> - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null;<% - vlnBrokenRuleObjects(Columns); -%> - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - {<% - foreach(IColumn field in Columns) - { - if (field.LanguageType=="string") - { - vlnAddRequired(field); - if (field.CharacterMaxLength < 2147483647) - vlnAddMaxLength(PropertyName(field),field.CharacterMaxLength); - } - if (CSLAType( field )=="SmartDate") - { - vlnAddRequired(field); - string sName = PropertyName(field); -%> - ValidationRules.AddRule<<%=_className%>>(<%=sName%>Valid, "<%=sName%>");<% - } - string sObjectRequired = RequiredRelatedColumn(field); - if (sObjectRequired != null) - { -%> - ValidationRules.AddRule<<%=_className%>>(<%=sObjectRequired%>Required, "<%=sObjectRequired%>");<% - } - } -%> - //ValidationRules.AddDependantProperty("x", "y"); - <%=extMName%>.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - <%=extMName%>.AddInstanceValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - }<% - foreach(IColumn field in Columns) - { - if (CSLAType( field )=="SmartDate") - { - string sName = PropertyName(field); - string sMember = MemberName(field); -%> - private static bool <%=sName%>Valid(<%=_className%> target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target.<%=sMember%>); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - }<% - } - } - foreach(IColumn col in Columns) - { - string sColumn = RequiredRelatedColumn(col); - if (sColumn != null){ // Let the Validation Rules handle required fields - string sMemberRaw = MemberName(col); - string sMemberReq = MemberName(sColumn); -%> - private static bool <%=sColumn%>Required(<%=_className%> target, Csla.Validation.RuleArgs e) - { - if (target.<%=sMemberRaw%> == 0 && target.<%=sMemberReq%> == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - }<% - - } - } -%> - // Sample data comparison validation rule - //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) - //{ - // if (_started > _ended) - // { - // e.Description = "Start date can't be after end date"; - // return false; - // } - // else - // return true; - //} - #endregion<% - } - private void vlnAddRequired(IColumn column) - { - string sName = PropertyName(column); - if (!column.IsNullable) - { -%> - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "<%=sName%>");<% - } - } - private void vlnAddMaxLength(string sName,int maxlen) - { -%> - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("<%=sName%>", <%=maxlen.ToString()%>));<% } - private void vlnAuthorizationRules(IColumns Columns ) - { -%> - #region Authorization Rules - protected override void AddAuthorizationRules() - { - //CSLATODO: Who can read/write which fields<% - foreach(IColumn field in Columns) - { - if (field.DataTypeName != "timestamp"){ -%> - //AuthorizationRules.AllowRead(<%=PropertyName(field)%>, "");<% - } - } - foreach(IColumn field in Columns) - { - if (!(field.IsInPrimaryKey || field.IsAutoKey || field.IsComputed)) - { -%> - //AuthorizationRules.AllowWrite(<%=PropertyName(field)%>, "");<% - } - } -%> - <%=extMName%>.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - <%=extMName%>.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - }<% - // Need logic to Add CanDelete if the items contains any related records - // Get a list of related objects - string sRelatedCounts = ""; - string sRelatedCounts1 = ""; - // Loop through Foreign Keys associated with the Primary Key - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (fk.PrimaryTable == _workingTable) - { - bool isPrimary = true; - foreach(IColumn c in fk.PrimaryColumns) - { - isPrimary &= c.IsInPrimaryKey; - } - if (isPrimary) - { - if (fk.PrimaryTable == fk.ForeignTable) - { - sRelatedCounts1 += "\r\n\t\t\t\tusedByCount += " + MemberName(FKClassName1(fk)) + "Count;"; - } - else - { - sRelatedCounts += "\r\n\t\t\t\tusedByCount += " + MemberName(FKClassName1(fk)) + "Count;"; - } - } - } - } - sRelatedCounts += sRelatedCounts1; - if (sRelatedCounts != "") - { -%> - /// - /// determines if related records (Foreign Keys) will keep this Item from being deleted - /// - public bool CanDelete - { - get - { - // Check to make sure that there are not any related records - int usedByCount = 0;<%=sRelatedCounts%> - return (usedByCount == 0); - } - }<% - } -%> - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion<% - } - private bool MatchingColumns(IList cols1,IList cols2) - { - if (cols1.Count != cols2.Count)return false; - ArrayList cols=new ArrayList(); - foreach(IColumn col in cols1)cols.Add(col.Name); - foreach(IColumn col in cols2)cols.Remove(col.Name); - return cols.Count==0; - } - private void vlnFactoryMethods(IColumns Columns ) - { - string pKeys=FormatColumns("{prop}.ToString()",_workingTable.PrimaryKeys," + \"_\" + "); - string sKeys=FormatColumns("{local}",_workingTable.PrimaryKeys,", "); - string sKeysTypes=FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", ");; - ArrayList reqList = ReqList(Columns); - ArrayList makeList = MakeList(Columns); - ArrayList makeList2 = MakeList2(Columns); - ArrayList makeList3 = MakeList3(Columns); - ArrayList makeList4 = MakeList4(Columns); - Hashtable dicCheck = new Hashtable(); - IForeignKey fkParent = FKParentFK(_workingTable); - string sParent = ParentName(fkParent); - dicCheck["DateTime"]= - "if ({local} >= new DateTime(1753, 1, 1) && {local} <= new DateTime(9999, 12, 31)) tmp.{prop} = {local};"; - dicCheck["DateTime?"]= - "if ({local} != null && ((DateTime){local}) >= new DateTime(1753, 1, 1) && ((DateTime){local}) <= new DateTime(9999, 12, 31)) tmp.{prop} = {local};"; - dicCheck["string"]= - "if ({local} != null && {local} != string.Empty) tmp.{prop} = {local};"; -%> - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _<%=_className%>Unique = 0; - protected static int <%=_className%>Unique - { get { return ++_<%=_className%>Unique; } } - private int _My<%=_className%>Unique = <%=_className%>Unique; - public int My<%=_className%>Unique // Absolutely Unique ID - Editable - { get { return _My<%=_className%>Unique; } } - protected <%=_className%>() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=_className%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(<%=pKeys%>)) - { - List<<%=_className%>> list<%=_className%> = _CacheByPrimaryKey[<%=pKeys%>]; // Get the list of items - while (list<%=_className%>.Contains(this)) list<%=_className%>.Remove(this); // Remove the item from the list - if (list<%=_className%>.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(<%=pKeys%>); // remove the list - }<% - - ArrayList uniqueIndexes=UniqueIndexes(_workingTable); - IIndex makeIndex=null; - if(uniqueIndexes.Count > 0) - { -%> - string myKey;<% - } - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("{prop}.ToString()",ind.Columns," + \"_\" + ",""); - if (MatchingColumns(ind.Columns,makeList))makeIndex=ind; -%> - myKey = null; - foreach (string key in _CacheBy<%=sBy%>.Keys) - if (_CacheBy<%=sBy%>[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List<<%=_className%>> list<%=_className%> = _CacheBy<%=sBy%>[myKey]; // Get the list of items - list<%=_className%>.Remove(this); // Remove the item from the list - if (list<%=_className%>.Count == 0) //If there are no items left in the list - _CacheBy<%=sBy%>.Remove(myKey); // remove the list - }<% - } - string sMakeListParamTypes = ""; - string sMakeListParams = ""; - string sSetTmp = ""; - string sParentCheck = ""; -%> - } - public static <%=_className%> New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a <%=_className%>"); - try - { - return DataPortal.Create<<%=_className%>>(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.New", ex); - } - }<% - // if makelist != reqlist create a new for reqlist - if (!SameList(makeList,reqList) && reqList.Count > 0) - { - BuildLists(reqList,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck); - if(SameList(reqList,makeList4)) - BuildMake(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck + Debug("20070427.4"),makeIndex); - } - BuildLists(makeList,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck ); - BuildMake(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck + Debug("20070427.3"),makeIndex); - if (!SameList(makeList,makeList4) && !SameList(reqList,makeList4) && makeList4.Count > 0) - { - BuildLists(makeList4,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck); - BuildMake(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck + Debug("20070427.4"),makeIndex); - } - if (makeList3.Count > 0) - { -%> - public static <%=_className%> Make<%=_className%>(<%=FormatColumns("{rtype} {local}",makeList2,", ","")%>) - {<%=DebugLine("20070427.1")%> - <%=_className%> tmp = <%=_className%>.New(<%=FormatColumns("{local}",makeList,", ","")%>); -<%=FormatColumns(dicCheck,makeList3,"\r\n","\t\t\t")%> - return tmp.Save(); - }<% - } - string sExtra1= ""; - string sExtra2= ""; - if (FKParent(_workingTable)){ - sExtra1=", " + _className + " " + ParentName(fkParent).ToLower(); - sExtra2=", " + ParentName(fkParent).ToLower(); - } - if (OneToOne(_workingTable) && !SameList(makeList,_workingTable.PrimaryKeys) && !SameList(reqList,_workingTable.PrimaryKeys) && !SameList(makeList4,_workingTable.PrimaryKeys)) - { - BuildLists(_workingTable.PrimaryKeys,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - sSetTmp += "\r\n\t\t\ttmp.MarkClean();"; - sSetTmp += "\r\n\t\t\ttmp.MarkAsChild();"; - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck); - } -%> - public static <%=_className%> Get(<%=sKeysTypes%>) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a <%=_className%>"); - try - { - <%=_className%> tmp = GetCachedByPrimaryKey(<%=sKeys%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new PKCriteria(<%=sKeys%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - }<% - //IForeignKey fkParent = FKParentFK(_workingTable); - if (fkParent != null && _doOldParent) - { - string parKeys = FormatColumns("{member}",fkParent.ForeignColumns,", "); -%> - public <%=_className%> Get<%=sParent%>() - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a <%=_className%>"); - try - { - <%=_className%> tmp = GetCachedByPrimaryKey(<%=parKeys%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new <%=sParent%>Criteria(<%=parKeys%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - }<% - } -// GetByUniqueIndex() - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKeyType = FormatColumns("{ctype} {local}",ind.Columns,", ",""); - string sKey = FormatColumns("{local}",ind.Columns,", ",""); -%> - public static <%=_className%> GetBy<%=sBy%>(<%=sKeyType%>) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a <%=_className%>"); - try - { - <%=_className%> tmp = GetCachedBy<%=sBy%>(<%=sKey%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new <%=sBy%>Criteria(<%=sKey%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.GetBy<%=sBy%>", ex); - } - }<% - } -%> - public static <%=_className%> Get(SafeDataReader dr<%=sExtra1%>) - { - if (dr.Read()) return new <%=_className%>(dr<%=sExtra2%>); - return null; - } - internal <%=_className%>(SafeDataReader dr) - { - ReadData(dr); - }<% - if (FKParent(_workingTable)){ -%> - private <%=_className%>(SafeDataReader dr<%=sExtra1%>) - { - ReadData(dr); - MarkAsChild(); - } - internal <%=_className%>(SafeDataReader dr, int parentID) - { - ReadData(dr); - MarkAsChild(); - }<% - } -%> - public static void Delete(<%=sKeysTypes%>) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a <%=_className%>"); - try - { - DataPortal.Delete(new PKCriteria(<%=sKeys%>)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Delete", ex); - } - } - public override <%=_className%> Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a <%=_className%>"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a <%=_className%>"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a <%=_className%>"); - try - { - BuildRefreshList(); - <%=_className%> <%=LocalName(_className)%> = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(<%=LocalName(_className)%>);//Refresh the item in AllList - ProcessRefreshList(); - return <%=LocalName(_className)%>; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion<% - } - private void BuildNew(string sMakeListParamTypes, string sMakeListParams, string sSetTmp, string sParentCheck) - { - %> - public static <%=_className%> New(<%=sMakeListParamTypes%>) - { - <%=_className%> tmp = <%=_className%>.New(); -<%=sSetTmp%> - return tmp; - }<% - } - private void BuildMake(string sMakeListParamTypes, string sMakeListParams, string sSetTmp, string sParentCheck,IIndex makeIndex) - { - %> - public static <%=_className%> Make<%=_className%>(<%=sMakeListParamTypes%>) - {<%=DebugLine("20070427.2")%><% - if (makeIndex != null) - { -%> - <%=_className%> tmp = null; - <%=sParentCheck%>tmp = GetBy<%=FormatColumns("{prop}",makeIndex.Columns,"_","")%>(<%=FormatColumns("{!localcolumn}",makeIndex.Columns,", ","")%>); - if (tmp != null) return tmp;// It does exist, return it. - tmp = <%=_className%>.New(<%=sMakeListParams%>);<% - } - else - { -%> - <%=_className%> tmp = <%=_className%>.New(<%=sMakeListParams%>);<% - } -%> - if (tmp.IsSavable) - tmp = tmp.Save(); - else - { - Csla.Validation.BrokenRulesCollection brc = tmp.ValidationRules.GetBrokenRules(); - tmp._ErrorMessage = "Failed Validation:"; - foreach (Csla.Validation.BrokenRule br in brc) - { - tmp._ErrorMessage += "\r\n\tFailure: " + br.RuleName; - } - } - return tmp; - }<% - } - private void vlnRefreshInfo() - { - string sClass = ClassName(_workingTable); - string sClasses = ClassesName(_workingTable); - string sDeclare = "\t\tprivate List<" + sClass + "> _Refresh" + sClasses + " = new List<" + sClass + ">();"; - string sReset = "\t\t\t_Refresh" + sClasses + " = new List<" + sClass + ">();"; - string sCheck = "\t\t\tif (IsDirty)\r\n\t\t\t\trefresh" + sClasses + ".Add(this);"; - string sRefreshDeclare = "List<" + sClass + "> refresh" + sClasses; - string sRefreshRelated = "refresh" + sClasses; - string sRefreshRelated1 = "_Refresh" + sClasses; - string sProcess = "\t\t\tforeach (" + sClass + " tmp in _Refresh" + sClasses + ")\r\n\t\t\t{\r\n\t\t\t\t" + - sClass + "Info.Refresh(tmp);"; - foreach(IForeignKey fk in _workingTable.ForeignKeys) // 20070220 - { - if (_workingTable != fk.PrimaryTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - sProcess += string.Format("\r\n\t\t\t\tif (tmp._My{1} != null) {0}Info.Refresh(tmp._My{1});",ClassName(fk.PrimaryTable.Name),ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); - } - } - sProcess += "\r\n\t\t\t}"; - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in _workingTable.ForeignKeys) // 20070220 - { - if (fk.PrimaryTable == fk.ForeignTable) // Parent Child - { - sCheck += "\r\n\t\t\tif (_" + ChildName(fk) + sClasses + " != null && _" + ChildName(fk) + sClasses + ".IsDirty)\r\n\t\t\t{\r\n\t\t\t\tforeach (" + sClass + - " tmp in _" + ChildName(fk) + sClasses + ")\r\n\t\t\t\t{\r\n\t\t\t\t\ttmp.AddToRefreshList(" + - "{{refreshRelated}});\r\n\t\t\t\t}\r\n\t\t\t}"; - } - else - { - if (!IsPrimaryKey(fk) && _workingTable == fk.PrimaryTable){ - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); - string sItem = ClassName(fk.ForeignTable); - string sFItem = ClassName(_workingTable) + ClassName(fk.ForeignTable) + sAlias; - string sFItems = ClassName(_workingTable) + ClassesName(fk.ForeignTable) + sAlias; - sDeclare += "\r\n\t\tprivate List<" + sFItem + "> _Refresh" + sFItems + " = new List<" + sFItem + ">();"; - sReset += "\r\n\t\t\t_Refresh" + sFItems + " = new List<" + sFItem + ">();"; - sRefreshRelated += ", refresh" + sFItems; - sRefreshRelated1 += ", _Refresh" + sFItems; - sRefreshDeclare += ", List<" + sFItem + "> refresh" + sFItems; - sCheck += "\r\n\t\t\tif (" + MemberName(sFItems) + " != null && " + MemberName(sFItems) + ".IsDirty)\r\n\t\t\t{\r\n\t\t\t\tforeach (" + sFItem + - " tmp in " + MemberName(sFItems) + ")\r\n\t\t\t\t{\r\n\t\t\t\t\tif (tmp.IsDirty) refresh" + sFItems + - ".Add(tmp);\r\n\t\t\t\t}\r\n\t\t\t}"; - sProcess += "\r\n\t\t\tforeach (" + sFItem + " tmp in _Refresh" + sFItems + ")\r\n\t\t\t{\r\n\t\t\t\t" + - sItem + "Info.Refresh(" + (ForeignPrimary(fk)?"this, ":"") + "tmp);\r\n\t\t\t}"; - } - } - } - sCheck = sCheck.Replace("{{refreshRelated}}",sRefreshRelated); -%> - #region Refresh -<%=sDeclare%> - private void AddToRefreshList(<%=sRefreshDeclare%>) - { -<%=sCheck%> - } - private void ClearRefreshList() - { -<%=sReset%> - } - private void BuildRefreshList() - { - ClearRefreshList(); - AddToRefreshList(<%=sRefreshRelated1%>); - } - private void ProcessRefreshList() - { -<%=sProcess%> - ClearRefreshList(); - } - #endregion<% - } - private void ReadOnlyProperties(IColumns columns) - { - output.write(FormatColumns("\t\t\tprivate {ctype} {member};\r\n" + - "\t\t\tpublic {ctype} {prop}\r\n\t\t\t{ get { return {member}; } }" - ,columns,"\r\n")); - } - private void vlnPKCriteria() - { -// PKCriteria -%> - [Serializable()] - protected class PKCriteria - { -<% -// Loop through Primary Keys -// string sep=""; - string sValues=FormatColumns("\t\t\t\t{member} = {local};",_workingTable.PrimaryKeys,"\r\n"); - string sKeysTypes=FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", "); -// foreach(IColumn field in _workingTable.PrimaryKeys) -// { -// sKeysTypes+=sep + FormatColumn("{ctype} {member}",field); -// sValues+= FormatColumn("\t\t\t\t{member}={@};\r\n",field); -// sep=", "; -// } - ReadOnlyProperties(_workingTable.PrimaryKeys); -%> - public PKCriteria(<%=sKeysTypes%>) - { -<%=sValues%> - } - }<% - } - private void vlnReadData(IColumns cols,bool bEditable) - { - IList cols2=cols; - if (!bEditable)cols2=NotTimestamp(cols); -%> - private void ReadData(SafeDataReader dr) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.ReadData", GetHashCode()); - try - { -<%=FormatColumns(dicRead,cols2,"\r\n","\t\t\t\t")%><% - //Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey FK in _workingTable.ForeignKeys) - { - //if (FK.PrimaryTable == _workingTable && !IsPrimaryKey(FK)) - if (FK.PrimaryTable == _workingTable) // 20071023 - { - string sAlias = GetAlias(FK); - string sClass = FKClassName(FK); - string sField = FKFieldName(FK); -%> - <%=MemberName(sClass)+ sAlias%>Count = dr.GetInt32("<%=sField + sAlias%>Count");<% - } - } - if (bEditable){ -%> - MarkOld();<% - } -%> - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.ReadData", ex); - } - }<% - } - private void vlnDataAccessPortal(IColumns Columns ) - { -%> - #region Data Access Portal<% - vlnPKCriteria(); -// Parent Criteria - IForeignKey fkParent = FKParentFK(_workingTable); - string sParent = ParentName(fkParent); - if (fkParent != null && _doOldParent) - { - string parKeys = FormatColumns("{member}",fkParent.ForeignColumns,", "); - string parValues=FormatColumns("\t\t\t\t{member} = {local};",fkParent.ForeignColumns,"\r\n"); - string parKeysTypes=FormatColumns("{ctype} {local}",fkParent.ForeignColumns,", "); -%> - [Serializable()] - private class <%=sParent%>Criteria - { -<%ReadOnlyProperties(fkParent.ForeignColumns);%> - public <%=sParent%>Criteria(<%=parKeysTypes%>) - { -<%=parValues%> - } - }<% - } -// Unique Criteria - ArrayList uniqueIndexes=UniqueIndexes(_workingTable); - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string indKeyTypes = FormatColumns("{ctype} {local}",ind.Columns,", ",""); - string indValues=FormatColumns("\t\t\t\t{member} = {local};",ind.Columns,"\r\n"); -%> - [Serializable()] - private class <%=sBy%>Criteria - { -<%ReadOnlyProperties(ind.Columns);%> - public <%=sBy%>Criteria(<%=indKeyTypes%>) - { -<%=indValues%> - } - }<% - } -// DataPortal_Create -%> - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { -<%=FormatColumns("{member} = new Guid();",Guid(Columns),"\r\n","\t\t\t")%><%=FormatColumns("{member} = Next{prop};",AutoKey(Columns),"\r\n","\t\t\t")%> - // Database Defaults -<%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(Columns),"\r\n","\t\t\t")%> - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - }<% - vlnReadData(Columns,true); - vlnDataPortalFetch("PK",_workingTable.PrimaryKeys,_className,true); -// IForeignKey fkParent = FKParentFK(_workingTable); - if (fkParent != null && _doOldParent) - { -// string sParent = ParentName(fkParent); - vlnDataPortalFetch(sParent,fkParent.ForeignColumns,sParent + _className,false); - } - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - vlnDataPortalFetch(sBy,ind.Columns,_className + "By" + sBy,false); - } - string sUpdateMyList=""; - foreach(IForeignKey fk in _workingTable.ForeignKeys) // 20070220 - { - if (_workingTable != fk.PrimaryTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - sUpdateMyList += string.Format("\r\n\t\t\t\tif (_My{0} != null) _My{0}.Update();",ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); - } - } -// DataPortal_Insert -%> - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - SQLInsert(); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.DataPortal_Insert", ex); - } - finally - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - {<%=sUpdateMyList%> - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "add<%=_className%>"; - // Input All Fields - Except Calculated Columns<% - foreach(IColumn column in Columns) - { - if ((!column.IsAutoKey) && (!column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\t{ifLogicP}cm.Parameters.AddWithValue(\"{@}\", {?dbprefix}{Parent}{?dbsuffix});",column));// 20070316 - } - } -%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\t{member} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } -%> - } - MarkOld(); - // update child objects<% - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable){ - string sObjName; - if (!IsPrimaryKey(fk)){ - sObjName = FKClassesName( fk ) + GetAlias(fk); -%> - if (<%=MemberName(sObjName)%> != null) <%=MemberName(sObjName)%>.Update(this);<% - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - if (<%=MemberName("My" + sObjName)%> != null) <%=MemberName("My" + sObjName)%>.Update(this);<% - } - } - } - } - } -%> - <%=_databaseLogDebug%>("[{0}] <%=_className%>.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.SQLInsert", ex); - } - }<% -// Add - string sKeysTypesI=""; - string sKeysI=""; - string sValuesI=""; - string sepi=""; - foreach(IColumn column in Columns) - { - if ((!column.IsComputed)) - { - if (!column.IsAutoKey){ - sValuesI+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {parent}{?dbtype});",column); - } - if (IsParentCol(column)){ - sKeysTypesI+=sepi + _className + " my" + ParentName(column.ForeignKeys[0]); - sKeysI+=sepi + "my" + ParentName(column.ForeignKeys[0]); - } - else - { - sKeysTypesI+=sepi + FormatColumn("{?ref}{!type} {!local}",column); - sKeysI+=sepi + FormatColumn("{?ref}{member}",column); - } - sepi=", "; - } - } - string sRetval = (IsTimestamp(Columns).Count > 0 ? "byte[]" : "void"); -%> - [Transactional(TransactionalTypes.TransactionScope)] - public static <%=sRetval%> Add(SqlConnection cn, <%=sKeysTypesI%>) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "add<%=_className%>"; - // Input All Fields - Except Calculated Columns<%=sValuesI%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - IColumn tsCol=null; - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - if (column.DataTypeName=="timestamp")tsCol=column; - else output.write(FormatColumn("\r\n\t\t\t\t\t{local} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } - if (tsCol != null) - output.write(FormatColumn("\r\n\t\t\t\t\treturn ({ctype})cm.Parameters[\"{@new}\"].Value;",tsCol)); - else - output.write("\r\n\t\t\t// No Timestamp value to return"); -%> - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Add", ex); - throw new DbCslaException("<%=_className%>.Add", ex); - } - }<% -// DataPortal_Update -%> - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (!IsDirty) return; // If not dirty - nothing to do - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Update", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - SQLUpdate(); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Update", ex); - _ErrorMessage = ex.Message; - if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLUpdate() - { - if (!IsDirty) return; // If not dirty - nothing to do - <%=_databaseLogDebug%>("[{0}] <%=_className%>.SQLUpdate", GetHashCode()); - try - {<%=sUpdateMyList%> - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "update<%=_className%>"; - // All Fields including Calculated Fields<% - foreach(IColumn column in Columns) - { - output.write(FormatColumn("\r\n\t\t\t\t\t\t{ifLogicP}cm.Parameters.AddWithValue(\"{@}\", {?dbprefix}{Parent}{?dbsuffix});",column)); - } -%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - output.write(FormatColumn("\r\n\t\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - output.write(FormatColumn("\r\n\t\t\t\t\t\t{member} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } -%> - } - } - MarkOld(); - // use the open connection to update child objects<% - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable){ - string sObjName; - if (!IsPrimaryKey(fk)){ - sObjName = FKClassesName( fk ) + GetAlias( fk ); -%> - if (<%=MemberName(sObjName)%> != null) <%=MemberName(sObjName)%>.Update(this);<% - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - if (<%=MemberName("My" + sObjName)%> != null) <%=MemberName("My" + sObjName)%>.Update(this);<% - } - } - } - } - } -%> - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.SQLUpdate", ex); - _ErrorMessage = ex.Message; - if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; - } - }<% -// Update - string sKeysTypesU=""; - string sKeysU=""; - string sValuesU=""; - string sepu=""; - foreach(IColumn column in Columns) - { - //if ((!column.IsComputed)) - //{ - // Commentted out the following two lines for Permissions - // if (!column.IsAutoKey) - //sValuesU+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {parent}{?dbtype});",column); - sValuesU+=FormatColumn("\r\n\t\t\t\t\t{ifLogicl}cm.Parameters.AddWithValue(\"{@}\", {local});",column); - //if (IsParentCol(column)){ - // sKeysTypesU+= sepi + "/*1*/ " + _className + " my" + sParent; - // sKeysU+=sepi + "my" + sParent; - //} - //else - //{ - sKeysTypesU+=sepu + FormatColumn("{?ref}{ctype} {local}",column); - sKeysU+=sepu + FormatColumn("{?ref}{member}",column); - //} - sepu=", "; - //} - } - if (OneToOne(_workingTable)) // 20070314 - { - IForeignKey fk = _workingTable.PrimaryKeys[0].ForeignKeys[0]; - string sPrimaryTable = ClassName(fk.PrimaryTable); - string sPrimaryLocal = LocalName(sPrimaryTable); - string sInsert=""; - string sUpdate=""; - // string sDelete=""; - string sTimestamp=""; - sepu=""; - sepi=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - if (!IsIn(column,fk.ForeignColumns)) - { - string sRefI = ParentRef(column); - string sRefU = ParentRefU(column); - if (sRefI==null) - { - sRefI = FormatColumn("{?ref}{?dbprefix}{!propmember}{?dbsuff}",column); - sRefU = FormatColumn("{?ref}{?dbprefix}{member}{?dbsuff}",column); - } - sUpdate+=sepu + sRefU; - sepu=", "; - if (!column.IsComputed)// && !column.IsAutoKey - { - sInsert+=sepi+sRefI; - sepi=", "; - } - } - else - { - //string sRef = FormatColumn("{?dbprefix}{rmember}{?dbsuff}",RelatedColumn(column,fk)); - string sRef = sPrimaryLocal; - sInsert+=sepi + sPrimaryLocal; - sUpdate+=sepu + sPrimaryLocal + "." + FormatColumn("{?ref}{?dbprefix}{prop}{?dbsuff}",column); - sepi=", "; - sepu=", "; - //sepd=", "; - } - } -%> - internal void Update(<%=sPrimaryTable%> <%=sPrimaryLocal%>)<%=Debug("// 20071023.2a Update")%> - { - if (!this.IsDirty) return; - if (base.IsDirty) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (IsNew) - <%=sTimestamp%><%=_className%>.Add(cn, <%=sInsert%>); - else - <%=sTimestamp%><%=_className%>.Update(cn, <%=sUpdate%>); - MarkOld(); - } - }<% - } - else // 20070314 - { -// IForeignKey fk = _workingTable.PrimaryKeys[0].ForeignKeys[0]; -// string sPrimaryTable = ClassName(fk.PrimaryTable); -// string sPrimaryLocal = LocalName(sPrimaryTable); - string sInsert=""; - string sUpdate=""; - string sTimestamp=""; - sepu=""; - sepi=""; - foreach(IColumn column in Columns) - { - if (column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - //string sRef = FormatColumn("{?ref}{?dbprefix}{!member}{?dbsuff}",column); - string sRefI = FormatColumn("{?ref}{?dbprefix}{!member}{?dbsuff}",column); - string sRefU = FormatColumn("{?ref}{?dbprefix}{member}{?dbsuff}",column); - if (!column.IsComputed)// && !column.IsAutoKey - { - sInsert+=sepi+sRefI; - sepi=", "; - } - sUpdate+=sepu + sRefU; - sepi=", "; - sepu=", "; - } - string sDelete =""; - string sepdd = ""; - foreach(IColumn column in _workingTable.PrimaryKeys) - { - //if (IsIn(column,fk.ForeignColumns)) - //sDelete+=sepdd+FormatColumn("{!localcolumn}",column); - //sDelete+=sepdd+FormatColumn("{rmember}",RelatedColumn(column,fk)); - //else - sDelete+=sepdd+FormatColumn("{member}",column); - sepdd=", "; - } -%> - internal void Update()<%=Debug("// 20071023.2b Update")%> - { - if (!this.IsDirty) return; - if (base.IsDirty) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (IsNew) - <%=sTimestamp%><%=_className%>.Add(cn, <%=sInsert%>); - else - <%=sTimestamp%><%=_className%>.Update(cn, <%=sUpdate%>); - MarkOld(); - }<% - if (vlnChildObjects(Columns)) - { -%> - } - internal void DeleteSelf(<%=_className%> <%=_className.ToLower()%>) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - // if we're new then don't update the database - if (this.IsNew) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - <%=_className%>.Remove(cn, <%=sDelete%>); - MarkNew();<% - } -%> - }<% - } -%> - [Transactional(TransactionalTypes.TransactionScope)] - public static <%=sRetval%> Update(SqlConnection cn, <%=sKeysTypesU%>) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "update<%=_className%>"; - // Input All Fields - Except Calculated Columns<%=sValuesU%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - output.write(FormatColumn("\r\n\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - tsCol=null; - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - if (column.DataTypeName=="timestamp")tsCol=column; - else output.write(FormatColumn("\r\n\t\t\t\t\t{local} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } - if (tsCol != null) - output.write(FormatColumn("\r\n\t\t\t\t\treturn ({ctype})cm.Parameters[\"{@new}\"].Value;",tsCol)); - else - output.write("\r\n\t\t\t\t// No Timestamp value to return"); -%> - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Update", ex); - throw new DbCslaException("<%=_className%>.Update", ex); - } - }<% -// DataPortal_DeleteSelf -%> - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(<%=FormatColumns("{member}",_workingTable.PrimaryKeys,", ")%>)); - }<% -// DataPortal_Delete -%> - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "delete<%=_className%>";<% - output.write(FormatColumns("\r\n\t\t\t\t\t\t{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", criteria.{prop}{?dbtype});" - ,_workingTable.PrimaryKeys,"")); -%> - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.DataPortal_Delete", ex); - } - }<% -// Delete - string sKeysTypesD=""; - string sValuesD=""; - string sepd=""; - foreach(IColumn column in _workingTable.PrimaryKeys) - { - sValuesD+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {local}{?dbtype});",column); - sKeysTypesD+=sepd + FormatColumn("{ctype} {local}",column); - sepd=", "; - } -%> - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, <%=sKeysTypesD%>) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "delete<%=_className%>"; - // Input PK Fields<%=sValuesD%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Remove", ex); - throw new DbCslaException("<%=_className%>.Remove", ex); - } - } - #endregion<% - } -private bool vlnChildObjects(IColumns Columns) -{ - bool retval = false; - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable) - { - string sObjName; - if (!IsPrimaryKey(fk)){ // Items that use this table's Primary Key - sObjName = FKClassesName( fk ) + GetAlias( fk ); - if (fk.PrimaryTable == fk.ForeignTable)retval = true; -%> - if (<%=MemberName(sObjName)%> != null) <%=MemberName(sObjName)%>.Update(this);<% - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - if (<%=MemberName("My" + sObjName)%> != null) <%=MemberName("My" + sObjName)%>.Update(this);<% - } - } - } - } - } - return retval; -} -private void vlnBrokenRuleObjects(IColumns Columns) -{ - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable) - { - string sObjName; - if (!IsPrimaryKey(fk)) - { // Items that use this table's Primary Key - sObjName = FKClassesName( fk ) + GetAlias(fk); -%> - if (<%=MemberName(sObjName)%> != null && (hasBrokenRules = <%=MemberName(sObjName)%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - else - { - string sMemberName = MemberName("My" + ClassName( fk.ForeignTable )+ GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } - else - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - string sMemberName = MemberName("My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } -} -private void vlnBrokenRuleObjects(IForeignKey myFk) -{ - IColumns Columns=myFk.ForeignTable.Columns; - // Exclude one to one & ForeignKey Relationship - foreach(IColumn field in Columns) - { - if (!field.IsInForeignKey || !field.IsInPrimaryKey) - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - string sMemberName = MemberName("My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } -} -private void vlnTest(IForeignKey myFk) // 20070517 -{ - IColumns Columns=myFk.ForeignTable.Columns; - // Exclude one to one & ForeignKey Relationship - foreach(IColumn field in Columns) - { - if (!field.IsInForeignKey || !field.IsInPrimaryKey) - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - string sMemberName = MemberName("My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } -} -private string RequiredRelatedColumn(IColumn field) -{ - if (!field.IsInPrimaryKey && !field.IsNullable) - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - return "My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk); - } - } - } - return null; -} -private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool getChildren) - { -// DataPortal_Fetch -%> - private void DataPortal_Fetch(<%=sPrefix%>Criteria criteria) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=sql%>";<% - output.write(FormatColumns("\r\n\t\t\t\t\t\t{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", criteria.{prop}{?dbtype});" - ,cols,"")); -%> - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr);<% - // Read members - //output.write(FormatColumns(dicRead,Columns,"","\r\n\t\t\t\t\t\t\t")); - //dicRead1 = new Hashtable(); - //dicRead1["timestamp"]="\r\n\t\t\t\t\t\tdr.GetBytes(\"{name}\", 0, {member}, 0, 8);";// CSLATODO: Need to handle TimeStamp - //output.write(FormatColumns(dicRead1,Columns,"")); -// if (_workingTable != fk.ForeignTable) -// FKSelect(fk,tbl); - // CSLATODO: Fix This See Below -// foreach(IColumn field in Columns) -// { -// if (field.IsInForeignKey && field.IsInPrimaryKey) -// { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. -// foreach( IForeignKey fk in field.ForeignKeys ) - if (getChildren) - { - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (fk.PrimaryTable == _workingTable){ - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); - string sObjName=""; - if (!IsPrimaryKey(fk)){ - sObjName = FKClassesName( fk ) + GetAlias(fk); - string sExtra = FKAndString(_className, fk, ", this" ); -// else -// sObjName = ClassName( fk.ForeignTable ); - if (fk.PrimaryTable != fk.ForeignTable){ -%> - // load child objects - dr.NextResult(); - <%=MemberName(sObjName)%> = <%=sObjName%>.Get(dr<%=sExtra%>);<% - } - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - // load child objects - dr.NextResult(); - <%=MemberName("My" + sObjName)%> = <%=sObjName%>.Get(dr);<% -// if (<%=MemberName("My" + sObjName) + sAlias == null) -// =MemberName("My" + sObjName) + sAlias = <%=sObjName.New(=FormatColumns("criteria.{prop}",fk.ForeignTable.PrimaryKeys,", ","") - } - } - } - } -// } -// } -%> - } - } - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - }<% - } - private void vlnExists(IColumns Columns ) - { - string sValues=FormatColumns("\t\t\t\t{member} = {local};",_workingTable.PrimaryKeys,"\r\n"); - string sKeysTypes=FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", "); - string sKeys=FormatColumns("{local}",_workingTable.PrimaryKeys,", "); - string sDeclare=FormatColumns("\r\n\t\t\tprivate {ctype} {member};",_workingTable.PrimaryKeys,""); - string sParams=FormatColumns("\r\n\t\t\t\t\t\t\t{ifLogicP}cm.Parameters.AddWithValue(\"{@}\", {?dbprefix}{member}{?dbsuffix});",_workingTable.PrimaryKeys,"");; -%> - #region Exists - public static bool Exists(<%=sKeysTypes%>) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(<%=sKeys%>)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - {<%=sDeclare%> - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(<%=sKeysTypes%>) - { -<%=sValues%> - } - protected override void DataPortal_Execute() - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "exists<%=_className%>";<%=sParams%> - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Execute", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Execute", ex); - } - } - } - #endregion<% - } - private void vlnInfoExtension(IColumns columns) - { -%> - // Standard Refresh - #region extension - <%=_className%>Extension <%=MemberName(_className)%>Extension = new <%=_className%>Extension(); - [Serializable()] - partial class <%=_className%>Extension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(<%=_className%> tmp) { } - } - #endregion<% - } - private void vlnDefaults(IColumns columns) - { -%> - // Standard Default Code - #region extension - <%=extName%> <%=extMName%> = new <%=extName%>(); - [Serializable()] - partial class <%=extName%> : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values<% - foreach(IColumn column in HasDefaults(columns)) - { - string sConvert ="{default}"; - if (FormatColumn("{rtype}",column).StartsWith("bool"))sConvert="Convert.ToBoolean({default})"; -%> - public virtual <%=FormatColumn("{rtype} Default{prop}",column)%> - { - get { return <%=FormatColumn(sConvert,column)%>; } - }<% - } -%> - // Authorization Rules - public virtual void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - { - // Needs to be overriden to add new authorization rules - } - // Instance Authorization Rules - public virtual void AddInstanceAuthorizationRules(Csla.Security.AuthorizationRules rules) - { - // Needs to be overriden to add new authorization rules - } - // Validation Rules - public virtual void AddValidationRules(Csla.Validation.ValidationRules rules) - { - // Needs to be overriden to add new validation rules - } - // InstanceValidation Rules - public virtual void AddInstanceValidationRules(Csla.Validation.ValidationRules rules) - { - // Needs to be overriden to add new validation rules - } - } - #endregion<% - } - private void vlnExtension(IColumns columns) - { -%> - -//// The following is a sample Extension File. You can use it to create <%=_className%>Ext.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace <%=_nameSpace%> -//{ -// public partial class <%=_className%> -// { -// partial class <%=_className%>Extension : extensionBase -// { -// // CSLATODO: Override automatic defaults<% - foreach(IColumn column in HasDefaults(columns)) - { -%> -// public virtual <%=FormatColumn("{ctype} Default{prop}",column)%> -// { -// get { return <%=FormatColumn("{default}",column)%>; } -// }<% - } -%> -// public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) -// { -// //rules.AllowRead(Dbid, ""); -// } -// public new void AddInstanceAuthorizationRules(Csla.Security.AuthorizationRules rules) -// { -// //rules.AllowInstanceRead(Dbid, ""); -// } -// public new void AddValidationRules(Csla.Validation.ValidationRules rules) -// { -// rules.AddRule( -// Csla.Validation.CommonRules.StringMaxLength, -// new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); -// } -// public new void AddInstanceValidationRules(Csla.Validation.ValidationRules rules) -// { -// rules.AddInstanceRule(/* Instance Validation Rule */); -// } -// } -// } -//} -<% - } - //private bool IsValueType( string type ) - //{ - // switch( type ) - // { - // case "sbyte": - // case "byte": - // case "short": - // case "ushort": - // case "int": - // case "uint": - // case "long": - // case "ulong": - // case "char": - // case "float": - // case "double": - // case "bool": - // case "decimal": - // case "DateTime": - // return true; - // break; - // - // default: - // return false; - // break; - // } - //} - - - private void vlnBusinessMethodsFKList(IForeignKey fk,string sAlias) - { -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - }<% - //string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - //string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sFkClassListName = _className; - string sFkClassName = _subclassName; - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - //output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - bool bManyToMany = false; -// if (fk.ForeignTable != fk.PrimaryTable) -// { -// foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) -// { -// //output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); -// if (pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) -// { -// foreach(IColumn col in pk.ForeignColumns){ -// //output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); -// //if (col.IsInPrimaryKey) -// if (!col.IsNullable){ -// fkCols.Add(col); -// } -// } -// } -// } -// } - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (!bManyToMany && ManyToMany(_workingTable,fk,pk)) - { - bManyToMany = true; - foreach(IColumn col in pk.ForeignColumns) - if (!col.IsNullable) fkCols.Add(col); - } - } -// fkCols = new ArrayList(); - if (fkCols.Count == 0){ -// bManyToMany = false; -%> - // One To Many<% - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - if (!IsIn(col,fk.ForeignColumns)) - fkCols.Add(col); - } - } - else - { -%> - // Many To Many<% - } - string sTestTypes = FormatColumns("{!type}",fkCols,", "); - string sFkKeysTypes = FormatColumns("{!type} {!local}",fkCols,", "); - string sFkKeys = FormatColumns("{!local}",fkCols,", "); - string sFkCheck = FormatColumns(slName +".{prop} == {!localcolumn}",fkCols," && "); - string sReqKeysCheck= ""; - string sKeysTypes=""; - string sKeys=""; - //string sValues=""; - //string sValues2=""; - //string sep=""; - string sep2=""; - string sep3=""; - string reqKeys=""; - string reqKeysTypes=""; - ArrayList reqCols = new ArrayList(); - ArrayList uniqueChildren = FindUniqueChildren(fk); - bool bParentRef=false; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - // 20070220 - // sKeysTypes+=sep+FormatColumn("{ctype} {local}",column); - // sKeys+=sep+FormatColumn("{local}",column); - if (!IsIn(column,fk.ForeignColumns)) - { - sKeysTypes+=sep2+FormatColumn("{!type} {!local}",column); - sKeys+=sep2+FormatColumn("{!local}",column); - sReqKeysCheck+=sep3+FormatColumn(slName +".{prop} == {local}",column); - reqKeys+=sep2+FormatColumn("{!local}",column); - reqKeysTypes+=sep2+FormatColumn("{!type} {!local}",column); - reqCols.Add(column); - sep2=", "; - sep3=" && "; - } else { - if (!bParentRef && FKParentFK(_workingTable) == fk){ -// WriteLine("\r\n\r\n// 20070305 Column {0}\r\n",column.Name); - reqKeys="my"+ParentName(fk)+sep2+reqKeys; - reqKeysTypes=FormatColumn("{ParentType}",column)+sep2+reqKeysTypes; - sep2=", "; - bParentRef=true; - } - } - //sValues+=sep+RelatedObject(column); - //sValues2+=sep+RelatedObjectType(column); - //sep=", "; - } - } - string reqKeysContain = (SameList(reqCols,fkCols)?sFkKeys:reqKeys); - IList uniqueMatch = FindUnique(uniqueChildren,reqCols); - //if (uniqueMatch != null)WriteLine("\r\n//20090108 - \r\n\tuniqueMatch {0}\r\n\treqCols {1}", ColumnListToString(uniqueMatch),ColumnListToString(reqCols) ); - string newString = (fkCols.Count==1 && sTestTypes == "int" ? "new " : ""); -%> - public <%=newString%><%=sFkClassName%> this[<%=sFkKeysTypes%>] - { - get - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sFkCheck%>) - return <%=slName%>; - return null; - } - } - public new System.Collections.Generic.IList<<%=sFkClassName%>> Items - { - get { return base.Items; } - } - public <%=sFkClassName%> GetItem(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sFkCheck%>) - return <%=slName%>; - return null; - }<% - if (bManyToMany) - { - if (reqKeys!=""){ // Has Required Fields -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>)// Many to Many with required fields - { - if (!Contains(<%=sFkKeys%>)) - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - } - else - throw new InvalidOperationException("<%=slName%> already exists"); - }<% - } - else - { - if (uniqueMatch != null && uniqueMatch.Count > 1) - { -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>)// Many to Many with unique fields - { - if (!Contains(<%=FormatColumns("{local}",uniqueMatch,", ","")%>)) - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - } - else - throw new InvalidOperationException("<%=slName%> already exists"); - }<% - } - else - { -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>)// Many to Many with no required fields - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - }<% - } - } - } - else // One to Many - { - // If Child add parent 20070221 - - string sParent = ""; - string sParentUse = ""; - //if ("Child" + ClassesName(sFkClassName) == _className) - //{ - // sParent = sFkClassName + " parent, "; - // sParentUse = "parent, "; - //} - if (uniqueMatch != null) - { -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>) // One to Many with unique fields - { - if (!Contains(<%=FormatColumns("{!local}",uniqueMatch,", ","")%>)) - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - } - else - throw new InvalidOperationException("<%=slName%> already exists"); - }<% - } - else - { -%> - public <%=sFkClassName%> Add(<%=sParent%><%=sKeysTypes%>) // One to Many - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=sParentUse%><%=sKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - }<% - } - } - if(fkCols.Count == 1 && uniqueMatch != null && uniqueMatch.Count == 1 && fkCols[0]==uniqueMatch[0]) - uniqueMatch=null; -%> - public void Remove(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - { - if (<%=sFkCheck%>) - { - Remove(<%=slName%>); - break; - } - } - } - public bool Contains(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sFkCheck%>) - return true; - return false; - } - public bool ContainsDeleted(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in DeletedList) - if (<%=sFkCheck%>) - return true; - return false; - } - public bool IsDirtyList(List list) - { - // any non-new deletions make us dirty - foreach (<%=sFkClassName%> item in DeletedList) - if (!item.IsNew) - return true; - // run through all the child objects - // and if any are dirty then then - // collection is dirty - foreach (<%=sFkClassName%> child in this) - if (child.IsDirtyList(list)) - return true; - return false; - } - public override bool IsValid - { - get { return IsValidList(new List()); } - } - public bool IsValidList(List list) - { - // run through all the child objects - // and if any are invalid then the - // collection is invalid - foreach (<%=sFkClassName%> child in this) - if (!child.IsValidList(list)) - { - //Console.WriteLine("Valid {0} Child {1} - {2}", child.IsValid, child.GetType().Name,child.ToString()); - return false; - } - return true; - }<% - foreach(IList lst in uniqueChildren){ - if (!SameTypes(lst,fkCols)){ // Has Required Fields 20070302 - if(lst.Count == 1 && uniqueMatch != null && uniqueMatch.Count == 1 && lst[0]==uniqueMatch[0]) - uniqueMatch=null; - string sLstKeysTypes = FormatColumns("{ctype} {local}",lst,", "); -// string sKeys = FormatColumns("{local}",lst,", "); - string sLstCheck = FormatColumns(slName +".{prop} == {local}",lst," && "); -%> - public bool Contains(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sLstCheck%>) - return true; - return false; - } - public bool ContainsDeleted(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in DeletedList) - if (<%=sLstCheck%>) - return true; - return false; - }<% - } - } - if(uniqueMatch != null && uniqueMatch.Count == 1) - { - IColumn col =(IColumn)uniqueMatch[0]; - string sLstKeysTypes = FormatColumn("{!type} {!local}",col); - string sLstCheck = FormatColumn(slName +".{prop} == {!local}.{!column}",col); -%> - public bool Contains(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sLstCheck%>) - return true; - return false; - } - public bool ContainsDeleted(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in DeletedList) - if (<%=sLstCheck%>) - return true; - return false; - }<% - } -%> - #endregion<% - } - private void vlnFactoryMethodsFKList(IForeignKey fk,string sAlias) - { - //string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - //string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sFkClassListName = _className; - string sFkClassName = _subclassName; - string sExtra1=""; - string sExtra2=""; - if (fk.PrimaryTable == fk.ForeignTable){ - sExtra1=", " + _subclassName + " parent"; - sExtra2=", parent"; - } - -%> - #region Factory Methods - internal static <%=sFkClassListName%> New() - { - return new <%=sFkClassListName%>(); - } - internal static <%=sFkClassListName%> Get(SafeDataReader dr<%=sExtra1%>) - { - return new <%=sFkClassListName%>(dr<%=sExtra2%>); - }<% -// if (fk.PrimaryTable==fk.ForeignTable) -// { - // Get Children 20070205 - string sBy = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sKeyTypes = FormatColumns("{ctype1} {local}",fk.ForeignColumns,",",""); - string sKeys = FormatColumns("{local}",fk.ForeignColumns,",",""); -%> - public static <%=sFkClassListName%> GetBy<%=sBy%>(<%=sKeyTypes%>) - { - try - { - return DataPortal.Fetch<<%=sFkClassListName%>>(new <%=sBy%>Criteria(<%=sKeys%>)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=sFkClassListName%>.GetBy<%=sBy%>", ex); - } - }<% -// } -%> - private <%=sFkClassListName%>() - { - MarkAsChild(); - } - internal <%=sFkClassListName%>(SafeDataReader dr<%=sExtra1%>) - { - MarkAsChild(); - Fetch(dr<%=sExtra2%>); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=sFkClassListName%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - } - #endregion<% - } - private void vlnDataAccessPortalFKList(IForeignKey fk,string sAlias) - { - //string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - //string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sFkClassListName = _className; - string sFkClassName = _subclassName; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); - string sExtra1=""; - string sExtra2=""; - if (fk.PrimaryTable == fk.ForeignTable){ - sExtra1=", " + _subclassName + " parent"; - sExtra2=", parent"; - } -%> - #region Data Access Portal - // called to load data from the database - private void Fetch(SafeDataReader dr<%=sExtra1%>) - { - this.RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(<%=sFkClassName%>.Get(dr<%=sExtra2%>)); - this.RaiseListChangedEvents = true; - }<% - string sClassF = ClassName(fk.ForeignTable); - string sClassP = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sBy = ClassesName(fk.ForeignTable) + "By" + FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sSelfParam = ""; - if (fk.ForeignTable == fk.PrimaryTable) - { - sBy = ChildName(fk) + ClassesName(_workingTable); - sSelfParam = ", " + FormatColumns("criteria.{prop}",fk.ForeignColumns,"",""); - } - string sKeyTypes = FormatColumns("{ctype1} {local}",fk.ForeignColumns,",",""); -%> - [Serializable()] - private class <%=sClassP%>Criteria - { - public <%=sClassP%>Criteria(<%=sKeyTypes%>) - { -<%=FormatColumns("{member} = {local};",fk.ForeignColumns,"\r\n","\t\t\t\t")%> - }<% - foreach(IColumn c in fk.ForeignColumns) - { - string sMember=FormatColumn("{member}",c); - string sProp=FormatColumn("{prop}",c); - string sType=FormatColumn("{ctype1}",c); -%> - private <%=sType%> <%=sMember%>; - public <%=sType%> <%=sProp%> - { - get { return <%=sMember%>; } - set { <%=sMember%> = value; } - }<% - } -%> - } - private void DataPortal_Fetch(<%=sClassP%>Criteria criteria) - { - this.RaiseListChangedEvents = false; - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch<%=sClassP%>", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=sBy%>"; - <%=FormatColumns("{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", " + "criteria.{prop});",fk.ForeignColumns,"\r\n\t\t\t","")%> - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new <%=_subclassName%>(dr<%=sSelfParam%>)); - } - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch<%=sClassP%>", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - }<% - - // Insert 20070205a -%> - internal void Update(<%=sPrimaryTable%> <%=sPrimaryLocal%>)<%=Debug("// 20071023.3 Update")%> - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (<%=sFkClassName%> obj in DeletedList) - obj.DeleteSelf(<%=sPrimaryLocal%>);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (<%=sFkClassName%> obj in this) - {<% -// Logic changes for children - if (fk.PrimaryTable == fk.ForeignTable) - { -%> - if (obj.IsNew) - obj.SQLInsert(); - else - obj.SQLUpdate();<% - } else { -%> - if (obj.IsNew) - obj.Insert(<%=sPrimaryLocal%>); - else - obj.Update(<%=sPrimaryLocal%>);<% - } -%> - } - } - finally - { - this.RaiseListChangedEvents = true; - } - } - #endregion<% - } - private void vlnComponentModelFKList() - { -%> - #region ICustomTypeDescriptor impl - public String GetClassName() - { return TypeDescriptor.GetClassName(this, true); } - public AttributeCollection GetAttributes() - { return TypeDescriptor.GetAttributes(this, true); } - public String GetComponentName() - { return TypeDescriptor.GetComponentName(this, true); } - public TypeConverter GetConverter() - { return TypeDescriptor.GetConverter(this, true); } - public EventDescriptor GetDefaultEvent() - { return TypeDescriptor.GetDefaultEvent(this, true); } - public PropertyDescriptor GetDefaultProperty() - { return TypeDescriptor.GetDefaultProperty(this, true); } - public object GetEditor(Type editorBaseType) - { return TypeDescriptor.GetEditor(this, editorBaseType, true); } - public EventDescriptorCollection GetEvents(Attribute[] attributes) - { return TypeDescriptor.GetEvents(this, attributes, true); } - public EventDescriptorCollection GetEvents() - { return TypeDescriptor.GetEvents(this, true); } - public object GetPropertyOwner(PropertyDescriptor pd) - { return this; } - /// - /// Called to get the properties of this type. Returns properties with certain - /// attributes. this restriction is not implemented here. - /// - /// - /// - public PropertyDescriptorCollection GetProperties(Attribute[] attributes) - { return GetProperties(); } - /// - /// Called to get the properties of this type. - /// - /// - public PropertyDescriptorCollection GetProperties() - { - // Create a collection object to hold property descriptors - PropertyDescriptorCollection pds = new PropertyDescriptorCollection(null); - // Iterate the list - for (int i = 0; i < this.Items.Count; i++) - { - // Create a property descriptor for the item and add to the property descriptor collection - <%=_className%>PropertyDescriptor pd = new <%=_className%>PropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion<% - } - private void vlnPropertyDescriptorFKList1() - { -%> - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class <%=_className%>PropertyDescriptor : PropertyDescriptor - { - private <%=_subclassName%> _Item = null; - public <%=_className%>PropertyDescriptor(<%=_className%> collection, int index):base("#" + index.ToString(), null) - { - _Item = collection.Items[index]; - } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { - get { return _Item.GetType(); } - } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { - get { return false; } - } - public override Type PropertyType - { - get { return _Item.GetType(); } - } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - - //public override AttributeCollection Attributes - //{ - // get - // { - // return new AttributeCollection(null); - // } - //} - //public override string DisplayName - //{ - // get { return this.collection.Items[index].ToString(); } - //} - //public override string Description - //{ - // get - // { return this.collection.Items[index].ToString(); } - //} - //public override string Name - //{ - // get { return "#" + index.ToString(); } - //} - } - #endregion<% - } - private void vlnPropertyDescriptorFKList() - { -%> - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class <%=_className%>PropertyDescriptor : vlnListPropertyDescriptor - { - private <%=_subclassName%> Item { get { return (<%=_subclassName%>)_Item; } } - public <%=_className%>PropertyDescriptor(<%=_className%> collection, int index) : base(collection, index) { ;} - } - #endregion<% - } - private void vlnListPropertyDescriptor() - { - %> - public partial class vlnListPropertyDescriptor : PropertyDescriptor - { - protected object _Item = null; - public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - : base("#" + index.ToString(), null) - { _Item = collection[index]; } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { get { return _Item.GetType(); } } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { get { return false; } } - public override Type PropertyType - { get { return _Item.GetType(); } } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - //public override AttributeCollection Attributes - //{ get { return new AttributeCollection(null); } } - public override string DisplayName - { get { return _Item.ToString(); } } - public override string Description - { get { return _Item.ToString(); } } - public override string Name - { get { return _Item.ToString(); } } - } // Class<% - } - private void vlnConvertorFKList(string sDisplayName) - { -%> - #region Converter - internal class <%=_className%>Converter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is <%=_className%>) - { - // Return department and department role separated by comma. - return ((<%=_className%>)value).Items.Count.ToString() + " <%=sDisplayName%>"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion<% - } - private void vlnBusinessMethodsFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - }<% - // Foreign Key Table Fields - string sKey=""; - string sep=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!IsIn(column,fk.ForeignColumns)) - { - bool bReadOnly = column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed; - string sCheck=(IsRelObj(column)?FormatColumn("\r\n\t\t\t\tif ({!member} != null) {member} = {!member}.{!column};",column):null); - vlnProperty(CSLAType( column ),MemberName(column) - ,PropertyName(column),InitializeValue( column ),GetDescription(column),bReadOnly || IsRelObj(column),column.IsInPrimaryKey,false,null,sCheck,null,null); - vlnRelObjProperty(column,bReadOnly,false); - if (column.IsInPrimaryKey){ - sKey+=sep+MemberName(column); - sep=".ToString() + "; - } - } - if ((sep != "") && (sKey.IndexOf(sep) > 0)) - sKey="(" + sKey + ".ToString()).GetHashCode()"; - } - // Foreign Key Related Table Fields // 20070220 - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable.Name != pk.ForeignTable.Name && ForeignRequired(pk)) - { - //sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetAlias(pk); - foreach(IColumn column in pk.PrimaryTable.Columns) - { - if ((!IsIn(column,pk.PrimaryColumns)) && (column.DataTypeName != "timestamp")) - { - string sProp = ClassName(pk.PrimaryTable) + sAlias + "_" + PropertyName(column); - vlnProperty(CSLAType( column ),MemberName(sProp) - ,sProp,InitializeValue( column ),GetDescription(column),true,column.IsInPrimaryKey,false,null,null,null,null); - } - } - } - } -// if (sKey == "")sKey="base.GetIdValue()"; -%> - // CSLATODO: Check <%=sFkClassName%>.GetIdValue to assure that the ID returned is unique - /// - /// Overrides Base GetIdValue - Used internally by CSLA to determine equality - /// - /// A Unique ID for the current <%=sFkClassName%> - protected override object GetIdValue() - { - return My<%=_className%>Unique; // Absolutely Unique ID - } - // CSLATODO: Replace base <%=sFkClassName%>.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current <%=sFkClassName%> - //public override string ToString() - //{ - // return base.ToString(); - //}<% - // IsValid and IsDirty - string sExtDirty = ""; - string sExtValid = ""; - foreach(IColumn col in fk.ForeignTable.Columns) - { - string sColumn = RequiredRelatedColumn(col); - if (sColumn != null){ // Let the Validation Rules handle IsDirty and IsValid - LazyLoad should be ignored. - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sColumn)); - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName(sColumn)); - } - } - //if (sExtDirty!="") - vlnDirty(sExtDirty); - vlnValid(sExtValid); -%> - #endregion<% - } - private void vlnValidationRulesFKList(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName; - if (fk.PrimaryTable == fk.ForeignTable) - sFkClassName = ClassName( fk.ForeignTable ) + sAlias; - else - sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - //string sPrimaryLocal = LocalName(sPrimaryTable); - string sPrimaryLocal = LocalName(sFkClassName); -%> - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - {<%=Debug("20070509.vlnValidationRulesFKList")%> - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (<%=sFkClassName%> <%=sPrimaryLocal%> in this) - if ((hasBrokenRules = <%=sPrimaryLocal%>.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - #endregion<% - } - private void vlnValidationRulesFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); -%> - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - {<%=Debug("20070509.vlnValidationRulesFKItem")%> - get - { - if (_CheckingBrokenRules) return null; - if (BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null;<% - vlnBrokenRuleObjects(fk); -%> - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - {<% - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!(IsIn(column,fk.ForeignColumns) || column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed)) - { - if (column.LanguageType=="string") - { - vlnAddRequired(column); - if (column.CharacterMaxLength < 2147483647) - vlnAddMaxLength(PropertyName(column),column.CharacterMaxLength); - } - if (CSLAType( column )=="SmartDate") - { - vlnAddRequired(column); - string sName = PropertyName(column); -%> - ValidationRules.AddRule<<%=_className%>>(<%=sName%>Valid, "<%=sName%>");<% - } - string sObjectRequired = RequiredRelatedColumn(column); - if (sObjectRequired != null) - { -%> - ValidationRules.AddRule<<%=_className%>>(<%=sObjectRequired%>Required, "<%=sObjectRequired%>");<% - } - } - } -%> - // CSLATODO: Add other validation rules - }<% - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!(IsIn(column,fk.ForeignColumns) || column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed)) - { - if (CSLAType( column )=="SmartDate") - { - string sName = PropertyName(column); - string sMember = MemberName(column); -%> - private static bool <%=sName%>Valid(<%=_className%> target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target.<%=sMember%>); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - }<% - } - } - } - foreach(IColumn col in fk.ForeignTable.Columns) - { - string sColumn = RequiredRelatedColumn(col); - if (sColumn != null){ // Let the Validation Rules handle required fields - string sMemberRaw = MemberName(col); - string sMemberReq = MemberName(sColumn); -%> - private static bool <%=sColumn%>Required(<%=_className%> target, Csla.Validation.RuleArgs e) - { - if (target.<%=sMemberRaw%> == 0 && target.<%=sMemberReq%> == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - }<% - - } - } - -%> - // Sample data comparison validation rule - //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) - //{ - // if (_started > _ended) - // { - // e.Description = "Start date can't be after end date"; - // return false; - // } - // else - // return true; - //} - #endregion<% - } - private void vlnAuthorizationRulesFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); -%> - #region Authorization Rules - protected override void AddAuthorizationRules() - { - //CSLATODO: Who can read/write which fields<% - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!(IsIn(column,fk.ForeignColumns)) && column.DataTypeName != "timestamp") - { -%> - //AuthorizationRules.AllowRead(<%=PropertyName(column)%>, "");<% - if (!(column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed)) - { -%> - //AuthorizationRules.AllowWrite(<%=PropertyName(column)%>, "");<% - } - } - } -%> - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion<% - } - private void vlnFactoryMethodsFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); - string sKeysTypes=""; - string sKeys=""; - string sValues=""; - string sValues2=""; - string sep=""; - string sInit=""; - string sep2=""; - Hashtable dicAlias = new Hashtable(); - ArrayList pks = new ArrayList(); - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!IsIn(column,fk.ForeignColumns)) - { - if (IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - sKeysTypes+=sep+FormatColumn("{!type} {!local}",column); - sKeys+=sep+FormatColumn("{!local}",column); - if (IsRelObj(column)) - sValues+=sep + FormatColumn("{!local}",column); // 20070301 - else - sValues+=sep+RelatedObject(fk,column); - if (IsRelObj(column)) - sValues2+=sep + FormatColumn("{!type} {!local}",column); // 20070301 - else - sValues2+=sep + RelatedObjectType2(fk,column); // 20070301 - foreach(IForeignKey pk in column.ForeignKeys) - if (!pks.Contains(pk)) - { - pks.Add(pk.Name); - //sValues2+=" /* " + pk.Name + " */ "; - } - sep=", "; - if (!column.IsInForeignKey || IsRelObj(column)){ - //if (CSLAType(column)=="SmartDate") - // sInit+=sep2 + FormatColumn("\t\t{member} = new SmartDate({local});",column); - //else - if (IsRelObj(column)) - sInit+=sep2 + FormatColumn("\t\t\t{!member} = {!local};",column); - else - sInit+=sep2 + FormatColumn("\t\t\t{member} = {local};",column); - sep2="\r\n"; - } - else - { - IForeignKey pk = column.ForeignKeys[0]; - if (pk == FKParentFK(column.Table)) - { - IColumn colf = RelatedColumnF(column,pk); - if (colf != null){ - sInit+=sep2 + FormatColumn("\t\t\t{member} = ",column) + FormatColumn("{rmember};",colf); - sep2="\r\n"; - } - } - } - } - } - } - // Foreign Key Related Table Fields - //Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (pks.Contains(pk.Name) && pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable.Name != pk.ForeignTable.Name && pk.Name != fk.Name && ForeignRequired(pk)) - { - //sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetNewAlias(fk,pk); - foreach(IColumn column in pk.PrimaryTable.Columns) - { - IColumn col = RelatedColumn(column,pk); - col =col.Table.Columns[col.Name]; - if (!IsRelObj(col)) - { - string sProp = ClassName(pk.PrimaryTable) + sAlias + "_" + PropertyName(column); - string sLocal = LocalName(ClassName(pk.PrimaryTable))+ sAlias; - string sMember = MemberName(sProp); - if (IsIn(column,pk.PrimaryColumns)) - { - sInit+=sep2 + "\t\t\t" + MemberName(RelatedColumn(column,pk)) + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - else - { - if (pk.PrimaryTable != fk.PrimaryTable) - { - if (column.DataTypeName != "timestamp"){ - if (CSLAType(column)=="SmartDate") - sInit+=sep2 + "\t\t\t" + sMember + " = new SmartDate(" + sLocal + "." + PropertyName(column) + ");"; - else - sInit+=sep2 + "\t\t\t" + sMember + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - } - } - } - } - } - else - { - // WriteLine("pk={0} f={1} p={2}",pk.Name,pk.ForeignTable.Name,pk.PrimaryTable.Name); - } - } -%> - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _<%=_className%>Unique = 0; - private static int <%=_className%>Unique - { get { return ++_<%=_className%>Unique; } } - private int _My<%=_className%>Unique = <%=_className%>Unique; - public int My<%=_className%>Unique // Absolutely Unique ID - Editable FK - { get { return _My<%=_className%>Unique; } } - internal static <%=sFkClassName%> New(<%=sKeysTypes%>) - { - return new <%=sFkClassName%>(<%=sValues%>); - } - internal static <%=sFkClassName%> Get(SafeDataReader dr) - { - return new <%=sFkClassName%>(dr); - } - public <%=sFkClassName%>() - { - MarkAsChild(); -<%=FormatColumns("{member} = {class}.Next{prop};",AutoKey(fk),"\r\n","\t\t\t")%> -<%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(fk),"\r\n","\t\t\t")%> - ValidationRules.CheckRules(); - }<% - if (sValues2 != "") { - //if (sInit=="")sInit = "// No Initialization"; - //else sInit = "// Initialization\r\n" + sInit; -%> - private <%=sFkClassName%>(<%=sValues2%>) - { - MarkAsChild(); - // CSLATODO: Add any initialization & defaults -<%=FormatColumns("\t\t\t{member} = {class}.Next{prop};\r\n",AutoKey(fk),"","")%><%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(fk),"\r\n","\t\t\t")%> -<%=sInit%> - ValidationRules.CheckRules(); - }<% - } -%> - internal <%=sFkClassName%>(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=sFkClassName%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - } - #endregion<% - } - private void vlnDataAccessPortalFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); - IColumn colf1 = fk.ForeignColumns[0]; - colf1=colf1.Table.Columns[colf1.Name]; - sPrimaryLocal = FormatColumn("{!local}",colf1); - string sClassName = ClassName( fk.ForeignTable ); - //string sKeysTypes=""; - //string sKeys=""; - //string sValues=""; - //string sValues2=""; - string sepi=""; - string sepu=""; - string sepd=""; - string sepr=""; - string sRead=""; - string sInsert=""; - string sUpdate=""; - string sDelete=""; - string sTimestamp=""; - try - { - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - if (!IsIn(column,fk.ForeignColumns)) - { - sRead+=sepr+FormatColumn(dicRead,column,"\t\t\t\t",""); - sepr="\r\n"; - string sRefI = ParentRef(column); - string sRefU = ParentRefU2(column); - if (sRefI==null) - { - if (column.IsComputed || column.IsAutoKey) - sRefU = sRefI = FormatColumn("ref {?dbprefix}{member}{?dbsuff}",column); - else - //if (column.IsInPrimaryKey) // 20070326 - // sRef=FormatColumn("{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070323 - //else - if (FormatColumn("{!type}",column)==ClassName(fk.ForeignTable)) - { - sRefI = FormatColumn("{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070326 - sRefU = FormatColumn("{?dbprefix}{member}{?dbsuff}",column);// 20070326 - } - else - { - sRefI=FormatColumn("{?dbprefix}{!member}{?dbsuff}",column);// 20070326 - sRefU=FormatColumn("{?dbprefix}{member}{?dbsuff}",column);// 20070326 - } - } - sUpdate+=sepu + sRefU; - sepu=", "; - if (!column.IsComputed)// && !column.IsAutoKey - { - sInsert+=sepi+sRefI; - sepi=", "; - } - } - else - { - string sRefI; - string sRefU; - if (IsRelObj(column)) - { - sRefI = FormatColumn("{?dbprefix}{!local}{?dbsuff}",column); - string sType = FormatColumn("{ctype}",column); - if(sType.Contains("?")) - sRefU = FormatColumn("{?dbprefix}{!local}{?dbsuff} != null ? ({ctype}) {?dbprefix}{!local}{?dbsuff}.{?dbprefix}{prop}{?dbsuff} : ({ctype}) null",column); - else - sRefU = FormatColumn("{?dbprefix}{!localcolumn}{?dbsuff}",column); - } - else - sRefI = sRefU = FormatColumn("{?dbprefix}{rmember}{?dbsuff}",RelatedColumn(column,fk)); - sInsert+=sepi + sRefI; - sUpdate+=sepu + sRefU; - sepi=", "; - sepu=", "; - //sepd=", "; - } - } - foreach(IColumn column in fk.ForeignTable.PrimaryKeys) - { - if (IsIn(column,fk.ForeignColumns)) - sDelete+=sepd+FormatColumn("{!localcolumn}",column); - //sDelete+=sepd+FormatColumn("{rmember}",RelatedColumn(column,fk)); - else - sDelete+=sepd+FormatColumn("{member}",column); - sepd=", "; - } - } - catch(Exception ex) - { - output.write("\r\n>>>ERROR>>>> " + ex.Message); - } - // Foreign Key Related Table Fields - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) - { - //sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetAlias(pk); - //foreach(IColumn col in pk.PrimaryColumns) - //{ - //} - foreach(IColumn column in pk.PrimaryTable.Columns) - { - if (!IsIn(column,pk.PrimaryColumns) && column.DataTypeName != "timestamp" && !column.IsInPrimaryKey) - { - sRead+=sepr+FormatColumn(dicRead,column,"\t\t\t\t",sAlias); - sepr="\r\n"; - } - } - } - } -%> - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - <%=_databaseLogDebug%>("[{0}] <%=_subclassName%>.FetchDR", GetHashCode()); - try - { -<%=sRead%> - } - catch (Exception ex) // FKItem Fetch - { - <%=_databaseLogError%>("<%=_subclassName%>.FetchDR", ex); - throw new DbCslaException("<%=_subclassName%>.Fetch", ex); - } - MarkOld(); - } - internal void Insert(<%=sPrimaryTable%> <%=sPrimaryLocal%>) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - <%=sTimestamp%><%=sClassName%>.Add(cn, <%=sInsert%>); - MarkOld(); - } - internal void Update(<%=sPrimaryTable%> <%=sPrimaryLocal%>)<%=Debug("// 20071023.4 Update")%> - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - <%=sTimestamp%><%=sClassName%>.Update(cn, <%=sUpdate%>); - MarkOld(); - } - internal void DeleteSelf(<%=sPrimaryTable%> <%=sPrimaryLocal%>) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - // if we're new then don't update the database - if (this.IsNew) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - <%=sClassName%>.Remove(cn, <%=sDelete%>); - MarkNew(); - } - #endregion<% - } - private void vlnConvertorFKItem() - { -%> - #region Converter - internal class <%=_className%>Converter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is <%=_className%>) - { - // Return the ToString value - return ((<%=_className%>)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion<% - } - private void vlnFactoryMethodsInfoList(IColumns columns) - { - string sMember = MemberName(_className); -%> - #region Factory Methods - public static <%=_className%> <%=sMember%> = null; - /// - /// Return a list of all <%=_subclassName%>. - /// - public static <%=_className%> Get() - { - try - { - if (<%=sMember%> != null) - return <%=sMember%>; - <%=_className%> tmp = DataPortal.Fetch<<%=_className%>>(); - <%=_subclassName%>.AddList(tmp); - tmp.AddEvents(); - <%=sMember%> = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - } - /// - /// Reset the list of all <%=_subclassName%>. - /// - public static void Reset() - { - <%=sMember%> = null; - }<% -// ForeignKeys - List Foreign Keys - May want to create stored procedures -%> - // CSLATODO: Add alternative gets - - //public static <%=_className%> Get() - //{ - // try - // { - // return DataPortal.Fetch<<%=_className%>>(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on <%=_className%>.Get", ex); - // } - //}<% - ProcessFKAlias(_workingTable,new ProcessFK(FKGet)); -// ArrayList lstByNames = new ArrayList(); -// foreach(IForeignKey FK in _workingTable.ForeignKeys) -// { -// if (FK.ForeignTable == _workingTable) -// { -// if (!lstByNames.Contains(FK.PrimaryTable.Name)) -// { -// FKGet(FK); -// lstByNames.Add(FK.PrimaryTable.Name); -// } -// } -// } -%> - private <%=_className%>() - { /* require use of factory methods */ } - #endregion<% - } - private void FKGet(IForeignKey FK,string sAlias) - { - //string sBy = ClassName(FK.PrimaryTable) + sAlias; - //string sKeyTypes = FormatColumns("{ctype} {local}",FK.PrimaryTable.PrimaryKeys,",",""); - //string sKeys = FormatColumns("{local}",FK.PrimaryTable.PrimaryKeys,",",""); - string sBy = FormatColumns("{name}",FK.ForeignColumns,"_",""); - string sBy2 = "By" + sBy; - if (FK.PrimaryTable == FK.ForeignTable)sBy2=ChildrenName(FK); - string sKeyTypes = FormatColumns("{ctype} {local}",FK.ForeignColumns,",",""); - string sKeys = FormatColumns("{local}",FK.ForeignColumns,",",""); -%> - public static <%=_className%> Get<%=sBy2%>(<%=sKeyTypes%>) - { - try - { - <%=_className%> tmp = DataPortal.Fetch<<%=_className%>>(new <%=sBy%>Criteria(<%=sKeys%>)); - <%=_subclassName%>.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get<%=sBy2%>", ex); - } - }<% - } - private void vlnDataAccessPortalInfoList(IColumns columns) - { -%> - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=ClassesName(_workingTable)%>"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new <%=_subclassName%>(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - }<% - ProcessFKAlias(_workingTable,new ProcessFK(FKFetch)); -// ArrayList lstTableNames = new ArrayList(); -// foreach(IForeignKey FK in _workingTable.ForeignKeys) -// { -// if (FK.ForeignTable == _workingTable) -// { -// if (!lstTableNames.Contains(FK.PrimaryTable.Name)) -// { -// FKFetch(FK); -// lstTableNames.Add(FK.PrimaryTable.Name); -// } -// } -// } -%> - #endregion<% - } - private void FKFetch(IForeignKey FK,string sAlias) - { - string sClassF = ClassName(FK.ForeignTable); - //string sClassP = ClassName(FK.PrimaryTable)+sAlias; - //string sBy = ForeignKeyName(FK); - //string sKeyTypes = FormatColumns("{ctype} {local}",FK.PrimaryTable.PrimaryKeys,",",""); - string sClassP = FormatColumns("{name}",FK.ForeignColumns,"_",""); - string sBy = ClassesName(_workingTable) + "By" + FormatColumns("{name}",FK.ForeignColumns,"_",""); - if (FK.ForeignTable == FK.PrimaryTable)sBy = ChildName(FK) + ClassesName(_workingTable); - string sKeyTypes = FormatColumns("{ctype} {local}",FK.ForeignColumns,",",""); - //string sKeys = FormatColumns("{local}",FK.ForeignColumns,",",""); -%> - [Serializable()] - private class <%=sClassP%>Criteria - { - public <%=sClassP%>Criteria(<%=sKeyTypes%>) - { -<%=FormatColumns("{member} = {local};",FK.ForeignColumns,"\r\n","\t\t\t\t")%> - }<% - foreach(IColumn c in FK.ForeignColumns) - { - string sMember=FormatColumn("{member}",c); - string sProp=FormatColumn("{prop}",c); - string sType=FormatColumn("{ctype}",c); -%> - private <%=sType%> <%=sMember%>; - public <%=sType%> <%=sProp%> - { - get { return <%=sMember%>; } - set { <%=sMember%> = value; } - }<% - } -%> - } - private void DataPortal_Fetch(<%=sClassP%>Criteria criteria) - { - this.RaiseListChangedEvents = false; - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch<%=sClassP%>", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=sBy%>"; - <%=FormatColumns("{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", " + "criteria.{prop});",FK.ForeignColumns,"\r\n\t\t\t","")%> - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new <%=_subclassName%>(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch<%=sClassP%>", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - }<% - } - private void vlnRelObjProperty(IColumn column,bool bReadOnly,bool bInfo) - { - if (IsRelObj(column)) - { - string sProp=RelObjProp(column); - string sMember=MemberName(sProp); - string sCheck=FormatColumn("\r\n\t\t\t\tif ({!member} == null && {member} != {!empty}) {!member} = {!type}" + (bInfo?"Info":"") + ".Get({!typecast}{member});",column); - string sCheck2=null; - string sCheck3=null; - if (column.IsNullable) - { - sCheck2=FormatColumn("\r\n\t\t\t\t\t{member} = (value == null ? null : ({ctype})value.{!column});",column); - sCheck3=FormatColumn("({!member} == null ? {member} : ({ctype}){!member}.{!column}) != (value == null ? null : ({ctype})value.{!column})",column); - } - else - { - sCheck2=FormatColumn("\r\n\t\t\t\t\t{member} = value.{!column};// Update underlying data field",column); - sCheck3=FormatColumn("{!member} != value",column); - } - vlnProperty(RelObjType( column ) + (bInfo?"Info":"") ,sMember - ,sProp,";"+DebugLine("20070501.4"),"",bReadOnly,column.IsInPrimaryKey,false,null,sCheck,sCheck2,sCheck3); - //if (sProp.StartsWith("My"))_refreshMine += string.Format("\t\t\t{0} = null;\r\n",sMember); - //if (sProp.StartsWith("My"))AddRefreshMine(sMember); - } - } - private void AddRefreshMine(string sMember) - { - _refreshMine += string.Format("//RHM Removed 20090724 - Duplicates function of code above.\r\n",sMember); - _refreshMine += string.Format("// - Dispose caused error when a new step was added.\r\n",sMember); - _refreshMine += string.Format("// - Resequence of transitions did not work properly.\r\n",sMember); - _refreshMine += string.Format("//\t\t\tif({0} != null)\r\n",sMember); - _refreshMine += string.Format("//\t\t\t{{\r\n"); - _refreshMine += string.Format("//\t\t\t\t{0}.Dispose();// Dispose related value\r\n",sMember); - _refreshMine += string.Format("//\t\t\t\t{0} = null;// Reset related value\r\n",sMember); - _refreshMine += string.Format("//\t\t\t}}\r\n"); - } - private void vlnBusinessMethodsInfo(IColumns columns) - { - _refreshMine=""; -// string sMember = MemberName(sEditable); -// string sLocal = LocalName(sEditable); -// string sPKeys = FormatColumns(sLocal + ".{prop}",_workingTable.PrimaryKeys,", ",""); -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - protected <%=ClassName( _workingTable )%> _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - }<% - //vlnInfoParent(_workingTable);//20070208 - foreach(IColumn column in ExcludedColumns(columns,new Filter(Computed))) - { - string sCheck=(IsRelObj(column)?FormatColumn("\r\n\t\t\t\tif ({!member} != null) {member} = {!member}.{!column};",column):null); - vlnProperty(CSLAType( column ),MemberName(column) - ,PropertyName(column),InitializeValue( column ),GetDescription(column),true,column.IsInPrimaryKey,false,null,sCheck,null,null); - vlnRelObjProperty(column,true,true); - } - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey FK in _workingTable.ForeignKeys) - { - if (FK.PrimaryTable == _workingTable) - { - //string sAlias = GetAlias(dicAlias,FK.ForeignTable); - string sAlias = GetAlias(FK); - string sClass = FKClassName(FK); - string sClasses = FKClassesName(FK); - if (!OneToOne(FK)) - FKPropertyList(ClassName(FK.ForeignTable),sClasses,FK,sAlias); - else - { - vlnProperty("int",MemberName(sClass) + sAlias + "Count" ,sClass + sAlias + "Count", " = 0;", - "Count of " + sClasses + " for this " + ClassName(_workingTable),true,false,false,null,null,null,null); - FKPropertyInfo(ClassName(FK.ForeignTable),sClasses,FK,sAlias); - // This line was added to reset the count if the Content object was changed - _refreshMine += string.Format("\t\t\t{0} = -1;// Reset Count\r\n",MemberName(sClass) + sAlias + "Count"); - } - } - } - - vlnToString(columns); - vlnGetIDValue(_workingTable.PrimaryKeys); -%> - #endregion<% - } - private void FKPropertyList(string sClass,string sClasses,IForeignKey FK,string sAlias) - { - string sKeys = FormatColumns("{member}",FK.PrimaryColumns,",",""); - string sMember = MemberName(sClasses) + sAlias; - string sCountMember = MemberName(SingularName(sClasses)) + sAlias + "Count"; - string sBy = FKBy(FK); - string sProp = sClasses + sAlias; - string sParent = SingularName(FK.PrimaryTable.Name); - string sChild = SingularName(FK.ForeignTable.Name); - //_refreshMine += string.Format("\t\t\t{0} = null;\r\n",sMember); -%> - private int <%=sCountMember%> = 0; - /// - /// Count of <%=sMember.Substring(1)%> for this <%=sParent%> - /// - public int <%=sCountMember.Substring(1)%> - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sCountMember.Substring(1)%>", true); - if (<%=sCountMember%> < 0) - <%=sCountMember%> = <%=sProp%>.Count; - return <%=sCountMember%>; - } - } - private <%=sClass%>InfoList <%=sMember%> = null; - [TypeConverter(typeof(<%=sClass%>InfoListConverter))] - public <%=sClass%>InfoList <%=sProp%> - {<%=DebugLine("20070427.5")%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sProp%>", true); - if (<%=sCountMember%> < 0 || (<%=sCountMember%> > 0 && <%=sMember%> == null)) - <%=sMember%> = <%=sClass%>InfoList.Get<%=sBy%>(<%=sKeys%>); - if (<%=sCountMember%> < 0) - <%=sCountMember%> = <%=sMember%>.Count; - return <%=sMember%>; - } - } - public void Refresh<%=sProp%>() - {<%=DebugLine("20080430.3")%> - <%=sCountMember%> = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(<%=sKeys%>.ToString())) - foreach (<%=_className%> tmp in _CacheByPrimaryKey[<%=sKeys%>.ToString()]) - tmp.<%=sCountMember%> = -1; // This will cause the data to be requeried - }<% - } - private void FKPropertyInfo(string sClass,string sClasses,IForeignKey FK,string sAlias) - { - string sKeys = FormatColumns("{member}",FK.PrimaryColumns,",",""); - string sMember = MemberName("My" + sClass) + sAlias; - string sCountMember = MemberName(SingularName(sClasses)) + sAlias + "Count"; - string sBy = FKBy(FK); - string sProp = "My" + sClass + sAlias; - //_refreshMine += string.Format("\t\t\t{0} = null;// Reset related value\r\n",sMember); - //AddRefreshMine(sMember); -%> - private <%=sClass%>Info <%=sMember%> = null; - [TypeConverter(typeof(<%=sClass%>InfoConverter))] - public <%=sClass%>Info <%=sProp%> - {<%=DebugLine("20070427.6")%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sProp%>", true); - if (<%=sCountMember%> != 0 && <%=sMember%> == null) - { - <%=sMember%> = <%=sClass%>Info.Get(<%=sKeys%>); - <%=sCountMember%> = <%=sMember%> == null ? 0 : 1; - } - return <%=sMember%>; - } - }<% - } - private void vlnFactoryMethodsInfo(IColumns columns) - { - string sKeys = FormatColumns("{local}",_workingTable.PrimaryKeys,", ",""); - string sKeyTypes = FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", ",""); - string sEditable = ClassName(_workingTable.Name); - string sEdMember = MemberName(sEditable); - string sEdLocal = LocalName(sEditable); - string sPKeys = FormatColumns("{member}",_workingTable.PrimaryKeys,", ",""); - string sRefKeys = FormatColumns("{prop}.ToString()",_workingTable.PrimaryKeys," + \"_\" + ","");;//20070215 - string sTmpKeys = FormatColumns("tmp.{prop}",_workingTable.PrimaryKeys,", ",""); - string sTRefKeys = FormatColumns("tmp.{prop}.ToString()",_workingTable.PrimaryKeys," + \"_\" + ","");;//20070215 -%> - #region Factory Methods - private static int _<%=_className%>Unique = 0; - private static int <%=_className%>Unique - { get { return ++_<%=_className%>Unique; } } - private int _My<%=_className%>Unique = <%=_className%>Unique; - public int My<%=_className%>Unique // Absolutely Unique ID - Info - { get { return _My<%=_className%>Unique; } } - protected <%=_className%>() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=_className%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(<%=sRefKeys%>)) return; - List<<%=_className%>> list<%=_className%> = _CacheByPrimaryKey[<%=sRefKeys%>]; // Get the list of items - while (list<%=_className%>.Contains(this)) list<%=_className%>.Remove(this); // Remove the item from the list - if (list<%=_className%>.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(<%=sRefKeys%>); // remove the list - } - public virtual <%=ClassName( _workingTable )%> Get() - {<%=DebugLine("20070502.1")%> - return _Editable = <%=sEditable%>.Get(<%=sPKeys%>); - } - public static void Refresh(<%=ClassName( _workingTable )%> tmp) - { - string key = <%=sTRefKeys%>; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (<%=_className%> tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(<%=ClassName( _workingTable )%> tmp) - {<%=DebugLine("20080430.1")%><% - foreach(IColumn col in Updatable(_workingTable)) - UpdateInfoFromEdit(col); -%> - <%=MemberName(_className)%>Extension.Refresh(this); -<%=_refreshMine%> OnChange();// raise an event - }<% - Hashtable dicAlias = new Hashtable(); // 20070216 - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (_workingTable != fk.PrimaryTable && !IsPrimaryKey(fk)) //20070220 - { - //string sClass=ClassName(fk.PrimaryTable)+ClassName(fk.ForeignTable)+GetAlias(dicAlias,fk.PrimaryTable); - string sClass=ClassName(fk.PrimaryTable)+ClassName(fk.ForeignTable)+GetAlias(fk); - // 20070326 - Need to add an object reference - string sPrefix = ""; - string sTmpKeys2 = sTmpKeys; - string sTmpKeyString = sTRefKeys; - if (ForeignPrimary(fk)) - { - string sOther = ClassName(fk.PrimaryTable); - sPrefix = ClassName(fk.PrimaryTable) + " my" + ClassName(fk.PrimaryTable) + ", "; - string ssep=""; - string ssepstr=""; - sTmpKeys2=""; - sTmpKeyString = ""; - foreach(IColumn col in _workingTable.PrimaryKeys) - { - //WriteLine("\r\n//!type = '{0}', sOther = '{1}', Col.Name = '{2}'", FormatColumn("{!type}",col), sOther, col.Name); - if (FormatColumn("{!type}",col)==sOther) - { - sTmpKeys2 += ssep + FormatColumn("{!localcolumn}",col); - sTmpKeyString += ssepstr + FormatColumn("{!localcolumn}",col) + ".ToString()"; - } - else - { - sTmpKeys2 += ssep + FormatColumn("tmp.{prop}",col); - sTmpKeyString += ssepstr + FormatColumn("tmp.{prop}",col) + ".ToString()"; - } - ssep=", "; - ssepstr=" + \"_\" + "; - } - } -%> - public static void Refresh(<%=sPrefix%><%=sClass%> tmp) - { - string key = <%=sTmpKeyString%>; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (<%=_className%> tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(<%=sClass%> tmp) - {<%=DebugLine("20080430.2")%><% - foreach(IColumn col in Updatable(_workingTable)) - { - if (!IsIn(col,fk.ForeignColumns)) - UpdateInfoFromEdit(col); - } -%> - <%=MemberName(_className)%>Extension.Refresh(this); -<%=_refreshMine%> OnChange();// raise an event - }<% - } - } -%> - public static <%=_className%> Get(<%=sKeyTypes%>) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a <%=ClassName(_workingTable)%>"); - try - { - <%=_className%> tmp = GetCachedByPrimaryKey(<%=sKeys%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new PKCriteria(<%=sKeys%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found")<% - if (!OneToOne(_workingTable) || true){ // RHM 20080710 - Not sure why it should not return null -%> - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - }<% - } else { -%> - { -<%=FormatColumns("tmp.{member} = {local};",_workingTable.PrimaryKeys,"\r\n","\t\t\t\t\t")%> - }<% - } -%> - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - } - #endregion<% - } - private void UpdateInfoFromEdit(IColumn col) //20080430.4 - { - if (col.ForeignKeys.Count > 0) - { - string sProp=RelObjProp(col); - string sMember=MemberName(sProp); - IForeignKey FK = col.ForeignKeys[0]; - //string sClass = FKClassName(FK); - string sClasses = FKClassesName(FK); - string sAlias = GetAlias(FK); - output.write(FormatColumn("\r\n\t\t\tif ({member} != tmp.{prop})",col)); - output.write("\r\n\t\t\t{"); - output.write("\r\n\t\t\t\tif (" + sProp + " != null) " + sProp + ".Refresh" + sClasses + sAlias + "(); // Update List for old value"); - output.write(FormatColumn("\r\n\t\t\t\t{member} = tmp.{prop}; // Update the value",col)); - output.write("\r\n\t\t\t}"); - output.write("\r\n\t\t\t" + sMember + " = null; // Reset list so that the next line gets a new list" ); - output.write("\r\n\t\t\tif (" + sProp + " != null) " + sProp + ".Refresh" + sClasses + sAlias + "(); // Update List for new value"); - } - else - output.write(FormatColumn("\r\n\t\t\t{member} = tmp.{prop};",col)); - } - private void vlnDataAccessPortalInfo(IColumns columns) - { -%> - #region Data Access Portal - internal <%=_className%>(SafeDataReader dr) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Constructor", ex); - throw new DbCslaException("<%=_className%>.Constructor", ex); - } - }<% - vlnPKCriteria(); - vlnReadData(columns,false); - vlnDataPortalFetch("PK",_workingTable.PrimaryKeys,ClassName(_workingTable),false); -%> - #endregion<% - } - public void GeneratePropertyDescriptor() - { - _className="PropertyDescriptor"; - vlnHeader("\r\nusing Csla.Validation;"); - vlnListPropertyDescriptor(); - vlnIVEHasBrokenRules(); -%> -} // Namespace -// The following are samples of ToString overrides<% - foreach(string sClass in _PropDescList) - { -%> -// public partial class <%=sClass%> -// { public override string ToString() { return string.Format("{0}", _Name); } }<% - } - SaveFile(); - } - public void GenerateCommonRules() - { - _className="CommonRules"; - vlnHeader("\r\nusing Csla.Validation;\r\nusing System.Reflection;",false); -%> - public static class CommonRules - { - public static bool Required(object target, Csla.Validation.RuleArgs e) - { - PropertyInfo propertyInfoObj = target.GetType().GetProperty(e.PropertyName); - if (propertyInfoObj == null) return true; - if (propertyInfoObj.GetValue(target, null) == null) - { - e.Description = e.PropertyName + " is a required field"; - return false; - } - return true; - } - } -}<% - SaveFile(); - } - public void vlnIVEHasBrokenRules() - { -%> - public interface IVEHasBrokenRules - { - IVEHasBrokenRules HasBrokenRules { get; } - BrokenRulesCollection BrokenRules { get; } - }<% - } - public void Log4Net() - { - if (_chkPartL4N) - { -%> - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion<% - } - } - public void GenerateDatabase() - { - _className="Database"; - vlnHeader("\r\nusing System.Diagnostics;"); -%> - public static partial class Database - {<% - if (_chkPartL4N) - { -%> - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion<% - } -%> - public static void LogException(string s, Exception ex) - { - int i = 0; - Console.WriteLine("Error - {0}", s); - for (; ex != null; ex = ex.InnerException) - { - Console.WriteLine("{0}{1} - {2}", "".PadLeft(++i * 2), ex.GetType().ToString(), ex.Message); - } - } - private static bool _LoggingInfo = false; // By default don't log info - public static bool LoggingInfo - { - get { return _LoggingInfo; } - set { _LoggingInfo = value; } - } - static System.Diagnostics.Process _CurrentProcess = System.Diagnostics.Process.GetCurrentProcess(); - public static void LogInfo(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - public static void LogDebug(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - private static string _ConnectionName = "<%=_dbConnection%>"; - public static string ConnectionName - { - get { return Database._ConnectionName; } - set { Database._ConnectionName = value; } - } - public static string <%=_dbConnection%>_Connection - { - get - { - DateTime.Today.ToLongDateString(); - ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings[ConnectionName]; - if (cs == null) - { - throw new ApplicationException("Database.cs Could not find connection " + ConnectionName); - } - return cs.ConnectionString; - } - } - public static SqlConnection <%=_dbConnection%>_SqlConnection - { - get - { - string strConn = <%=_dbConnection%>_Connection; // If failure - Fail (Don't try to catch) - // Attempt to make a connection - try - { - SqlConnection cn = new SqlConnection(strConn); - cn.Open(); - return cn; - } - catch (SqlException exsql) - { - const string strAttachError = "An attempt to attach an auto-named database for file "; - if (exsql.Message.StartsWith(strAttachError)) - {// Check to see if the file is missing - string sFile = exsql.Message.Substring(strAttachError.Length); - sFile = sFile.Substring(0, sFile.IndexOf(" failed")); - // "An attempt to attach an auto-named database for file failed" - if (strConn.ToLower().IndexOf("user instance=true") < 0) - { - throw new ApplicationException("Connection String missing attribute: User Instance=True"); - } - if (System.IO.File.Exists(sFile)) - { - throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql); - } - else - { - throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql); - } - } - else - { - throw new ApplicationException("Failure on Connect", exsql); - } - } - catch (Exception ex)// Throw Application Exception on Failure - { - <%=_databaseLogError%>("Connection Error", ex); - throw new ApplicationException("Failure on Connect", ex); - } - } - } - public static void PurgeData() - { - try - { - SqlConnection cn = <%=_dbConnection%>_SqlConnection; - SqlCommand cmd = new SqlCommand("purgedata", cn); - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - catch (Exception ex) - { - <%=_databaseLogError%>("Purge Error", ex); - throw new ApplicationException("Failure on Purge", ex); - } - } - } - public class DbCslaException : Exception - { - internal DbCslaException(string message, Exception innerException) : base(message, innerException) { ;} - internal DbCslaException(string message) : base(message) { ;} - internal DbCslaException() : base() { ;} - } // Class -} // Namespace -<% - SaveFile(); - } -%><%#FILE NamingConvention.cs%><% -%><%#FILE ForeignKeyProcessing.cs%><% -%><%#FILE WriteLine.cs%><% -%><%#FILE FilteredColumns.cs%><% -%><%#FILE FormatColumns.cs%><% -}// Bottom of Namespace -%> -##|BODY_END diff --git a/PROMS/MyGeneration/csla_21/Debug/Debug.cs b/PROMS/MyGeneration/csla_21/Debug/Debug.cs deleted file mode 100644 index 6c690c35..00000000 --- a/PROMS/MyGeneration/csla_21/Debug/Debug.cs +++ /dev/null @@ -1,219 +0,0 @@ - private void ColumnInfoHeader() - { - Write("Container, "); - Write("Name, "); - Write("Alias, "); - Write("AutoKeyIncrement, "); - Write("AutoKeySeed, "); - Write("CharacterMaxLength, "); - Write("CharacterOctetLength, "); - //Write("CharacterSetCatalog, "); - //Write("CharacterSetSchema, "); - Write("CompFlags, "); - Write("DataType, "); - Write("DataTypeName, "); - Write("DataTypeNameComplete, "); - Write("DateTimePrecision, "); - Write("DbTargetType, "); - Write("Default, "); - Write("Description, "); - //Write("Domain, "); - //Write("DomainCatalog, "); - //Write("DomainName, "); - //Write("DomainSchema, "); - Write("Flags, "); - Write("ForeignKeys, "); - //Write("GlobalProperties, "); - //Write("Guid, "); - Write("HasDefault, "); - Write("HasDomain, "); - Write("IsAutoKey, "); - Write("IsComputed, "); - Write("IsInForeignKey, "); - Write("IsInPrimaryKey, "); - Write("IsNullable, "); - Write("LanguageType, "); - Write("LCID, "); - Write("NumericPrecision, "); - Write("NumericScale, "); - Write("Ordinal, "); - //Write("Properties, "); - Write("PropID, "); - Write("SortID, "); - Write("Table, "); - //Write("TDSCollation, "); - //Write("TypeGuid, "); - //Write("UserDataXPath, "); - Write("View\r\n"); - } - private void ColumnProps(IColumn column) - { - WriteProp("",(column.Table==null?"view: " + column.View.Name:column.Table.Name),""); - WriteProp(column.Name); - WriteProp(column.Alias); - WriteProp(column.AutoKeyIncrement); - WriteProp(column.AutoKeySeed); - WriteProp(column.CharacterMaxLength); - WriteProp(column.CharacterOctetLength); - //WriteProp(column.CharacterSetCatalog); - //WriteProp(column.CharacterSetSchema); - WriteProp(column.CompFlags); - WriteProp(column.DataType); - WriteProp(column.DataTypeName); - WriteProp(column.DataTypeNameComplete); - WriteProp(column.DateTimePrecision); - WriteProp(column.DbTargetType); - WriteProp(column.Default); - WriteProp(column.Description); - //WriteProp(column.Domain); - //WriteProp(column.DomainCatalog); - //WriteProp(column.DomainName); - //WriteProp(column.DomainSchema); - WriteProp(column.Flags); - WriteProp(column.ForeignKeys.Count); - //WriteProp(column.GlobalProperties); - //WriteProp(column.Guid); - WriteProp(column.HasDefault); - WriteProp(column.HasDomain); - WriteProp(column.IsAutoKey); - WriteProp(column.IsComputed); - WriteProp(column.IsInForeignKey); - WriteProp(column.IsInPrimaryKey); - WriteProp(column.IsNullable); - WriteProp(column.LanguageType); - WriteProp(column.LCID); - WriteProp(column.NumericPrecision); - WriteProp(column.NumericScale); - WriteProp(column.Ordinal); - //WriteProp(column.Properties); - WriteProp(column.PropID); - WriteProp(column.SortID); - WriteProp(column.Table); - //WriteProp(column.TDSCollation); - //WriteProp(column.TypeGuid); - //WriteProp(column.UserDataXPath); - WriteProp("",column.View,"\r\n"); - } - private void ColumnInfo(IColumn column) - { - WriteLine("\t\tContainer {0}",(column.Table==null?"view: " + column.View.Name:column.Table.Name)); - WriteLine("\t\tName {0}",column.Name); - WriteLine("\t\tAlias {0}",column.Alias); - WriteLine("\t\tAutoKeyIncrement {0}",column.AutoKeyIncrement); - WriteLine("\t\tAutoKeySeed {0}",column.AutoKeySeed); - WriteLine("\t\tCharacterMaxLength {0}",column.CharacterMaxLength); - WriteLine("\t\tCharacterOctetLength {0}",column.CharacterOctetLength); - //WriteLine("\t\tCharacterSetCatalog {0}",column.CharacterSetCatalog); - //WriteLine("\t\tCharacterSetSchema {0}",column.CharacterSetSchema); - WriteLine("\t\tCompFlags {0}",column.CompFlags); - WriteLine("\t\tDataType {0}",column.DataType); - WriteLine("\t\tDataTypeName {0}",column.DataTypeName); - WriteLine("\t\tDataTypeNameComplete {0}",column.DataTypeNameComplete); - WriteLine("\t\tDateTimePrecision {0}",column.DateTimePrecision); - WriteLine("\t\tDbTargetType {0}",column.DbTargetType); - WriteLine("\t\tDefault {0}",column.Default); - WriteLine("\t\tDescription {0}",column.Description); - //WriteLine("\t\tDomain {0}",column.Domain); - //WriteLine("\t\tDomainCatalog {0}",column.DomainCatalog); - //WriteLine("\t\tDomainName {0}",column.DomainName); - //WriteLine("\t\tDomainSchema {0}",column.DomainSchema); - WriteLine("\t\tFlags {0}",column.Flags); - WriteLine("\t\tForeignKeys {0}",column.ForeignKeys); - //WriteLine("\t\tGlobalProperties {0}",column.GlobalProperties); - //WriteLine("\t\tGuid {0}",column.Guid); - WriteLine("\t\tHasDefault {0}",column.HasDefault); - WriteLine("\t\tHasDomain {0}",column.HasDomain); - WriteLine("\t\tIsAutoKey {0}",column.IsAutoKey); - WriteLine("\t\tIsComputed {0}",column.IsComputed); - WriteLine("\t\tIsInForeignKey {0}",column.IsInForeignKey); - WriteLine("\t\tIsInPrimaryKey {0}",column.IsInPrimaryKey); - WriteLine("\t\tIsNullable {0}",column.IsNullable); - WriteLine("\t\tLanguageType {0}",column.LanguageType); - WriteLine("\t\tLCID {0}",column.LCID); - WriteLine("\t\tNumericPrecision {0}",column.NumericPrecision); - WriteLine("\t\tNumericScale {0}",column.NumericScale); - WriteLine("\t\tOrdinal {0}",column.Ordinal); - //WriteLine("\t\tProperties {0}",column.Properties); - WriteLine("\t\tPropID {0}",column.PropID); - WriteLine("\t\tSortID {0}",column.SortID); - WriteLine("\t\tTable {0}",column.Table); - //WriteLine("\t\tTDSCollation {0}",column.TDSCollation); - //WriteLine("\t\tTypeGuid {0}",column.TypeGuid); - //WriteLine("\t\tUserDataXPath {0}",column.UserDataXPath); - WriteLine("\t\tView {0}",column.View); - } - private void ColumnFormatHeader() - { - Write("member,"); - Write("fmember,"); - Write("pmember,"); - Write("local,"); - Write("prop,"); - Write("memberprop,"); - Write("@,"); - Write("@new,"); - Write("ctype,"); - Write("rmember,"); - Write("rtype,"); -// Write("dbtype,"); - Write("name,"); - Write("class,"); - Write("fname,"); - Write("sqltype,"); - Write("?ref,"); - Write("?dbtype,"); - Write("?dbprefix,"); - Write("?dbsuffix,"); - Write("?dbsuff,"); - Write("default\r\n"); - } - private void ColumnFormat(IColumn column) - { - Write(FormatColumn("\"{member}\",",column)); - Write(FormatColumn("\"{fmember}\",",column)); - Write(FormatColumn("\"{pmember}\",",column)); - Write(FormatColumn("\"{local}\",",column)); - Write(FormatColumn("\"{prop}\",",column)); - Write(FormatColumn("\"{memberprop}\",",column)); - Write(FormatColumn("\"{@}\",",column)); - Write(FormatColumn("\"{@new}\",",column)); - Write(FormatColumn("\"{ctype}\",",column)); - Write(FormatColumn("\"{rmember}\",",column)); - Write(FormatColumn("\"{rtype}\",",column)); -// Write(FormatColumn("\"{dbtype}\",",column)); - Write(FormatColumn("\"{name}\",",column)); - Write(FormatColumn("\"{class}\",",column)); - Write(FormatColumn("\"{fname}\",",column)); - Write(FormatColumn("\"{sqltype}\",",column)); - Write(FormatColumn("\"{?ref}\",",column)); - Write(FormatColumn("\"{?dbtype}\",",column)); - Write(FormatColumn("\"{?dbprefix}\",",column)); - Write(FormatColumn("\"{?dbsuffix}\",",column)); - Write(FormatColumn("\"{?dbsuff}\",",column)); - Write(FormatColumn("\"{default}\"\r\n",column)); - } -private void ColumnFormatNew(IColumn column) - { - Write(FormatColumnNew("\"{member}\",",column)); - Write(FormatColumnNew("\"{fmember}\",",column)); - Write(FormatColumnNew("\"{pmember}\",",column)); - Write(FormatColumnNew("\"{local}\",",column)); - Write(FormatColumnNew("\"{prop}\",",column)); - Write(FormatColumnNew("\"{memberprop}\",",column)); - Write(FormatColumnNew("\"{@}\",",column)); - Write(FormatColumnNew("\"{@new}\",",column)); - Write(FormatColumnNew("\"{ctype}\",",column)); - Write(FormatColumnNew("\"{rmember}\",",column)); - Write(FormatColumnNew("\"{rtype}\",",column)); -// Write(FormatColumnNew("\"{dbtype}\",",column)); - Write(FormatColumnNew("\"{name}\",",column)); - Write(FormatColumnNew("\"{class}\",",column)); - Write(FormatColumnNew("\"{fname}\",",column)); - Write(FormatColumnNew("\"{sqltype}\",",column)); - Write(FormatColumnNew("\"{?ref}\",",column)); - Write(FormatColumnNew("\"{?dbtype}\",",column)); - Write(FormatColumnNew("\"{?dbprefix}\",",column)); - Write(FormatColumnNew("\"{?dbsuffix}\",",column)); - Write(FormatColumnNew("\"{?dbsuff}\",",column)); - Write(FormatColumnNew("\"{default}\"\r\n",column)); - } \ No newline at end of file diff --git a/PROMS/MyGeneration/csla_21/FilteredColumns.cs b/PROMS/MyGeneration/csla_21/FilteredColumns.cs deleted file mode 100644 index 6ee39abd..00000000 --- a/PROMS/MyGeneration/csla_21/FilteredColumns.cs +++ /dev/null @@ -1,545 +0,0 @@ - #region FilteredColumns - // Used by CSLA Objects Guid - public bool IsGuid(IColumn column){ - return(column.LanguageType=="timestamp");} - public ArrayList Guid(IColumns columns){ - return FilteredColumns(columns,new Filter(IsGuid));} - // Used in CSLA Business Objects AutoKey - public bool AutoKey(IColumn column){ - return(column.IsAutoKey);} - public ArrayList AutoKey(IColumns columns){ - return FilteredColumns(columns,new Filter(AutoKey));} - public ArrayList AutoKey(IForeignKey fk){ - ArrayList l = new ArrayList(); - foreach(IColumn column in fk.ForeignTable.Columns){ - if (column.IsAutoKey && !IsIn(column,fk.ForeignColumns))l.Add(column);} - return l;} - // Used in CSLA Stored Procedures - private ArrayList AutoKey(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(AutoKey));} - // Used in CSLA Stored Procedures Updatable - public bool Updatable(IColumn column){ - return(!NotUpdatable(column));} - private ArrayList Updatable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(Updatable));} - // Used in CSLA Stored Procedures Not Updatable - public bool NotUpdatable(IColumn column){ - return(column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed);} - private ArrayList NotUpdatable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(NotUpdatable));} - // Used in CSLA Stored Procedures PrimaryKey - public bool PrimaryKey(IColumn column){ - return(column.IsInPrimaryKey);} - private ArrayList PrimaryKey(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(PrimaryKey));} - // Used in CSLA Stored Procedures Insertable - public bool Insertable(IColumn column){ - return(!NotInsertable(column));} - private ArrayList Insertable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(Insertable));} - // Used in CSLA Stored Procedures Not Insertable - public bool NotInsertable(IColumn column){ - return(column.IsAutoKey || column.IsComputed);} - private ArrayList NotInsertable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(NotInsertable));} - // Used in CSLA Stored Procedures & CSLA Business Objects Computed - public bool Computed(IColumn column){ - return(column.IsComputed);} - private ArrayList Computed(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(Computed)); } - // Used in CSLA Stored Procedures Not TimeStamp - public bool NotTimestamp(IColumn column){ - return(!Timestamp(column));} - private ArrayList NotTimestamp(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(NotTimestamp));} - private ArrayList NotTimestamp(IColumns cols){ - return FilteredColumns(cols,new Filter(NotTimestamp));} - // Used in CSLA Business Objects - public bool IsRequired(IColumn column) - { - if(column.IsNullable) return false; - if(!column.HasDefault) return true; - // If it is the parent column it is required - return IsParentColumn(column); -// return false; - } -// public bool ForeignKey(IColumn column) -// { -// return(column.IsInForeignKey); -// } - // Used in CSLA Business Objects Automatic - public bool IsAutomatic(IColumn column) - { - bool retval=column.Description.IndexOf("{auto}") >= 0; - return retval; - } - // Used in CSLA Business Objects TimeStamp - public bool Timestamp(IColumn column){ - return(column.DataTypeName=="timestamp");} - public ArrayList IsTimestamp(IColumns columns){ - return FilteredColumns(columns,new Filter(Timestamp));} - // Used in CSLA Stored Procedures and Business Objects - public ArrayList FilteredColumns(IColumns columns,Filter f){ - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - { - if(f(column))l.Add(column); - } - return l; - } - // Used in CSLA Business Objects - public ArrayList ExcludedColumns(IColumns columns,Filter f){ - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - { - if(!f(column))l.Add(column); - } - return l; - } - private int CountRequiredFields( IColumns Columns ){ - return Columns.Count - CountNullableFields( Columns );} - private int CountNullableFields( IColumns Columns ) - { - int i = 0; - foreach( IColumn c in Columns ) - { - if( c.IsNullable ) - { - i++; - } - } - return i; - } - - private int CountUniqueFields( IColumns Columns ) - { - int i = 0; - foreach( IColumn c in Columns ) - { - if( !c.IsNullable && c.IsInPrimaryKey ) - { - i++; - } - } - return i; - } - public ArrayList MakeList(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(!column.IsAutoKey && !IsAutomatic(column) && !column.IsComputed) - l.Add(column); - return l; - } - public ArrayList MakeList4(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if((!column.IsAutoKey && !IsAutomatic(column) && !column.IsComputed ) && - (column.HasDefault==false || column.ForeignKeys.Count != 0)) - l.Add(column); - return l; - } - public ArrayList ReqList(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - l.Add(column); - return l; - } - public ArrayList ReqListNoDefault(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey && column.HasDefault) - l.Add(column); - return l; - } - public ArrayList MakeList2(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(!column.IsAutoKey && !column.IsComputed) - l.Add(column); - return l; - } - public ArrayList MakeList3(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(IsAutomatic(column)) - l.Add(column); - return l; - } - public void BuildLists(IList cols,ref string sMakeListParamTypes, ref string sMakeListParams, - ref string sSetTmp, ref string sParentCheck) - { - string sep = ""; - string sepSet = ""; - string sPrefixType=""; - string sPrefix=""; - string sPrefixSet=""; - string sCheckSep = "if ("; - sMakeListParamTypes = ""; - sMakeListParams = ""; - sSetTmp = ""; - sParentCheck=""; -// ArrayList parentCols = new ArrayList(); - foreach(IColumn col in cols) - { - sMakeListParamTypes += sep + FormatColumn("{!rtype} {!local}",col); - sMakeListParams += sep + FormatColumn("{!local}",col); - sSetTmp += sepSet + FormatColumn("\t\t\ttmp.{!memberprop} = {!local};",col); - sep=", "; - sepSet="\r\n"; - if(IsRelObj(col)) // If item is null, don't look it up - { - sParentCheck += "/*0*/" + sCheckSep + LocalName(RelObjProp(col)) + " != null "; - sCheckSep = "|| "; - } - } - if(sParentCheck != "")sParentCheck += ") "; - sMakeListParamTypes = sPrefixType + sMakeListParamTypes; - sMakeListParams = sPrefix + sMakeListParams; - sSetTmp = sPrefixSet + sSetTmp; - //sParentCheck=FormatColumns("{!rtype} {!local} = {autoseed};\r\n\t\t\tif (parent != null)\r\n\t\t\t{\r\n\t\t\t\t{!local} = parent;\r\n\t\t\t}\r\n\t\t\t",parentCols,"\r\n",""); - //sParentCheck=""; - } - public bool SameList(IList lst1, IList lst2) - { - ArrayList l = new ArrayList(); - foreach(IColumn col in lst1)l.Add(col.Name); - foreach(IColumn col in lst2) - if(l.Contains(col.Name))l.Remove(col.Name); - else return false; - return l.Count ==0; - } - public string SameList2(IList lst1, IList lst2) - { - ArrayList l = new ArrayList(); - foreach(IColumn col in lst1)l.Add(col.Name); - foreach(IColumn col in lst2)l.Remove(col.Name); - string sList=""; - string sep="Difference: "; - foreach(string ss in l){ - sList+=sep+ss; - sep=", "; - } - return sList; - } - public bool SameTypes(IList lst1, IList lst2) - { - if(lst1.Count != lst2.Count) return false; - for(int i=0;i 0) - { - _workingTable=(ITable) _TableStack[_TableStack.Count-1]; - _TableStack.RemoveAt(_TableStack.Count-1); - } - } - private bool ForeignRequired(IForeignKey pk) - { - bool bRequired=true; - foreach(IColumn col in pk.ForeignColumns) - bRequired &= !col.IsNullable; - return bRequired; - } - private bool ForeignPrimary(IForeignKey fk) - { - bool bPrimary=true; - foreach(IColumn col in fk.ForeignColumns) - { - bPrimary &= col.IsInPrimaryKey; - } - return bPrimary; - } - public int FindColumn(IList cols, IColumn col) - { - for(int i=0;i= 0) - { - uniqueColumns.RemoveAt(ii); - } - else - { - uniqueColumns.Clear(); - } - } - if(uniqueColumns.Count > 0)// This is a uniqueIndex which includes the parent columns - { - //ShowColumns(uniqueColumns,4,"Unique Index " + ind.Name); - retval.Add(uniqueColumns); - } - } - } - return retval; - } - public bool ContainsList(IList lst1, IList lst2) - { - foreach(IColumn col in lst2) - if(FindColumn(lst1,col)<0)return false; - return true; - } - public IList FindUnique(ArrayList lst, IList cols) - { - foreach(IList lstcols in lst) - { - if(ContainsList(cols,lstcols))return lstcols; - } - return null; - } - public string ColumnListToString(IList lst) - { - string retval = ""; - string sep = ""; - foreach(IColumn col in lst) - { - retval += sep + col.Name; - sep=", "; - } - return retval; - } - //public ArrayList zzFilteredColumnsAny(IColumns columns,Filter [] fs){ - // ArrayList l = new ArrayList(); - // foreach(IColumn column in columns) - // { - // bool check = false; - // foreach(Filter f in fs)check |= f(column); - // if(check)l.Add(column); - // } - // return l; - //} - //public ArrayList zzExcludedColumnsAny(IColumns columns,Filter [] fs){ - // ArrayList l = new ArrayList(); - // foreach(IColumn column in columns) - // { - // bool check = false; - // foreach(Filter f in fs)check |= f(column); - // if(!check)l.Add(column); - // } - // return l; - //} - #endregion diff --git a/PROMS/MyGeneration/csla_21/ForeignKeyProcessing.cs b/PROMS/MyGeneration/csla_21/ForeignKeyProcessing.cs deleted file mode 100644 index c13c4fbf..00000000 --- a/PROMS/MyGeneration/csla_21/ForeignKeyProcessing.cs +++ /dev/null @@ -1,206 +0,0 @@ -// Foreign Key Processing - public delegate void ProcessFK(IForeignKey fk,string alias); - public string ParentName(IForeignKey fk) - { - if(fk == null)return "Parent"; - string sKey = fk.ForeignColumns[0].Name; - if(sKey.StartsWith("Prev") || sKey.StartsWith("Prv"))return "Previous"; - if(sKey.StartsWith("Next") || sKey.StartsWith("Nxt"))return "Next"; - return "Parent"; - } - public string ChildName(IForeignKey fk) - { - string sKey = fk.ForeignColumns[0].Name; - if(sKey.StartsWith("Prev") || sKey.StartsWith("Prv"))return "Next"; - if(sKey.StartsWith("Next") || sKey.StartsWith("Nxt"))return "Previous"; - return "Child"; - } - public string ChildrenName(IForeignKey fk) - { - string sKey = fk.ForeignColumns[0].Name; - if(sKey.StartsWith("Prev") || sKey.StartsWith("Prv"))return "Next"; - if(sKey.StartsWith("Next") || sKey.StartsWith("Nxt"))return "Previous"; - return "Children"; - } - public string GetAlias(Hashtable hTbl,ITable tbl) - { - string sAlias = tbl.Alias; - if(!hTbl.Contains(sAlias)) - { - hTbl[sAlias]=0; - return ""; - } -// WriteLine("-- Hashtable count = {0}, TableName = [{1}]",hTbl.Count,tbl.Name); - int iAlias = 1+ (int)hTbl[sAlias]; - hTbl[sAlias]=iAlias; -// return "_" + iAlias.ToString(); - return "_" + "ABCDEFGHIJKLMNOP".Substring(iAlias,1); - } - public string GetAlias(IForeignKey fk) - { - if(fk.PrimaryTable.Name == fk.ForeignTable.Name)return ""; - // First I need to check to see if there are more than one Foreign Keys pointing to the same Primary Table - int count=0; - foreach(IForeignKey fk1 in fk.ForeignTable.ForeignKeys) - { - if(fk1.PrimaryTable.Name == fk.PrimaryTable.Name) count++; - } - if(count > 1) - return FormatColumns("_{prop}",fk.ForeignColumns,"",""); - return ""; - } - public void ProcessFKAlias(ITable tbl,ProcessFK pfk) - { - Hashtable dicByNames = new Hashtable(); - foreach(ForeignKey fk in tbl.ForeignKeys) - { - if(fk.ForeignTable == tbl) - { - pfk(fk,GetAlias(dicByNames,fk.PrimaryTable)); - } - } - } - private bool IsPrimaryKey(IForeignKey fk) - { -// bool retval=true; -// foreach(IColumn c in fk.ForeignColumns)retval &= c.IsInPrimaryKey; - return SameList(fk.ForeignTable.PrimaryKeys,fk.ForeignColumns); -// return retval; -// return IsPrimaryKey(fk.ForeignColumns); - } - private bool IsPrimaryKey1(IForeignKey fk) - { -// bool retval=true; -// foreach(IColumn c in fk.ForeignColumns)retval &= c.IsInPrimaryKey; - return SameList(fk.PrimaryTable.PrimaryKeys,fk.PrimaryColumns); -// return retval; -// return IsPrimaryKey(fk.ForeignColumns); - } - private string ColumnList(IColumns cols) - { - string retval=""; - string sep = ""; - foreach(IColumn col in cols) - { - retval += sep + col.Name; - sep = ", "; - } - return retval; - } - private bool IsPrimaryKey(IColumns cols) - { - ITable tbl = cols[0].Table; - int match = tbl.PrimaryKeys.Count; - foreach(IColumn col in cols) - { - if(col.Table.Name != tbl.Name) - { -// WriteLine("Table Mismatch - {0},{1}",col.Table.Name,tbl.Name); - return false; // If it points to multiple tables, it is not a primary key - } - if(col.IsInPrimaryKey)match --; - else - { -// WriteLine("Not In Primary Key {0} in {1} ({2})",col.Name, tbl.Name, ColumnList(tbl.PrimaryKeys)); - return false; - } - } -// WriteLine("Match = {0}",match); - return match==0; - } - private bool IsPrimaryKey(IColumns cols1,IColumns cols2) - { - ITable tbl = cols1[0].Table; - int match = tbl.PrimaryKeys.Count; - foreach(IColumn col in cols1) - { - if(col.Table.Name != tbl.Name) - { -// WriteLine("Table Mismatch - {0},{1}",col.Table.Name,tbl.Name); - return false; // If it points to multiple tables, it is not a primary key - } - if(col.IsInPrimaryKey)match --; - else - { -// WriteLine("Not In Primary Key {0} in {1} ({2})",col.Name, tbl.Name, ColumnList(tbl.PrimaryKeys)); - return false; - } - } -// WriteLine("Match = {0}",match); - foreach(IColumn col in cols2) - { - if(col.Table.Name != tbl.Name) - { -// WriteLine("Table Mismatch - {0},{1}",col.Table.Name,tbl.Name); - return false; // If it points to multiple tables, it is not a primary key - } - if(col.IsInPrimaryKey)match --; - else - { -// WriteLine("Not In Primary Key {0} in {1} ({2})",col.Name, tbl.Name, ColumnList(tbl.PrimaryKeys)); - return false; - } - } -// WriteLine("Match = {0}",match); - return match==0; - } - private bool ManyToMany(ITable tbl,IForeignKey fk,IForeignKey pk) - { - if(tbl != fk.PrimaryTable)return false;// It should be the Primary Table - if(tbl == pk.PrimaryTable)return false;// It should not loop back to the Primary Table - if(fk.PrimaryTable == fk.ForeignTable)return false;// Ignore Parent/Child relationships - if(pk.PrimaryTable == pk.ForeignTable)return false;// Ignore Parent/Child relationships - // Now for the detail check - the primary columns in each foreign key should be the primary key in the primary table -// WriteLine("Checking Primary Keys - {0}",tbl.Name); - if(!IsPrimaryKey(fk.PrimaryColumns))return false; - if(!IsPrimaryKey(pk.PrimaryColumns))return false; - // And the foreign columns from both foreign keys should be the primary key in the foreigntable -// WriteLine("Checking Foreign Keys - {0}",tbl.Name); - if(!IsPrimaryKey(fk.ForeignColumns,pk.ForeignColumns))return false; - return true; - } - private bool OneToOne(ITable tbl) - { - // Check to see if the Primary Key is also the Foreign Part of a Foreign Key - foreach(IColumn col in tbl.PrimaryKeys) - { - if(IsPrimaryKey(col)) - { - foreach(IForeignKey fk in col.ForeignKeys) - { - //WriteLine("{0} {1} {2} {3} {4}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name, - //fk.ForeignTable.Name == tbl.Name, fk.PrimaryTable.Name != tbl.Name); - if(fk.ForeignTable.Name == tbl.Name && fk.PrimaryTable.Name != tbl.Name ) - return true; - } - } - } - return false; - } - private bool AnyNotOneToOne(ITable tbl) - { - bool retval = true; - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.ForeignTable == tbl) - { - if(!OneToOne(fk))return true; - //WriteLine("{0} {1} {2} {3} {4}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name, - // fk.ForeignTable.Name == tbl.Name, fk.PrimaryTable.Name != tbl.Name); - retval = false; - } - } - return retval; - } - private bool OneToOne(IForeignKey fk1) - { - ITable tbl=fk1.ForeignTable; // Check to see if the Primary Key is also the Foreign Part of a Foreign Key -// WriteLine("{0} {1} {2} {3} {4}",fk1.Name,fk1.PrimaryTable.Name,fk1.ForeignTable.Name, -// fk1.ForeignTable.Name == tbl.Name, fk1.PrimaryTable.Name != tbl.Name); - foreach(IColumn col in fk1.ForeignColumns) - { -// WriteLine("Column {0} Primary {1}",col.Name,IsPrimaryKey(col)); - if(!IsPrimaryKey(col))return false; - } - return true; - } diff --git a/PROMS/MyGeneration/csla_21/FormatColumns.cs b/PROMS/MyGeneration/csla_21/FormatColumns.cs deleted file mode 100644 index 7fbf200d..00000000 --- a/PROMS/MyGeneration/csla_21/FormatColumns.cs +++ /dev/null @@ -1,563 +0,0 @@ -//// FormatColumns -// private string FormatColumnOld(string sFormat,IColumn column,string sAlias) -// { -// string s=sFormat; -// s=s.Replace("{member}",ColumnToMemberVariable(column));//m - Member _firstname -// s=s.Replace("{fmember}",(column.Table.Name==_workingTable.Name?"":"_" + ToClassName(column.Table.Name).ToLower() + sAlias)+ColumnToMemberVariable(column));//m - Member _firstname -// s=s.Replace("{pmember}",(column.Table.Name==_workingTable.Name?"":ToClassName(column.Table.Name).ToLower() + sAlias)+"."+ColumnToPropertyName(column));//m - Member _firstname -// s=s.Replace("{local}",ColumnToMemberVariable(column).Substring(1));//l Local firstname -// s=s.Replace("{prop}",ColumnToPropertyName(column)); -// s=s.Replace("{memberprop}",(column.IsInPrimaryKey ? ColumnToMemberVariable(column) : ColumnToPropertyName(column))); -// s=s.Replace("{@}",ColumnToParameterName(column)); -// s=s.Replace("{@new}",ColumnToNewParameterName(column)); -// string cType = ColumnToCSLAType(column); -// s=s.Replace("{ctype}",cType); -// s=s.Replace("{rmember}",vlnReturnMember(cType)); -// s=s.Replace("{rtype}",vlnReturnType(cType)); -//// s=s.Replace("{dbtype}",ColumnToMemberVariable(column).Substring(1)); -// s=s.Replace("{name}",column.Name); -// s=s.Replace("{class}",ToClassName(column.Table.Alias.Replace( " ", "" ))); -// s=s.Replace("{fname}",(column.Table.Name==_workingTable.Name?"":column.Table.Name.Replace(" ","")+sAlias+"_")+column.Name); -// s=s.Replace("{sqltype}",ColumnToSQLDbType(column)); -// s=s.Replace("{?ref}",(column.IsComputed || column.IsAutoKey ? "ref " : "")); -// s=s.Replace("{?dbtype}",(ColumnToCSLAType( column )=="SmartDate" ? ".DBValue" : "")); -// s=s.Replace("{?dbprefix}",(ColumnToCSLAType( column )=="SmartDate" ? "new SmartDate(" : "")); -// s=s.Replace("{?dbsuffix}",(ColumnToCSLAType( column )=="SmartDate" ? ").DBValue" : "")); -// s=s.Replace("{?dbsuff}",(ColumnToCSLAType( column )=="SmartDate" ? ")" : "")); -// s=s.Replace("{default}",ColumnDefault(column)); -// //s=s.Replace("{xxx}",""); -// return s; -// } -// private string FormatColumnOld(string sFormat,IColumn column) -// { -// return FormatColumn(sFormat,column,""); -// } -// private string ColumnToSQLDbType(IColumn column) -// { -// switch(column.DataTypeName) -// { -// case "timestamp": -// return "SqlDbType.Timestamp"; -// case "int": -// return "SqlDbType.Int"; -// default: -// //return "//TODO: Need to fix ColumnToSQLDbType" + " " + column.DataType + " " + column.DataTypeName + " " + column.DataTypeNameComplete + " " + column.DbTargetType; -// return "SqlDBType./* " + column.DataTypeNameComplete + " " + column.DbTargetType + "*/"; -// } -// } -// private string vlnReturnType(string sType) -// { -// string sReturnType=sType; -// if(sType=="SmartDate")sReturnType="string"; -// return sReturnType; -// } -// private string vlnReturnMember(string sType) -// { -// string sReturnMember=""; -// return sReturnMember; -// } -// private string FormatColumns(string sFormat,IColumns columns) -// { -// return FormatColumns(sFormat,columns,""); -// } -// private string FormatColumns(string sFormat,IList columns,string sep) -// { -// string s=""; -// string ssep=""; -// foreach(IColumn column in columns) -// { -// s+=ssep+FormatColumn(sFormat,column); -// ssep=sep; -// } -// return s; -// } -// private string ColumnToMemberVariable( IColumn Column ) -// { -// return _prefix + UniqueColumn( Column ).ToLower(); -// } -// -// private string ColumnToPropertyName( IColumn Column ) -// { -// return ToPascalCase( UniqueColumn( Column ) ); -// } -// -// private string ColumnFKToClassName( IColumn c ) -// { -// return ToPascalCase( c.ForeignKeys[0].PrimaryTable.Alias.Replace( " ", "" ) ); -// } -// private string ColumnToParameterName(IColumn col) -// { -// return "@" + ToLeadingLower(col.Name).Replace(" ",""); -// } -// private string ColumnToNewParameterName(IColumn col) -// { -// return "@new" + col.Name.Replace(" ",""); -// } -// private string ColumnToArgumentName( IColumn Column ) -// { -// return UniqueColumn( Column ).ToLower(); -// } -// -// private string ColumnToNHibernateProperty( IColumn Column ) -// { -// return _prefix + UniqueColumn( Column ); -// } -// -// private string UniqueColumn( IColumn Column ) -// { -// string c = Column.Alias.Replace( " ", "" ); -// if( Column.Table != null && Column.Table.Alias.Replace( " ", "" ) == c ) -// { -// c += "Name"; -// } -// if( Column.View != null && Column.View.Alias.Replace( " ", "" ) == c ) -// { -// c += "Name"; -// } -// return c; -// } -// -// // nhibernate doesn't have these, so use the existing types -// private string ColumnToCSLAType( IColumn Column ) -// { -// string retVal = Column.LanguageType; -// -// switch( Column.LanguageType ) -// { -// case "DateTime": -// if(Column.Description.IndexOf("{datetime}")>=0) -// retVal="DateTime"; -// else -// retVal = "SmartDate"; -// break; -// // case "uint": -// // retVal = "int"; -// // break; -// // case "ulong": -// // retVal = "long"; -// // break; -// // case "ushort": -// // retVal = "short"; -// // break; -// } -// return retVal; -// } -// private string ColumnToDefault( IColumn Column ) -// { -// string retVal=";"; -// if(Column.DataTypeName=="timestamp") -// { -// retVal = " = new byte[8];//timestamp"; -// } -// else -// { -// //if(Column.Default != ""){ -// // retVal = ConvertDefault(Column) + ";// TODO: Default from DB " + RemoveParens(Column.Default) + " "; -// //} -// //else -// //{ -// switch( ColumnToCSLAType(Column ) ) -// { -// case "string": -// retVal = " = string.Empty;"; -// break; -// case "DateTime": -// retVal = " = new DateTime();"; -// break; -// case "SmartDate": -// retVal = " = string.Empty;"; -// break; -// //case "Guid": -// // retVal = "=new Guid();"; -// // break; -// default: -// // nothing to do here -// break; -// } -// //} -// } -// return retVal; -// } -// string ConvertDefault(IColumn column) -// { -// string s = RemoveParens(column.Default); -// switch(s) -// { -// case "getdate()": -// if(ColumnToCSLAType(column)=="DateTime") -// s="=DateTime.Now"; -// else -// s="=DateTime.Now.ToShortDateString()"; -// break; -// case "upper(suser_sname())": -// s= "=Environment.UserName.ToUpper()"; -// break; -// case "suser_sname()": -// s="=Environment.UserName"; -// break; -// default: -// if(IsNumeric(s))s="=" + s; -// else s=""; -// break; -// } -// return s; -// } -// string ColumnDefault(IColumn column) -// { -// string s = RemoveParens(column.Default); -// switch(s) -// { -// case "getdate()": -// if(ColumnToCSLAType(column)=="DateTime") -// s="DateTime.Now"; -// else -// s="DateTime.Now.ToShortDateString()"; -// break; -// case "upper(suser_sname())": -// s= "Environment.UserName.ToUpper()"; -// break; -// case "suser_sname()": -// s="Environment.UserName"; -// break; -// default: -// if(IsNumeric(s))s="" + s; -// else s=""; -// break; -// } -// return s; -// } -// private string ToLeadingCaps( string name ) -// { -// char[] chars = name.ToLower().ToCharArray(); -// chars[0] = Char.ToUpper( chars[0] ); -// return new string( chars ); -// } -// -// -// private string ToPascalCase( string name ) -// { -// string notStartingAlpha = Regex.Replace( name, "^[^a-zA-Z]+", "" ); -// string workingString = ToLowerExceptCamelCase( notStartingAlpha ); -// workingString = RemoveSeparatorAndCapNext( workingString ); -// return workingString; -// } -// private string ToClassName(string name) -// { -// return Regex.Replace(ToPascalCase(name),"s$",""); -// } -// private string RemoveSeparatorAndCapNext( string input ) -// { -// string dashUnderscore = "-_"; -// string workingString = input; -// char[] chars = workingString.ToCharArray(); -// int under = workingString.IndexOfAny( dashUnderscore.ToCharArray() ); -// while( under > -1 ) -// { -// chars[ under + 1 ] = Char.ToUpper( chars[ under + 1 ], CultureInfo.InvariantCulture ); -// workingString = new String( chars ); -// under = workingString.IndexOfAny( dashUnderscore.ToCharArray(), under + 1 ); -// } -// chars[ 0 ] = Char.ToUpper( chars[ 0 ], CultureInfo.InvariantCulture ); -// workingString = new string( chars ); -// return Regex.Replace( workingString, "[-_]", "" ); -// } -// private string ToLowerExceptCamelCase( string input ) -// { -// char[] chars = input.ToCharArray(); -// for( int i = 0; i < chars.Length; i++ ) -// { -// int left = ( i > 0 ? i - 1 : i ); -// int right = ( i < chars.Length - 1 ? i + 1 : i ); -// if( i != left && i != right ) -// { -// if( Char.IsUpper( chars[i] ) && Char.IsLetter( chars[ left ] ) && Char.IsUpper( chars[ left ] ) ) -// { -// chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture ); -// } -// else if( Char.IsUpper( chars[i] ) && Char.IsLetter( chars[ right ] ) && Char.IsUpper( chars[ right ] ) ) -// { -// chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture ); -// } -// else if( Char.IsUpper( chars[i] ) && !Char.IsLetter( chars[ right ] ) ) -// { -// chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture ); -// } -// } -// } -// chars[ chars.Length - 1 ] = Char.ToLower( chars[ chars.Length - 1 ], CultureInfo.InvariantCulture ); -// return new string( chars ); -// } - private string FormatColumnNew(string sFormat,IColumn column) - { - return FormatColumnNew(sFormat,column,""); - } - private string FormatColumnNew(string sFormat,IColumn col,string sAlias) - { - string s=sFormat; - IColumn column = col.Table.Columns[col.Name]; -// IForeignKey fkkk = RelObjFK(column); - string relProp=RelObjProp(column); - string relType=RelObjType(column); - string suffix = "";//(PropertyName(column)==ClassName(column.Table)?"Fld":""); - s=s.Replace("{member}",MemberName(column)+suffix);//m - Member _firstname -//member _DocID - s=s.Replace("{fmember}",(column.Table.Alias==_tableName?"":_prefix + ClassName(column.Table)+sAlias)+MemberName(column)+suffix);//m - Member _firstname -//fmember _DocID - s=s.Replace("{pmember}",(column.Table.Alias==_tableName?_prefix:LocalName(ClassName(column.Table))+".")+PropertyName(column)+suffix);//m - Member _firstname -//pmember _DocID - s=s.Replace("{rmember}",LocalName(ClassName(column.Table))+"."+PropertyName(column));//m - Member _firstname -//rmember entry.DocID - s=s.Replace("{!prop}",relProp); -//!prop MyDocument - s=s.Replace("{!member}",MemberName(relProp)); -//!member _MyDocument -// s=s.Replace("{!membercolumn}",MemberName(relProp) + (IsRelObj(column)?"." + RelObjCol(column):"")); - s=s.Replace("{!membercolumn}",MemberName(relProp) + (IsRelObj(column)?"." + RelObjProp(RelObjCol2(column)):"")); -//!membercolumn _MyDocument.DocID - s=s.Replace("{!local}",LocalName(relProp)); -//!local myDocument - s=s.Replace("{!localcolumn}",LocalName(relProp) + (IsRelObj(column)?"." + RelObjCol(column):"")); -//!localcolumn myDocument.DocID - s=s.Replace("{!type}",relType); -//!type Document - s=s.Replace("{!rtype}",ReturnType(relType)); -//!rtype Document - s=s.Replace("{!memberprop}",(column.IsInPrimaryKey ? MemberName(relProp) : relProp)+suffix); -//!memberprop MyDocument - s=s.Replace("{!propmember}",(IsRelObj(column) ? relProp : MemberName(relProp))+suffix); -//!propmember MyDocument - s=s.Replace("{!column}",RelObjCol(column)); -//!column DocID - s=s.Replace("{!empty}",RelObjEmpty(column)); -//!empty 0 - s=s.Replace("{!typecast}",RelObjTypeCast(column)); -//!typecast - s=s.Replace("{local}",LocalName(column)+suffix);//l Local firstname -//local docID - s=s.Replace("{prop}",PropertyName(column)+suffix); -//prop DocID - s=s.Replace("{memberprop}",(column.IsInPrimaryKey ? MemberName(column) : PropertyName(column))+suffix); -//memberprop DocID - s=s.Replace("{@}",ParameterName(column)); -//@ @DocID - s=s.Replace("{@new}",NewParameterName(column)); -//@new @newDocID - string cType = CSLAType(column); - s=s.Replace("{ctype}",cType); -//ctype int - s=s.Replace("{ctype1}",cType.Replace("?","")); -//ctype1 int - s=s.Replace("{rmember}",ReturnMember(cType)); -//rmember entry.DocID - s=s.Replace("{rtype}",ReturnType(cType)); -//rtype int -// s=s.Replace("{dbtype}",LocalName(column)); - s=s.Replace("{dtype}",DBType(column)); -//dtype int - s=s.Replace("{name}",column.Name); -//name DocID - s=s.Replace("{class}",ClassName(column.Table)); -//class Entry - s=s.Replace("{fname}",(column.Table.Alias==_tableName?"":ClassName(column.Table)+sAlias+"_")+column.Name); -//fname DocID - s=s.Replace("{sqltype}",column.DbTargetType); -//sqltype SqlDbType.Int - s=s.Replace("{?ref}",(column.IsComputed || column.IsAutoKey ? "ref " : "")); -//?ref - s=s.Replace("{?dbtype}",(CSLAType( column )=="SmartDate" ? ".DBValue" : "")); -//?dbtype - s=s.Replace("{?dbprefix}",(CSLAType( column )=="SmartDate" ? "new SmartDate(" : "")); -//?dbprefix - s=s.Replace("{?dbsuffix}",(CSLAType( column )=="SmartDate" ? ").DBValue" : "")); -//?dbsuffix - s=s.Replace("{?dbsuff}",(CSLAType( column )=="SmartDate" ? ")" : "")); -//?dbsuff - s=s.Replace("{default}",DefaultValue(column)); -//default - s=s.Replace("{?output}",(column.IsComputed || column.IsAutoKey ? " output" : "")); -//?output - s=s.Replace("{@key}",ParamKeyName(column)); -//@key @DocID - s=s.Replace("{tbl}",column.Table.Name + sAlias); -//tbl Entries - s=s.Replace("{?null}",(column.IsNullable?"=null":"")); -//?null - s=s.Replace("{parent}",parentName(column)); -//parent myDocument.DocID - s=s.Replace("{Parent}",ParentName(column)); -//Parent DocID - s=s.Replace("{ParentType}",ParentTypeName(column)); -//ParentType */ - s=s.Replace("{autoseed}",AutoSeed(column)); - if(s.Contains("{ifLogic")) - { - string ifLogic=""; - switch (CSLAType(column)) - { - case("DateTime"): - ifLogic = "if ({name}.Year >= 1753 && {name}.Year <= 9999) "; - break; - case("DateTime?"): - ifLogic = "if ({name} != null && ((DateTime){name}).Year >= 1753 && ((DateTime){name}).Year <= 9999) "; - break; - default: - if(column.IsNullable && IsRelObj(column) && s.Contains("{ifLogicL")) - ifLogic="if ({name} != null) "; - break; - } - s=s.Replace("{ifLogicL}",ifLogic.Replace("{name}",FormatColumnNew("{!local}{?dbtype}",column,sAlias))); - s=s.Replace("{ifLogicl}",ifLogic.Replace("{name}",FormatColumnNew("{!local}{?dbtype}",column,sAlias))); - s=s.Replace("{ifLogicP}",ifLogic.Replace("{name}",FormatColumnNew("{?dbprefix}{member}{?dbsuffix}",column,sAlias))); - s=s.Replace("{ifLogic@}",ifLogic.Replace("{name}",FormatColumnNew("criteria.{prop}{?dbtype}",column,sAlias))); - //string name = FormatColumnNew("{local}{?dbtype}",column,sAlias); - //s=s.Replace("{ifLogicL}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" )); - //name = FormatColumnNew("{?dbprefix}{member}{?dbsuffix}",column,sAlias); - //s=s.Replace("{ifLogicP}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" )); - //name = FormatColumnNew("criteria.{prop}{?dbtype}",column,sAlias); - //s=s.Replace("{ifLogic@}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" )); - } - return s; - } - private string FormatColumnFKNew(string sFormat,IColumn column) - { - string s=sFormat; - s=s.Replace("{fkname}",column.Name); - s=s.Replace("{fktable}",column.Table.Name); - return s; - } - private string FormatPKColumns(string sFormat,IForeignKey pk,string sep,string sPrefix,ref string ssep,string sAlias) - { - string s=""; - foreach(IColumn column in pk.PrimaryTable.Columns) - { - if(!IsIn(column,pk.PrimaryColumns) && column.DataTypeName != "timestamp") - { - s+=ssep+sPrefix+FormatColumn(sFormat,column,sAlias); - ssep=sep; - } - } - return s; - } - private string FormatFKColumns(string sFormat,IForeignKey fk,string sep,string sPrefix,ref string ssep) - { - string s=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - //if(!IsIn(column,fk.ForeignColumns)) - //{ - s+=ssep+sPrefix+FormatColumn(sFormat,column); - ssep=sep; - //} - } - return s; - } - private bool IsIn(IColumn column,IColumns columns) - { - foreach(IColumn col in columns) - if(col.Name==column.Name && col.Table.Name == column.Table.Name) - return true; - return false; - } - private string FormatColumns(string sFormat,IList columns,ref string sep,string sPrefix,ref string ssep) - { - string s=""; - foreach(IColumn column in columns) - { - s+=ssep+sPrefix+FormatColumn(sFormat,column); - ssep=sep; - } - return s; - } - private string FormatColumns(string sFormat,IList columns,string sep) - { - return FormatColumns(sFormat,columns,sep,""); - } - private string FormatColumns(string sFormat,IList columns,string sep,string sPrefix) - { - string s=""; - string ssep=""; - foreach(IColumn column in columns) - { - s+=ssep+sPrefix+FormatColumn(sFormat,column); - ssep=sep; - } - return s; - } - private string FormatColumn(string sFormat,IColumn column) - { - return FormatColumn(sFormat,column,""); - } - private string FormatColumn(string sFormat,IColumn column,string sAlias) - { - return FormatColumnNew(sFormat,column,sAlias); - } - private string FormatColumns(string sFormat,IForeignKey FK,string sep,string sPrefix) - { - string s=""; - string ssep=""; - for(int i = 0;i 0) - { - btnOK.Enabled = true; - Status = string.Format("Will process: {0} {1}",status.Substring(2),lb.SelectedItems.Count); - } - else - { - Status = "Select one or more tables to process."; - btnOK.Enabled = false; - } - } - } - public void checkbox_onclick( GuiCheckBox control ) - { - SetupOkButton(); - } - public void chooseTable_onclick( GuiListBox control ) - { - SetupOkButton(); - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - string dbName = input["chooseDatabase"].ToString(); - ArrayList selectedTables = input["chooseTables"] as ArrayList; - foreach(string tblName in selectedTables) - { - ITable tbl = MyMeta.Databases[dbName].Tables[tblName]; - if((bool)input["chkPrimary"])PrimaryKeys(tbl); - if((bool)input["chkColumns"])Details(tbl); - if((bool)input["chkFK"])ForeignKeys(tbl); - } - } - private void PrimaryKeys(ITable tbl) - { - output.writeln("Table - " + tbl.Name); - foreach(IColumn col in tbl.PrimaryKeys) - { - output.writeln(" Column - " + col.Name); - } - } - private void Details(ITable tbl) - { - Details(tbl,0); - } - private void Details(ITable tbl, int indent) - { - string sPad = "".PadRight(indent * 2); -%> <%=sPad%> Table - <%=tbl.Name%><% - foreach(IColumn col in tbl.Columns) - { - %> - <%=sPad%> Column - <%=col.Name%> <%=col.DataTypeNameComplete%><% - } - } - private void ForeignKeys(ITable tbl) - { - output.writeln("Table - " + tbl.Name); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - %> - ForeignKey - <%=fk.Name%> - Primary -<%Details(fk.PrimaryTable,6);%> - Foreign -<%Details(fk.ForeignTable,6);%><% - } - } -} -%> -##|BODY_END diff --git a/PROMS/MyGeneration/csla_21/MakeGuiCheckBox.cs b/PROMS/MyGeneration/csla_21/MakeGuiCheckBox.cs deleted file mode 100644 index 67140b3e..00000000 --- a/PROMS/MyGeneration/csla_21/MakeGuiCheckBox.cs +++ /dev/null @@ -1,14 +0,0 @@ - public GuiCheckBox MakeGuiCheckBox(string name,string caption,bool def, string helptext,int width,GuiCheckBox related,int offX, int offY) - { - GuiCheckBox tmp = ui.AddCheckBox( name, caption, def, helptext ); - tmp.Width=width; - tmp.Top=related.Top+(offY<0?-offY * related.Height:offY); - tmp.Left=related.Left+(offX<0?-offX * related.Width:offX); - return tmp; - } - public GuiCheckBox MakeGuiCheckBox(string name,string caption,bool def, string helptext,int width) - { - GuiCheckBox tmp = ui.AddCheckBox( name, caption, def, helptext ); - tmp.Width=width; - return tmp; - } diff --git a/PROMS/MyGeneration/csla_21/NamingConvention.cs b/PROMS/MyGeneration/csla_21/NamingConvention.cs deleted file mode 100644 index 9741b69a..00000000 --- a/PROMS/MyGeneration/csla_21/NamingConvention.cs +++ /dev/null @@ -1,486 +0,0 @@ - private string FKSelectName(ITable tbl,IForeignKey FK,string sAlias) - { - if(tbl.Name == FK.PrimaryTable.Name)return ChildName(FK) + ClassesName(tbl.Name); - //return ClassesName(tbl.Name) + "By" + ClassName(FK.PrimaryTable) + sAlias; - return ClassesName(tbl.Name) + "By" + ForeignKeyName(FK) + sAlias; - } - private string ForeignKeyName(IForeignKey FK) - { - string retval=""; - string sep = ""; - - foreach(IColumn col in FK.ForeignColumns) - { - retval = retval + sep + ClassName(col.Name); - sep = "_And_"; - } - return retval; - } - private string FKFieldName(IForeignKey fk) - { - string cName = ClassName( fk.ForeignTable ); - string className=ClassName( fk.PrimaryTable ); - if(className==cName)return ChildName(fk); - return ClassName( fk.ForeignTable ); - } - private string FKFieldsName(IForeignKey fk) - { - string cName = ClassesName( fk.ForeignTable ); - string className=ClassesName( fk.PrimaryTable ); - if(className==cName)return ChildrenName(fk); - return cName; - } - private string FKClassesName(IForeignKey fk) - { - string cName = ClassesName( fk.ForeignTable ); - string className=ClassesName( fk.PrimaryTable ); - if(className==cName)return ChildName(fk) + ClassesName( fk.PrimaryTable ); - return ClassName( fk.PrimaryTable ) + cName; - } - private string FKClassName(string className,IForeignKey fk) - { - string cName = ClassName( fk.ForeignTable ); - if(className==cName)return ChildName(fk) + cName; - return className + cName; - } - private string FKClassName(IForeignKey fk) - { - string className=ClassName(fk.PrimaryTable); - return FKClassName(className,fk); - } - private string FKClassName1(string className,IForeignKey fk) - { - string cName = ClassName( fk.ForeignTable); - if(className==cName)return ChildName(fk) + cName; - return className + cName + GetAlias(fk); - } - private string FKClassName1(IForeignKey fk) - { - string className=ClassName(fk.PrimaryTable); - return FKClassName1(className,fk); - } - private string FKBy(IForeignKey fk) - { - if(fk.PrimaryTable.Name==fk.ForeignTable.Name)return ChildrenName(fk); - return "By" +FormatColumns("{prop}",fk.ForeignColumns,"_",""); - } - private string FKAndString(string className,IForeignKey fk,string str) - { - string cName = ClassName( fk.ForeignTable ); - if(className==cName)return str; - return ""; - } - private string FKCountName(ITable tbl,IForeignKey FK,string sAlias) - { - if(tbl.Name == FK.ForeignTable.Name)return ChildName(FK); - return ClassName(FK.ForeignTable) + sAlias; - } - private bool FKParent(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable == fk.ForeignTable)return true; - } - return false; - } - private IForeignKey FKParentFK(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable == fk.ForeignTable)return fk; - } - return null; - } - private bool IsParentCol(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return false; - foreach(IColumn col1 in fk.ForeignColumns) - { - if(col.Name==col1.Name)return true; - } - return false; - } - private string parentName(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp == null) - { - if(IsRelObj(col))return LocalName(RelObjProp(col)) + "." + RelObjCol(col); - return LocalName(RelObjProp(col)); - } - return "my" + ParentName(col.ForeignKeys[0]) + "." + PropertyName(colp.Name); - } - private string ParentName(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp == null) - { - if(IsRelObj(col))return PropertyName(col); - return MemberName(RelObjProp(col)); - } - return PropertyName(col.Name); - } - private string ParentRef(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return ClassName(col.Table) + ".Get(" + RelObjTypeCast(col) + MemberName(col) + ")"; - return null; - } - private string ParentRefU(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return RelObjTypeCast(col) + MemberName(col); - return null; - } - private string ParentRefU2(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return MemberName(col); - return null; - } - private string ParentTypeName(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return ClassName(col.Table) + " myParent"; - return null; - } - private IColumn ParentCol(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return null; - return RelatedColumnF(col,fk); - } - private bool IsParentColumn(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return false; - foreach(IColumn colf in fk.ForeignColumns) - if(colf.Name == col.Name)return true; - return false; - } - private string AutoSeed(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return null; - IColumn colp = RelatedColumnF(col,fk); - if(colp==null)return ""; - return (colp.IsAutoKey?colp.AutoKeySeed.ToString():""); - } - - private IColumn RelatedColumn(IColumn column,IForeignKey fk){ - if(column.Table.Name == fk.PrimaryTable.Name && fk.ForeignColumns.Count == 1){ - return fk.ForeignColumns[0]; - } - if(column.Table.Name == fk.ForeignTable.Name && fk.PrimaryColumns.Count == 1){ - return fk.PrimaryColumns[0]; - } - return null; - } - private IColumn RelatedColumnF(IColumn col,IForeignKey fk){ - for(int i =0; i < fk.PrimaryColumns.Count;i++) // Loop through the related columns - { - IColumn pcol=fk.PrimaryColumns[i]; // This is the primary column - IColumn fcol=fk.ForeignColumns[i]; // This is the foreign column - //if(pcol.Name == col.Name && pcol.Table.Name == col.Table.Name)return fcol; - if(fcol.Name == col.Name && fcol.Table.Name == col.Table.Name)return pcol; - } - return null; - } - private IColumn RelatedColumnP(IColumn col,IForeignKey fk){ - for(int i =0; i < fk.PrimaryColumns.Count;i++) // Loop through the related columns - { - IColumn pcol=fk.PrimaryColumns[i]; // This is the primary column - IColumn fcol=fk.ForeignColumns[i]; // This is the foreign column - if(pcol.Name == col.Name && pcol.Table.Name == col.Table.Name)return fcol; - //if(fcol.Name == col.Name && fcol.Table.Name == col.Table.Name)return pcol; - } - return null; - } - private IColumn RelatedColumnB(IColumn col,IForeignKey fk){ - for(int i =0; i < fk.PrimaryColumns.Count;i++) // Loop through the related columns - { - IColumn pcol=fk.PrimaryColumns[i]; // This is the primary column - IColumn fcol=fk.ForeignColumns[i]; // This is the foreign column - if(pcol.Name == col.Name && pcol.Table.Name == col.Table.Name)return fcol; - if(fcol.Name == col.Name && fcol.Table.Name == col.Table.Name)return pcol; - } - return null; - } - private string ProcessName(Match m) - { - return m.Value.TrimStart("-_ ".ToCharArray()).ToUpper(); - } - private string Suffix(IColumn col) - { - //return (PropertyName(col.Name)==_className?"Fld":""); - return (PropertyName(col.Name)==ClassName(col.Table.Name)?"Fld":""); - } - private string PropertyName(IColumn col) - { - return PropertyName(col.Name)+Suffix(col); - } - private string PropertyName(string name) - { - return Regex.Replace(name, "^[a-z]|[-_ ][a-zA-Z0-9]",new MatchEvaluator(ProcessName)); - } - private bool MixedCase(string s) - { - bool hasUpper = false; - bool hasLower = false; - foreach (char c in s.ToCharArray()) - { - hasUpper |= Char.IsUpper(c); - hasLower |= char.IsLower(c); - if (hasLower && hasUpper) return true; - } - return false; - } - private string MemberName(string name) - { - return _prefix + name; - } - private string MemberName(IColumn c) - { - return MemberName(PropertyName(c)); - } - private string LocalName(IColumn col) - { - return LocalName(col.Name)+Suffix(col); - } - private string LocalName(string s) - { - s=PropertyName(s); - if(MixedCase(s))return ToLeadingLower(s); - else return s.ToLower(); - } - private string ClassName(string name) - { - return SingularName(PropertyName(name)); - } - private string ClassName(ITable table) - { - return ClassName(table.Alias); - } - private string ClassName(IView view) - { - return ClassName(view.Alias); - } - private string ClassName(IColumn column) - { - if(column.Table != null)return ClassName(column.Table); - if(column.View != null)return ClassName(column.View); - return null; - } - private string ClassesName(string name) - { - return PluralName(PropertyName(name)); - } - private string ClassesName(ITable table) - { - return ClassesName(table.Alias); - } - private string ClassesName(IView view) - { - return ClassesName(view.Name); - } - private string ClassesName(IColumn column) - { - if(column.Table != null)return ClassesName(column.Table); - if(column.View != null)return ClassesName(column.View); - return null; - } - private string SingularName(string s) - { - if(Regex.IsMatch(s,"crises$"))return Regex.Replace(s,"crises$","crisis"); - if(Regex.IsMatch(s,"uses$"))return Regex.Replace(s,"uses$","us"); - if(Regex.IsMatch(s,"is$"))return s; - if(Regex.IsMatch(s,"us$"))return s; - if(Regex.IsMatch(s,"sses$"))return Regex.Replace(s,"sses$","ss"); - if(Regex.IsMatch(s,"ches$"))return Regex.Replace(s,"ches$","ch"); - if(Regex.IsMatch(s,"ies$"))return Regex.Replace(s,"ies$","y"); - if(Regex.IsMatch(s,"ss$"))return s; - return Regex.Replace(s,"s$",""); - } - private string PluralName(string s) - { - s=SingularName(s); - if(Regex.IsMatch(s,"crisis$"))return Regex.Replace(s,"crisis$","crises"); - if(Regex.IsMatch(s,"us$"))return Regex.Replace(s,"us$","uses"); - if(Regex.IsMatch(s,"ises$"))return s; - if(Regex.IsMatch(s,"uses$"))return s; - if(Regex.IsMatch(s,"ss$"))return Regex.Replace(s,"ss$","sses"); - if(Regex.IsMatch(s,"ch$"))return Regex.Replace(s,"ch$","ches"); - if(Regex.IsMatch(s,"y$"))return Regex.Replace(s,"y$","ies"); - return s + "s"; - } - private string ReturnType(string type) - { - if(type=="SmartDate")type="string"; - return type; - } - private string ReturnMember(string type) - { - string member=""; - return member; - } - private string CSLAType(IColumn column) - { - return CSLAType(column,(column.IsNullable? "?":"")); - } - private string CSLAType(IColumn column,string suffix) - { - string type = column.LanguageType; - switch( column.LanguageType ) - { - case "DateTime": - if(column.Description.IndexOf("{datetime}")>=0) - type="DateTime" + suffix; - else - type = "SmartDate"; - break; - case "short": - type="Int16" + suffix; - break; - case "string": - break; - case "byte[]": - break; default: - type += suffix; - break; - // case "uint": - // retVal = "int"; - // break; - // case "ulong": - // retVal = "long"; - // break; - // case "ushort": - // retVal = "short"; - // break; - - } - return type; - } - string DefaultValue(IColumn column) - { - string s = RemoveParens(column.Default); - switch(s) - { - case "getdate()": - if(CSLAType(column)=="DateTime") - s="DateTime.Now"; - else - s="DateTime.Now.ToShortDateString()"; - break; - case "upper(suser_sname())": - s= "Environment.UserName.ToUpper()"; - break; - case "suser_sname()": - s="Environment.UserName"; - break; - default: - if(IsNumeric(s)) - s = "" + s; - else - { - if(s.StartsWith("N'")) - s = "\"" + s.Substring(2,s.Length-3) + "\""; - } - //else s=""; - break; - } - return s; - } - private string InitializeValue( IColumn Column ) - { - string retVal=";"; - if(Column.DataTypeName=="timestamp") - { - retVal = " = new byte[8];//timestamp"; - } - else - { - //if(Column.Default != ""){ - // retVal = ConvertDefault(Column) + ";// TODO: Default from DB " + RemoveParens(Column.Default) + " "; - //} - //else - //{ - switch( CSLAType(Column ) ) - { - case "string": - retVal = " = string.Empty;"; - break; - case "DateTime": - retVal = " = new DateTime();"; - break; - case "SmartDate": - retVal = " = string.Empty;"; - break; - //case "Guid": - // retVal = "=new Guid();"; - // break; - default: - // nothing to do here - break; - } - //} - } - return retVal; - } - public static bool IsNumeric(string stringToTest) - { - double newVal; - return double.TryParse(stringToTest, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out newVal); - } - private string RemoveParens(string s) - { - while(s.StartsWith("(") && s.EndsWith(")")) - s=s.Substring(1,s.Length-2); - return s; - } - private string ParameterName(IColumn column) - { - return "@" + PropertyName(column.Name); - } - private string NewParameterName(IColumn column) - { - return "@new" + PropertyName(column.Name); - } - private string ParamKeyName(IColumn column) - { - if(column.IsAutoKey)return NewParameterName(column); - return ParameterName(column); - } - private string ToLeadingLower( string name ) - { - char[] chars = name.ToCharArray(); - chars[0] = Char.ToLower( chars[0] ); - return new string( chars ); - } - private string DBType(IColumn column) - { - string s=column.DataTypeNameComplete; - switch(s){ - case "text": - s="varchar(MAX)"; - break; - case "ntext": - s="nvarchar(MAX)"; - break; - } - return s; - } -// Old ---------------------------------------------- -// private string ToClassName(string name) -// { -// return Regex.Replace(ToPascalCase(name),"s$",""); -// } -// private string ColumnToMemberVariable( IColumn Column ) -// { -// return _prefix + UniqueColumn( Column ).ToLower(); -// } -// -// private string ColumnToPropertyName( IColumn Column ) -// { -// return ToPascalCase( UniqueColumn( Column ) ); -// } diff --git a/PROMS/MyGeneration/csla_21/WriteLine.cs b/PROMS/MyGeneration/csla_21/WriteLine.cs deleted file mode 100644 index 25f93007..00000000 --- a/PROMS/MyGeneration/csla_21/WriteLine.cs +++ /dev/null @@ -1,27 +0,0 @@ - private void WriteLine(string format,params object [] args) - { - output.writeln(string.Format(format,args)); - } - private void Write(string format,params object [] args) - { - output.write(string.Format(format,args)); - } - private void WriteProp(object arg) - { - WriteProp(",",arg,""); - } - private void WriteProp(string prefix,object arg,string suffix) - { - try - { - if(arg.GetType()==typeof(string))Write("{0}\"{1}\"{2}",prefix,arg,suffix); - else if(arg.GetType().IsPrimitive)Write("{0}{1}{2}",prefix,arg,suffix); - else Write("{0}\"{1}\"{2}",prefix,arg,suffix); - } - catch(Exception) - { - Write("{0}{2}",prefix,arg,suffix); - } - } - - diff --git a/PROMS/MyGeneration/csla_21/vlnCSLA_SQL.csgen b/PROMS/MyGeneration/csla_21/vlnCSLA_SQL.csgen deleted file mode 100644 index e0c29fac..00000000 --- a/PROMS/MyGeneration/csla_21/vlnCSLA_SQL.csgen +++ /dev/null @@ -1,759 +0,0 @@ -##|TYPE Template -##|UNIQUEID d6b504d5-d9c6-42fe-8819-07780ea72506 -##|TITLE CSLA Stored Procedures - Volian -##|NAMESPACE CSLA_21 -##|SOURCE_TYPE Source -##|OUTPUT_LANGUAGE Transact-SQL -##|GUI_ENGINE .Net Script -##|GUI_LANGUAGE C# -##|GUI_BEGIN - -public class GeneratedGui : DotNetScriptGui -{ - public GeneratedGui(ZeusContext context) : base(context) {} - - //----------------------------------------- - // The User Interface Entry Point - //----------------------------------------- - public override void Setup() - { - if ( !input.Contains( "chooseTables" ) || !input.Contains( "txtPath" ) || - ( !input.Contains( "chkClass" ) && !input.Contains( "chkNaming" ) ) ) - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.ReadInputFromCache(context); - ui.Title = "CSLA Object Mapping"; - ui.Width = 600; - ui.Height = 660; - GuiLabel label1 = ui.AddLabel( "label1", "Select the output path:", "Select the output path in the field below." ); - //label1.Width = 200; - GuiTextBox outputPath = ui.AddTextBox( "outputPath", GetDefault("defaultOutputPath"), "Select the Output Path." ); - outputPath.Width = 450; - GuiFilePicker selectPath = ui.AddFilePicker( "selectPath", "Select Path", "Select the Output Path.", "outputPath", true ); - selectPath.Top = outputPath.Top; - selectPath.Width = 100; - selectPath.Left = outputPath.Left + outputPath.Width + 20; - - GuiLabel label2 = ui.AddLabel( "label2", "Namespace: ", "Provide your objects namespace." ); - label2.Width = 280; - GuiTextBox classNamespace = ui.AddTextBox( "classNamespace", "Volian.Object.Library", "Provide your objects namespace." ); - classNamespace.Width = 280; - - GuiLabel label3 = ui.AddLabel( "label3", "Member prefix: ", "Provide your member prefix." ); - label3.Width = 100; - label3.Top = label2.Top; - label3.Left = label2.Width + 20; - GuiTextBox memberPrefix = ui.AddTextBox( "memberPrefix", "_", "Provide your member prefix." ); - memberPrefix.Width = 100; - memberPrefix.Top = classNamespace.Top; - memberPrefix.Left = classNamespace.Width + 20; - - GuiLabel label3A = ui.AddLabel( "label3A", "dbConnection: ", "Provide a Connection Name." ); - label3A.Width = 150; - label3A.Top = label3.Top; - label3A.Left = label3.Left+label3.Width + 10; - GuiTextBox dbConnection = ui.AddTextBox( "dbConnection", "VEPROMS", "Provide a Connection Name." ); - dbConnection.Width = 150; - dbConnection.Top = memberPrefix.Top; - dbConnection.Left = memberPrefix.Left + memberPrefix.Width + 10; - - // Setup Database selection combobox. - GuiLabel label4 = ui.AddLabel( "label4", "Select a database:", "Select a database in the dropdown below." ); - label4.Width = 280; - GuiComboBox chooseDatabase = ui.AddComboBox( "chooseDatabase", "Select a database." ); - chooseDatabase.Width = 280; - - GuiCheckBox chkSelect = MakeGuiCheckBox( "chkSelect", "Select All", true, "Select All Records",100 ); - GuiCheckBox chkUpdate = MakeGuiCheckBox( "chkUpdate", "Update One", true, "Update One Record" ,150,chkSelect,150,0); - GuiCheckBox chkFiles = MakeGuiCheckBox( "chkFiles", "Files", true, "Create Files" ,150,chkUpdate,200,0); - GuiCheckBox chkInsert = MakeGuiCheckBox( "chkInsert", "Insert One", true, "Insert One Record" ,150,chkSelect,0,-1); - GuiCheckBox chkDelete = MakeGuiCheckBox( "chkDelete", "Delete One", true, "Delete One Record" ,150,chkInsert,150,0); - GuiCheckBox chkSelectPK = MakeGuiCheckBox( "chkSelectPK", "Select One", true, "Select One Record" ,150,chkInsert,0,-1); - GuiCheckBox chkExists = MakeGuiCheckBox("chkExists","Exists",true,"Check Record Exists",150,chkSelectPK,150,0); - GuiCheckBox chkPurge = MakeGuiCheckBox("chkPurge","Purge",true,"Purge All Data",150,chkSelectPK,0,-1); - GuiCheckBox chkSelectFKs = MakeGuiCheckBox("chkSelectFKs","Select Group",true,"Select by Foreign Key",150,chkPurge,150,0); - - // Setup Tables selection multi-select listbox. - GuiLabel label7 = ui.AddLabel( "label7", "Select tables:", "Select tables from the listbox below." ); - //label7.Top = chkEqualsHashCode.Top + 20; - GuiListBox chooseTables = ui.AddListBox( "chooseTables", "Select tables." ); - chooseTables.Height = 120; - - // Setup Views selection multi-select listbox. - GuiLabel label8 = ui.AddLabel( "label8", "Select views:", "Select views from the listbox below." ); - GuiListBox chooseViews = ui.AddListBox( "chooseViews", "Select views." ); - chooseViews.Height = 120; - - // Attach the onchange event to the cmbDatabases control. - setupDatabaseDropdown( chooseDatabase ); - chooseDatabase.AttachEvent( "onchange", "chooseDatabase_onchange" ); - - ui.ShowGui = true; - } - else - { - ui.ShowGui = false; - } - } - public void setupDatabaseDropdown( GuiComboBox Databases ) - { - try - { - if( MyMeta.IsConnected ) - { - Databases.BindData( MyMeta.Databases ); - if( MyMeta.DefaultDatabase != null ) - { - Databases.SelectedValue = MyMeta.DefaultDatabase.Alias; - bindTables( Databases.SelectedValue ); - bindViews( Databases.SelectedValue ); - } - } - } - catch - { - } - } - - public void bindTables( string sDatabase ) - { - //int count = 0; - - GuiListBox lstTables = ui["chooseTables"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstTables.BindData(db.Tables); - } - catch - { - } - } - - public void bindViews( string sDatabase ) - { - //int count = 0; - - GuiListBox lstViews = ui["chooseViews"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstViews.BindData( db.Views ); - } - catch - { - } - } - - public void chooseDatabase_onchange( GuiComboBox control ) - { - //int count = 0; - - GuiComboBox cmbDatabases = ui["chooseDatabase"] as GuiComboBox; - - bindTables( cmbDatabases.SelectedText ); - bindViews( cmbDatabases.SelectedText ); - GuiTextBox dbConnection = ui["dbConnection"] as GuiTextBox; - dbConnection.Text=cmbDatabases.SelectedText; - GuiTextBox classNamespace = ui["classNamespace"] as GuiTextBox; - classNamespace.Text=cmbDatabases.SelectedText + ".Object.Library"; - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - // Members - private string _dbName; - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private string _exportPath; - private string _nameSpace; - private string _prefix; - private string _dbConnection; - private string _tableName; - private string _className=""; - private ITable _workingTable; - //private Hashtable dicRead; - //private Hashtable dicReadI; - public void SaveFile(string sProc) - { - if((bool)input["chkFiles"]){ - output.save( Path.Combine( _exportPath, sProc + ".SQL" ), false ); - //output.writeln("--" + Path.Combine( _exportPath, "CSLA.SQL" )); - output.clear(); - } - } - public delegate bool Filter(IColumn column); - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - InitializeMembers(); - if((bool)input["chkPurge"])SQLPurge(); - foreach(string sTable in _selectedTables) - { - ITable tbl = MyMeta.Databases[_dbName].Tables[sTable]; - _workingTable=tbl; - if((bool)input["chkSelect"])SQLSelect(tbl);// Load all records - if((bool)input["chkUpdate"])SQLUpdate(tbl);// Update single record based upon Primary Key - if((bool)input["chkInsert"])SQLInsert(tbl);// Insert single record - if((bool)input["chkDelete"])SQLDelete(tbl);// Delete single record based upon Primary Key - if((bool)input["chkSelectPK"])SQLSelectPK(tbl);// Load one record by Primary Key - if((bool)input["chkSelectPK"])SQLSelectUnique(tbl);// Load one record by Primary Key - if((bool)input["chkSelectPK"])SQLSelectParent(tbl);// Load one record by Primary Key - if((bool)input["chkExists"])SQLExists(tbl);// Check for existance by Primary Key - if((bool)input["chkSelectFKs"])SQLSelectFKs(tbl);// Load all records by Foreign Keys - //SQLIndexes(tbl); - } - _exportPath = input["outputPath"].ToString(); - //SaveFile(); - } - private void SQLIndexes(ITable tbl) - { - foreach(IIndex ind in tbl.Indexes) - { - if(!ind.Name.StartsWith("PK_")) - { - output.writeln(ind.Name); - foreach(IColumn col in ind.Columns) - { - output.writeln(" " + col.Name); - } - } - } - } - private IColumn IntegerIdentity(ITable tbl) - { - if(tbl.PrimaryKeys.Count == 1){ - IColumn c = tbl.PrimaryKeys[0]; - if(c.IsAutoKey && c.DataTypeName != "Guid")return c; - } - return null; - } - private void SQLPurge() - { - StartProc("purgeData"); - %> -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION<% - ArrayList toProcess = new ArrayList(); - ArrayList processed = new ArrayList(); - foreach(string sTable in _selectedTables) - { - toProcess.Add(MyMeta.Databases[_dbName].Tables[sTable]); - } - while(toProcess.Count > processed.Count) - { - int pCount = processed.Count; - foreach(ITable tbl in toProcess) - { - if(!processed.Contains(tbl)) - { - int count=0; - IColumn colid = IntegerIdentity(tbl); - string sSeed = (colid==null?"0":(colid.AutoKeySeed - colid.AutoKeyIncrement).ToString()); -// output.writeln(string.Format("111 - {0} - {1},{2}",colid.Name,colid.AutoKeySeed,colid.AutoKeyIncrement)); - string sWhere = ""; - foreach(ForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable.Name == tbl.Name) - { - if(fk.ForeignTable.Name != tbl.Name) - { - if(toProcess.Contains(fk.ForeignTable) && !processed.Contains(fk.ForeignTable)) - count++; - } - else - { - // sWhere = string.Format(" WHERE {0} <> {1}",colid.Name,colid.AutoKeySeed); - // sSeed = (colid==null?"0":(colid.AutoKeySeed + colid.AutoKeyIncrement).ToString()); -// // output.writeln(string.Format("222 - {0} - {1},{2}",colid.Name,colid.AutoKeySeed,colid.AutoKeyIncrement)); - } - } - } - if(count == 0) - { -%> - delete from [<%=tbl.Name%>]<%=sWhere%><% - // Need logic to only do this for identity columns - if(colid != null) - { -%> - dbcc checkident([<%=tbl.Name%>],reseed,<%=sSeed%>)<% - } - processed.Add(tbl); - } - } - } - if(processed.Count ==pCount)return; - } - EndProcTran("purgeData"); - } - private void InitializeMembers() - { - _dbName = input["chooseDatabase"].ToString(); - _selectedTables = input["chooseTables"] as ArrayList; - _selectedViews = input["chooseViews"] as ArrayList; - _exportPath = input["outputPath"].ToString(); - _nameSpace = input["classNamespace"].ToString(); - _prefix = input["memberPrefix"].ToString(); - _dbConnection = input["dbConnection"].ToString(); - } - //---------------------------------------------------------------------- - // Select - //---------------------------------------------------------------------- - private void SQLSelect(ITable tbl) - { - string sproc = "get" + ClassesName(tbl); - StartProc(sproc); -%> -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>]<% - EndProc(sproc); - } - private string FKCounts(ITable tbl) - { - string retval=""; - Hashtable dicAlias = new Hashtable(); - foreach(ForeignKey FK in tbl.ForeignKeys) - { - if(FK.PrimaryTable == tbl) - { - //string sAlias = GetAlias(dicAlias,FK.ForeignTable); - string sAlias = GetAlias(FK); - string sep=""; - string sAliasFK = FK.ForeignTable.Name; - string sAliasFK2 = ""; - if(FK.PrimaryTable == FK.ForeignTable) - { - sAliasFK=ChildrenName(FK); - sAliasFK2=" [" + sAliasFK + "]"; - } - retval += ",\r\n\t\t(SELECT COUNT(*) FROM [" + FK.ForeignTable.Name + "]" + sAliasFK2 + " WHERE "; - for(int i=0;i - -- Update cannot be performed on <%=tbl.Name%> since it doesn't contain - -- any columns that are not part of the Primary Key -<% - return; - } - string sproc = "update" + ClassName(tbl); - StartProc(sproc); - %> -( -<%=FormatColumns("{@} {dtype}{?null}",tbl.Columns,",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",Computed(tbl),"",",\r\n\t")%> -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [<%=tbl.Name%>] - SET -<%=FormatColumns("[{name}]={@}",Updatable(tbl),",\r\n","\t\t\t")%> - WHERE <%=FormatColumns("[{name}]={@}",NotUpdatable(tbl)," AND ","")%> - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",PrimaryKey(tbl)," AND ","")%>) - RAISERROR('<%=ClassName(tbl)%> record has been deleted by another user', 16, 1) - ELSE - RAISERROR('<%=ClassName(tbl)%> has been edited by another user', 16, 1) - END -<% - if(Computed(tbl).Count > 0){ -%> - SELECT <%=FormatColumns("{@new}=[{name}]",Computed(tbl),",\r\n","\t\t")%> - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%> -<% - } - EndProcTran(sproc); - } - //---------------------------------------------------------------------- - // Insert - //---------------------------------------------------------------------- - private void SQLInsert(ITable tbl) - { - string sproc = "add" + ClassName(tbl); - StartProc(sproc); -%> -( -<%=FormatColumns("{@} {dtype}{?null}",Insertable(tbl),",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",NotInsertable(tbl),"",",\r\n\t")%> -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [<%=tbl.Name%>] - ( -<%=FormatColumns("[{name}]",Insertable(tbl),",\r\n","\t\t")%> - ) - VALUES - ( -<%=FormatColumns("{@}",Insertable(tbl),",\r\n","\t\t")%> - ) -<%=FormatColumns("SELECT {@new}= SCOPE_IDENTITY()",AutoKey(tbl),"\r\n","\t")%><% - // Update Output Values - ArrayList cmp = Computed(tbl); - if(cmp.Count > 0){ -%> - SELECT <%=FormatColumns("{@new}=[{name}]",cmp,"\r\n","\t\t")%> - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@key}",tbl.PrimaryKeys," AND ","")%><% - } - EndProcTran(sproc); - } - //---------------------------------------------------------------------- - // Delete - //---------------------------------------------------------------------- - private void SQLDelete(ITable tbl) - { - string sproc = "delete" + ClassName(tbl); - StartProc(sproc); -%> -( -<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION<% - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(tbl != fk.ForeignTable) - { -%> - DELETE [<%=fk.ForeignTable.Name%>] - WHERE<% - string sep = " "; - for(int j=0;j - DELETE [<%=tbl.Name%>] - WHERE <%=FormatColumns("[{name}] = {@}",tbl.PrimaryKeys," AND ","")%><% - EndProcTran(sproc); - } - //---------------------------------------------------------------------- - // SelectPK - //---------------------------------------------------------------------- - private void SQLSelectPK(ITable tbl) - { - string sproc = "get" + ClassName(tbl); - StartProc(sproc); - %> -( -<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] - WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%><% - // Need to loop through foreign keys and select related records - FKSelects(tbl); - EndProc(sproc); - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if(colsi.Count != colsp.Count)return false; - for(int i=0;i( -<%=FormatColumns("{@} {dtype}",ind.Columns,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] - WHERE <%=FormatColumns("[{name}]={@}",ind.Columns," AND ","")%><% - // Need to loop through foreign keys and select related records - EndProc(sproc); - } - } - } - //---------------------------------------------------------------------- - // SelectParent - //---------------------------------------------------------------------- - private void SQLSelectParent(ITable tbl) - { - if(!FKParent(tbl))return; - IForeignKey fk = FKParentFK(tbl); - string sproc = "get" + ParentName(fk) + ClassName(tbl); - StartProc(sproc); - %>( -<%=FormatColumns("{@} {dtype}",fk.ForeignColumns,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] - WHERE<% - string sep=""; - for(int i = 0; i - <%=FormatColumn("[{name}]=",fk.PrimaryColumns[i])%><%=FormatColumn("{@}",fk.ForeignColumns[i])%><%=sep%><% - sep=" AND"; - } - EndProc(sproc); - } - //---------------------------------------------------------------------- - // Exists - //---------------------------------------------------------------------- - private void SQLExists(ITable tbl) - { - string sproc = "exists" + ClassName(tbl); - StartProc(sproc); - %> -( -<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%><% - EndProc(sproc); - } - //---------------------------------------------------------------------- - // SelectFKs - //---------------------------------------------------------------------- - private void SQLSelectFKs(ITable tbl) - { - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey FK in tbl.ForeignKeys) - { - if(tbl == FK.ForeignTable) - { - //string sAlias = GetAlias(dicAlias,FK.PrimaryTable); - string sAlias = GetAlias(FK); - SQLSelectFK(tbl,FK,sAlias); - } - } - } - private void SQLSelectFKChild(ITable tbl, IForeignKey FK,string sAlias) - { - string sproc = "get" + FKSelectName(tbl,FK,sAlias); - StartProc(sproc); -%> -( -<%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns2("[{fkname}]={@}",FK," AND ","")%> AND <%=FormatColumns2("[{!column}]<>{@}",FK," AND ","")%><% - EndProc(sproc); - } - private void SQLSelectFK(ITable tbl, IForeignKey FK,string sAlias) - { - if(FK.PrimaryTable == FK.ForeignTable){ - SQLSelectFKChild(tbl,FK,sAlias); - } - else - { - //string sproc = "get" + FKSelectName(tbl,FK,sAlias); - string sproc = "get" + FKSelectName(tbl,FK,""); - StartProc(sproc); -%> -( -<%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS<% - string sWhere = "\r\n\tWHERE\r\n\t\t" + FormatColumns2("[{fktable}].[{fkname}]={@}",FK," AND ",""); - FKSelect(FK,(FK.PrimaryTable==tbl?FK.ForeignTable:FK.PrimaryTable),FKCounts(tbl),sWhere); - EndProc(sproc); - } - } - private void StartProc(string sproc) - { - // Drop and recreate -%> -/****** Object: StoredProcedure [<%=sproc%>] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sproc%>]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [<%=sproc%>]; -GO - -CREATE PROCEDURE [dbo].[<%=sproc%>] -<% - } - private void EndProc(string sproc) - { -%> - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: <%=sproc%> Succeeded' -ELSE PRINT 'Procedure Creation: <%=sproc%> Error on Creation' -GO -<% - SaveFile(sproc); - } - private void EndProcTran(string sproc) - { -%> - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: <%=sproc%> Succeeded' -ELSE PRINT 'Procedure Creation: <%=sproc%> Error on Creation' -GO -<% - SaveFile(sproc); - } - private void FKSelects(ITable tbl) - { - foreach(ForeignKey fk in tbl.ForeignKeys) - { -// WriteLine("\r\n--ForeignKey - {0} - {1}\r\n",fk.Name,IsPrimaryKey(fk)); - if(tbl != fk.ForeignTable) - //if(!IsPrimaryKey(fk)) - This was removed so that one to one relationships would return records. - FKSelect(fk,tbl,"",BuildWhere(fk)); - } - } - private void FKSelect(IForeignKey fk, ITable tbl, string sCounts,string sWhere) - { - string sjoin=""; - string ssep=""; - Hashtable dicAlias = new Hashtable(); -%> - - SELECT -<%=FormatFKColumns("[{tbl}].[{name}]",fk,",\r\n","\t\t",ref ssep)%><% - foreach(ForeignKey pk in fk.ForeignTable.ForeignKeys) - { -// if(ManyToMany(tbl,fk,pk)) - if(tbl != pk.PrimaryTable && fk.ForeignTable == pk.ForeignTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) - { - //string sAlias=GetAlias(dicAlias,pk.PrimaryTable); - string sAlias=GetAlias(pk); - string sJoinAdd = BuildJoin(pk,sAlias); - if(sJoinAdd != null) // Only add related tables that are associated with a required field - { - sjoin += sJoinAdd; -%><%=FormatPKColumns("[{tbl}].[{name}] [{fname}]",pk,",\r\n","\t\t",ref ssep,sAlias)%><% - } - } - } -%><%=sCounts%> - FROM [<%=fk.ForeignTable.Name%>]<%=sjoin%><%=sWhere%> -<% - } -/* - private string DefineAlias(IForeignKey pk,Hashtable dicAlias) - { - if(((int)dicAlias[pk.PrimaryTable.Name])==0)return ""; - return "[" + pk.PrimaryTable.Name + "_" + dicAlias[pk.PrimaryTable.Name].ToString() + "]"; - } - private string UseAlias(string tblname,Hashtable dicAlias) - { - if(((int)dicAlias[tblname])==0)return tblname; - return tblname + "_" + dicAlias[tblname].ToString(); - - } -*/ - private string BuildJoin(IForeignKey pk,string sAlias) - { - string sjoin="\r\n\t\tJOIN [" + pk.PrimaryTable.Name + "] " + (sAlias==""?"":"[" + pk.PrimaryTable.Name + sAlias + "]") + " ON"; - for(int j=0;j 0) - { - btnOK.Enabled = true; - Status = string.Format("Will process: {0} {1}",status.Substring(2),lb.SelectedItems.Count); - } - else - { - Status = "Select one or more tables to process."; - btnOK.Enabled = false; - } - } - } - public void checkbox_onclick( GuiCheckBox control ) - { - SetupOkButton(); - } - public void chooseTable_onclick( GuiListBox control ) - { - SetupOkButton(); - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - // Members - private string _dbName; - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private string _exportPath; - private string _nameSpace; - private string _prefix="_"; - private string _dbConnection; - private string _tableName; - private string _className=""; - private ITable _workingTable; - private Hashtable dicIndexes; - private Hashtable dicDrop; - //private Hashtable dicRead; - //private Hashtable dicReadI; - //public void SaveFile(string sProc) - //{ - // output.save( Path.Combine( _exportPath, sProc + ".SQL" ), false ); - // //output.writeln("--" + Path.Combine( _exportPath, "CSLA.SQL" )); - // output.clear(); - //} - public delegate bool Filter(IColumn column); - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - //InitializeMembers(); - _exportPath = input["outputPath"].ToString(); - _dbName = input["chooseDatabase"].ToString(); - IDatabase db = MyMeta.Databases[_dbName]; - output.clear(); - _selectedTables = input["chooseTables"] as ArrayList; - dicIndexes = new Hashtable(); - dicDrop = new Hashtable(); - if((bool)input["chkProc"]) - { - ShowProcs(db); - } - else - { - foreach( string _newTable in _selectedTables ) - { - _workingTable = MyMeta.Databases[_dbName].Tables[_newTable]; - if((bool)input["chkDetail"])ShowTable1( _workingTable ); - if((bool)input["chkColumns"])ShowTable2( _workingTable ); - if((bool)input["chkFKCalc1"])ShowTable3( _workingTable ); - if((bool)input["chkUnique"])ShowTable4( _workingTable ); - if((bool)input["chkFKCalc2"])ShowTable5( _workingTable ); - if((bool)input["chkColumns2"])ShowTable6( _workingTable ); - if((bool)input["chkRelated"])ShowTable7( _workingTable ); - if((bool)input["chkOne2One"])ShowTable8( _workingTable ); - if((bool)input["chkIndexes"])ShowTable9( _workingTable ); - if((bool)input["chkInternal"])ShowInternalRelated( _workingTable ); - if((bool)input["chkAlias"])ShowAlias( _workingTable ); - if((bool)input["chkNames"])ShowNames( _workingTable ); - if((bool)input["chkNewFK"])ShowNewFK( _workingTable ); - } - } - //foreach(ITable tbl in db.Tables) - //{ - // ShowTable3(tbl); - //} - //foreach(IProcedure ip in db.Procedures) - //{ - // if(ip.Schema != "sys" && ip.Name.StartsWith("sp_")){ - // WriteLine("{0} {1}",ip.Name,ip.Schema); - // ShowProperties(ip.Properties,2); - // } - //} - //SaveFile(); - } - private void ShowProcs(IDatabase db) - { - foreach(IProcedure ip in db.Procedures) - { - //if(ip.Schema != "sys") - if(ip.Name=="purgeData" || ip.Name=="ve_GetPath") - { -%> -/****** Object: StoredProcedure [<%=ip.Name%>] Schema <%=ip.Schema%> Type <%=ip.Type.ToString()%> ******/ -<% - bool isFunction=ip.ProcedureText.Contains("CREATE FUNCTION"); - output.writeln(string.Format("IsFunction = {0}",isFunction)); - } - } - } - private void ShowNewFK(ITable tbl) - { - %>NewFK Output:<%=tbl.Name%> -<% - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(tbl.Name == fk.PrimaryTable.Name) - { -%>Foreign Table <%=fk.ForeignTable.Name%> Column <%=fk.ForeignColumns[0].Name%> -<% - } - } - } - - private string ForeignKeyCheck(IColumn col) - { - if(col.IsInForeignKey) - { - foreach(IForeignKey fk in col.ForeignKeys) - { - if(IsIn(col,fk.ForeignColumns))return " FK"; - } - return " fk"; - } - return ""; - } - private void ShowColumns(IList cols,int indent,string title) - { - output.writeln(string.Format("{0}{1}","".PadRight(indent),title)); - foreach(IColumn col in cols) - { - output.writeln(string.Format("{0}{1}{2} {3}{4}{5} {6} {7} {8}", - (col.IsNullable?" ":"*"), - "".PadRight(indent+2), - col.Name, - col.DataTypeNameComplete, - (col.IsInPrimaryKey?" PK":""), - ForeignKeyCheck(col), - (col.IsAutoKey ? "Auto - (" + col.AutoKeySeed.ToString() + ")":""), - col.Default,col.Description)); - ShowProperties(col.AllProperties,indent+2); - } - } - private void ShowProperties(IPropertyCollection prps, int indent) - { - if(prps.Count == 0)return; - output.writeln(string.Format("{0}Properties:","".PadRight(indent))); - foreach(IProperty prp in prps) - { - output.writeln(string.Format("{0}{1}={2}","".PadRight(indent+2),prp.Key,prp.Value)); - } - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if(colsi.Count != colsp.Count)return false; - for(int i=0;i 0){ - output.writeln(string.Format("Table {0}",tbl.Name)); - //ShowProperties(tbl.AllProperties,2); - //ShowColumns(tbl.Columns,2,"Columns:"); - //ShowColumns(tbl.PrimaryKeys,2,"Primary Key:"); - //output.writeln(" Foreign Keys:"); - output.writeln(string.Format(" Name: {0} Primary Table: {1}.{2} Foreign Table: {3}" - ,fk.Name,fk.PrimaryTable.Name,fk.PrimaryKeyName,fk.ForeignTable.Name)); - foreach(ArrayList al in uniqueChildren) - ShowColumns(al,4,"Unique Index"); - } - } - } -*/ -/* - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(tbl == fk.PrimaryTable && fk.ForeignTable != fk.PrimaryTable) // Ignore Parent/Child relationships - { - if(IsInPrimaryKey(fk.ForeignColumns) && IsInPrimaryKey(fk.PrimaryColumns)) // Are the Keys in the Primary Keys - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) // Look at other relationships - { - if(IsInPrimaryKey(pk.ForeignColumns) && IsInPrimaryKey(pk.PrimaryColumns)) // Are the Keys in the Primary Keys - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) - { - WriteLine("Many to Many [{0}] [{1}] [{2}]",fk.PrimaryTable.Name,fk.ForeignTable.Name,pk.PrimaryTable.Name); - } - } - } - } - } - } -*/ - foreach(IForeignKey fk in tbl.ForeignKeys) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) // Look at other relationships - { - if(ManyToMany(tbl,fk,pk)) - { - WriteLine("Many to Many [{0}] [{1}] [{2}]",fk.PrimaryTable.Name,fk.ForeignTable.Name,pk.PrimaryTable.Name); - } - } - } - } - private void ShowTable5(ITable tbl) - { - output.writeln(string.Format("Table {0}",tbl.Name)); - ShowProperties(tbl.AllProperties,2); - //ShowColumns(tbl.Columns,2,"Columns:"); - //ShowColumns(tbl.PrimaryKeys,2,"Primary Key:"); - output.writeln(" Foreign Keys:"); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - //if(_selectedTables.Contains(fk.ForeignTable.Name)){ - output.writeln(string.Format(" Name: {0} Primary Table: {1}.{2} Foreign Table: {3}" - ,fk.Name,fk.PrimaryTable.Name,fk.PrimaryKeyName,fk.ForeignTable.Name)); - //ShowColumns(fk.PrimaryColumns,6,"Primary Columns:"); - //ShowColumns(fk.ForeignColumns,6,"Foreign Columns:"); - //ShowRequiredColumns(fk.ForeignTable.Columns,6,"Required Foreign Columns:"); - //ShowFK1(fk); - //ShowFK2(fk); - CheckFK(fk); - //} - } - } - private void ShowTable6a(ITable tbl) - { - string sPrefix = tbl.Name + "\r\n"; - ArrayList fkCols = new ArrayList(); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - WriteLine("fk - {0} {1}",fk.Name,fk.ForeignTable.Name); - if(fk.ForeignTable != fk.PrimaryTable) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable) - { - foreach(IColumn col in pk.ForeignColumns){ - if(!col.IsNullable){ - WriteLine("Adding {0}", col.Name); - fkCols.Add(col); - } - } - } - } - } - bool bManyToMany = true; - if(fkCols.Count > 0){ - // Here it is - string sFkKeysTypes = FormatColumns("{!type} {!local}",fkCols,", "); - string sFkKeys = FormatColumns("{!local}",fkCols,", "); - string reqKeysTypes = ""; - string sep2=""; - bool bParentRef=false; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - if(!IsIn(column,fk.ForeignColumns)) - { - WriteLine("Adding1 {0}", column.Name); - reqKeysTypes+=sep2+FormatColumn("{!type} {!local}",column); - sep2=", "; - } else { - if(!bParentRef && FKParentFK(_workingTable) == fk){ - WriteLine("Adding2 {0}", column.Name); - bParentRef=true; - reqKeysTypes=FormatColumn("{ParentType}",column)+sep2+reqKeysTypes; - sep2=", "; - } - } - } - } - WriteLine("Add - {0}",reqKeysTypes); - WriteLine("Check - {0}",sFkKeys); - WriteLine("Contains - {0}",sFkKeysTypes); - } - } - } - private void ShowTable6b(ITable tbl) // Refresh Logic - { - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in tbl.ForeignKeys) // 20070220 - { - if(fk.PrimaryTable != fk.ForeignTable) // Parent Child - { - if(!IsPrimaryKey(fk) && tbl == fk.PrimaryTable){ - // Need to determine if the PrimaryKey for the Foreign Table includes The Primary Key from this Table - string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sItem = ClassName(fk.ForeignTable); - string sFItem = ClassName(tbl) + ClassName(fk.ForeignTable) + sAlias; - string sFItems = ClassName(tbl) + ClassesName(fk.ForeignTable) + sAlias; - //sDeclare += "\r\n\t\tprivate List<" + sFItem + "> _Refresh" + sFItems + " = new List<" + sFItem + ">();"; - //sReset += "\r\n\t\t\t_Refresh" + sFItems + " = new List<" + sFItem + ">();"; - //sRefreshRelated += ", refresh" + sFItems; - //sRefreshRelated1 += ", _Refresh" + sFItems; - //sRefreshDeclare += ", List<" + sFItem + "> refresh" + sFItems; - //sCheck += "\r\n\t\t\tif (" + MemberName(sFItems) + ".IsDirty)\r\n\t\t\t{\r\n\t\t\t\tforeach (" + sFItem + - // " tmp in " + MemberName(sFItems) + ")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(tmp.IsDirty)refresh" + sFItems + - // ".Add(tmp);\r\n\t\t\t\t}\r\n\t\t\t}"; - string sProcess = "\r\n\t\t\tforeach (" + sFItem + " tmp in _Refresh" + sFItems + ")\r\n\t\t\t{\r\n\t\t\t\t" + - sItem + "Info.Refresh(this,tmp);\r\n\t\t\t}"; - WriteLine("{0}-{1} in {2}",ForeignPrimary(fk),sFItem,sFItems); - } - } - } - } - private void ShowTable6(ITable tbl) // Refresh Logic - { - foreach(IForeignKey fk in tbl.ForeignKeys) // 20070220 - { - WriteLine("FK - {0}", fk.Name); - string sepu=""; - string sUpdate=""; - string sTimestamp=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if(column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - if(!IsIn(column,fk.ForeignColumns)) - { - string sRef = ParentRef(column); - if(sRef==null) - { - if(column.IsComputed || column.IsAutoKey) - sRef=FormatColumn("ref {?dbprefix}{member}{?dbsuff}",column); - else - { - //if(column.IsInPrimaryKey) - // sRef=FormatColumn("/*--->1*/{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070323 - //else - if(FormatColumn("{!type}",column)==ClassName(fk.ForeignTable)) - sRef=FormatColumn("{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070323 - else - sRef=FormatColumn("{?dbprefix}{!member}{?dbsuff}",column);// 20070323 - } - } - sUpdate+=sepu + sRef; - sepu=", "; - } - else - { - string sRef; - if(IsRelObj(column)) - sRef = FormatColumn("{?dbprefix}{!local}{?dbsuff}",column); - else - sRef = FormatColumn("{?dbprefix}{rmember}{?dbsuff}",RelatedColumn(column,fk)); - sUpdate+=sepu + sRef; - sepu=", "; - } - } - WriteLine(" sUpdate - {0}",sUpdate); - string sKeysTypesI=""; - string sKeysI=""; - string sValuesI=""; - string sepi=""; - ITable ftbl = fk.ForeignTable; - ITable tmpTbl = _workingTable; - _workingTable = ftbl; - foreach(IColumn column in ftbl.Columns) - { - if((!column.IsComputed)) - { - if(!column.IsAutoKey){ - sValuesI+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {parent}{?dbtype});",column); - } - if(IsParentCol(column)){ - sKeysTypesI+=sepi + _className + " parent"; - sKeysI+=sepi + "parent"; - } - else - { - sKeysTypesI+=sepi + FormatColumn("{?ref}{!type} {!local}",column); - sKeysI+=sepi + FormatColumn("{?ref}{member}",column); - } - sepi=", "; - } - } - _workingTable=tmpTbl; - WriteLine(" KeysTypesI {0}",sKeysTypesI); - } - } - private void ShowInternalRelated(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable == fk.ForeignTable) - { - WriteLine("{0} - {1}",fk.PrimaryTable.Name,fk.ForeignColumns[0].Name); - } - } - } - private void ShowAlias(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - string s = GetAlias(fk); - if(s != "") - { - WriteLine("{0} - {1}{2}{3}",tbl.Name,ClassName(fk.PrimaryTable),fk.ForeignTable.Name,s ); - } - } - } - private void ShowNames(ITable tbl) - { - WriteLine("{0} Singular {1} - Plural {2}",tbl.Name,SingularName(tbl.Name),PluralName(tbl.Name) ); - foreach(IColumn col in tbl.Columns) - { - WriteLine(" {0} Singular {1} - Plural {2}",col.Name,SingularName(col.Name),PluralName(col.Name) ); - } - } - private void ShowTable7a(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - foreach(IColumn column in fk.ForeignTable.Columns) - { - if(!IsIn(column,fk.ForeignColumns)) - { - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - if(column.ForeignKeys.Count==1) - { - try{ - IColumn colf = RelatedColumnF(column,fk); - IColumn colp = RelatedColumnP(column,fk); - WriteLine("'{0}','{1}','{2}','{3}','{4}','{5}'", - tbl.Name, - RelatedObject(fk,column), - RelatedObjectType(column), - RelatedObjectType2(fk,column), - colf, - colp); - } - catch(Exception) - { - WriteLine("Exception"); - } - //WriteLine("RelatedObject - {0}",RelatedObject(fk,column)); - //WriteLine("RelatedObject - {0}",RelatedObjectType2(fk,column)); // 20070301 - //if(!column.IsInForeignKey){ - // WriteLine(FormatColumn("\t\t\t{member} = {local};",column)); - //} - //else - //{ - // IForeignKey pk = column.ForeignKeys[0]; - // IColumn colf = RelatedColumnF(column,pk); - // WriteLine(FormatColumn("{rmember}",colf)); - //} - } - } - } - } - } - } - private void ShowTable7b(ITable tbl) - { - foreach(IColumn column in tbl.Columns) - { - if(!column.IsComputed && !column.IsAutoKey) // Exclude computed and Identity Columns - { - if(!column.IsInPrimaryKey) // Exclude Primary Key - { - if(column.ForeignKeys.Count==1) // Look for a Foreign Key on a field - { - IForeignKey fk = column.ForeignKeys[0]; - if(fk.PrimaryTable.Name != fk.ForeignTable.Name) - { - try - { - IColumn colf = RelatedColumnF(column,fk); - WriteLine("'{0}','{1}','{2}','{3}'", - tbl.Name, - RelatedObjectType2(fk,column), - colf.Name, - column.Name); - } - catch(Exception) - { - WriteLine("Exception"); - } - } - } - } - } - } - } - private void ShowTable7(ITable tbl) - { - foreach(IColumn col in tbl.Columns) - { - IForeignKey fk = RelObjFK(col); - string typ=RelObjType(col); - string prop=RelObjProp(col); - WriteLine(" {0} {1} {2} {3}",col.IsComputed,col.IsAutoKey,col.IsInPrimaryKey,col.ForeignKeys.Count); - WriteLine("{0} '{1}','{2}','{3}','{4}','{5}','{6}'" - ,(IsRelObj(col)?"* ":" ") - ,tbl.Name - ,col.Name - ,typ - ,prop - ,MemberName(prop) - ,LocalName(prop) - ); - output.writeln(FormatColumn("'{tbl}','{ctype}','{prop}','{!type}','{!prop}','{!member}','{!localcolumn}'",col)); - } - } - private void ShowTable8(ITable tbl)// Shows One to Many and One to One - { - if(OneToOne(tbl))WriteLine("{0}", tbl.Name); - } - private void ShowTable9(ITable tbl)// Shows One to Many and One to One - { - // Loop through Foreign Keys; - foreach(IForeignKey fk in tbl.ForeignKeys) - { - // Check the indexes for each part of the Foreign Key - //CheckIndex(fk.PrimaryTable,fk.PrimaryColumns); - CheckIndex(fk); - } - } - private bool DoesContain(IColumns cols,IColumn col) - { - foreach(IColumn cc in cols) - if(cc.Name==col.Name)return true; - return false; - } - private void CheckIndex(IForeignKey fk) - { - ITable tbl = fk.ForeignTable; - IColumns cols = fk.ForeignColumns; - bool InIndex = true; - // Check the primary keys first - foreach(IColumn col in cols) - { - InIndex = InIndex && col.IsInPrimaryKey; - } - if(InIndex)return; - string sIndexName = "IX_" + tbl.Name + FormatColumns("{prop}",cols,"_",""); - foreach(IIndex ind in tbl.Indexes) - { - InIndex = true; - //WriteLine("{0} - {1} Existing Index {2} - {3}",tbl.Name,fk.Name,ind.Name,FormatColumns("{prop}",ind.Columns,", ","")); - //foreach(IColumn col in cols) - //{ - // //WriteLine(" Index {0} ({1}) {2} {3}",ind.Name,FormatColumns("{prop}",ind.Columns,", ",""),(DoesContain(ind.Columns,col)?"Contains":"Doesn't Contain"),col.Name); - // InIndex = InIndex && DoesContain(ind.Columns,col); - //} - for(int i = 0; i < cols.Count; i++) - { - //WriteLine(" Index {0} ({1}) {2} {3}",ind.Name,FormatColumns("{prop}",ind.Columns,", ",""),(DoesContain(ind.Columns,col)?"Contains":"Doesn't Contain"),col.Name); - InIndex = InIndex && (ind.Columns[i].Name == cols[i].Name); - } - if(InIndex) - { - return; - if(ind.Name == sIndexName)return; - if(!dicDrop.ContainsKey(ind.Name)) - { - WriteLine("DROP INDEX {0} ON [dbo].[{1}]",ind.Name,tbl.Name); - dicDrop.Add(ind.Name,ind.Name); - } - break; - } - } -// WriteLine("Needs Index {0} - {1} - ({2})",tbl.Name,fk.Name,FormatColumns("{prop}",cols,", ","")); - if (dicIndexes.ContainsKey(sIndexName))return; - WriteLine("CREATE NONCLUSTERED INDEX {0} ON [dbo].[{1}]\r\n\t({2})",sIndexName,tbl.Name,FormatColumns("{prop}",cols,", ","")); - dicIndexes.Add(sIndexName,sIndexName); - } - private void ShowFK1(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable.Name != pk.ForeignTable.Name) - { - foreach(IColumn col in pk.ForeignColumns){ - output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); - //if(col.IsInPrimaryKey) - fkCols.Add(col); - } - } - } - //bool bManyToMany = true; - if(fkCols.Count == 0){ - //bManyToMany = false; -%> - // One To Many<% - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - fkCols.Add(col); - } - } - else - { -%> - // Many To Many<% - } - //string sFkKeysTypes = FormatColumns("{ctype} {local}",fkCols,", "); - //string sFkKeys = FormatColumns("{local}",fkCols,", "); - //string sFkCheck = FormatColumns(slName +".{prop} == {local}",fkCols," && "); - //string sReqKeysCheck= ""; - string sKeysTypes=""; - //string sKeys=""; - //string sValues=""; - //string sValues2=""; - //string sep=""; - string sep2=""; - //string sep3=""; - //string reqKeys=""; - //string reqKeysTypes=""; - string sValues=""; - string sValues2=""; - //ArrayList reqCols = new ArrayList(); - foreach(IColumn column in fk.ForeignTable.Columns) - { - //WriteLine("{0} IsRequired {1} IsComputed {2} IsAutoKey {3} IsInfk {4}",column.Name,IsRequired(column), - // column.IsComputed,column.IsAutoKey,IsIn(column,fk.ForeignColumns)); - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - if(!IsIn(column,fk.ForeignColumns)) - { - sValues+=sep2+RelatedObject(fk,column); - sValues2+=sep2+RelatedObjectType2(fk,column); // 20070301 - sKeysTypes+=sep2+FormatColumn("{ctype} {local}",column); - sep2=", "; - } - } - } - WriteLine("\r\nsKeysTypes='{0}'",sKeysTypes); - WriteLine("\r\nsValues='{0}'",sValues); - WriteLine("\r\nsValues2='{0}'",sValues2); - } - public void ShowFK2(IForeignKey fk) - { - string sInit=""; - string sep2=""; - Hashtable dicAlias=new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable.Name != pk.ForeignTable.Name && pk.Name != fk.Name) - { - string sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetNewAlias(fk,pk); - foreach(IColumn column in pk.PrimaryTable.Columns) - { - string sProp = ClassName(pk.PrimaryTable) + sAlias + "_" + PropertyName(column); - string sLocal = LocalName(ClassName(pk.PrimaryTable))+ sAlias; - string sMember = MemberName(sProp); - if(IsIn(column,pk.PrimaryColumns)) - { - sInit+=sep2 + "\t\t\t" + MemberName(RelatedColumn(column,pk)) + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - else - { - if(pk.PrimaryTable != fk.PrimaryTable) - { - if(column.DataTypeName != "timestamp"){ - if(CSLAType(column)=="SmartDate") - sInit+=sep2 + "\t\t\t" + sMember + " = new SmartDate(" + sLocal + "." + PropertyName(column) + ");"; - else - sInit+=sep2 + "\t\t\t" + sMember + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - } - } - } - } - } - WriteLine("\r\nsInit:\r\n{0}",sInit); - } - public void ShowFK3(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - if(fk.ForeignTable != fk.PrimaryTable) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable) - { - foreach(IColumn col in pk.ForeignColumns){ - fkCols.Add(col); - } - } - } - } - //bool bManyToMany = true; - if(fkCols.Count == 0){ - //bManyToMany = false; -%> - // One To Many -<% - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - fkCols.Add(col); - } - } - else - { -%> - // Many To Many -<% - } - } - private void CheckFK(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - //output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - if(fk.ForeignTable == fk.PrimaryTable)// Child Relationship - { - WriteLine(" Child - {0} - Primary {1} - Foreign {2}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name); - } - else - { - // Now determine if the Primary.Columns are Primary Keys - WriteLine(" Non-Child - {0} - Primary {1} - Foreign {2}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name); - ShowColumns(fk.PrimaryColumns,6,"PrimaryColumns"); - ShowColumns(fk.ForeignColumns,6,"ForeignColumns"); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - //output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); - string sAlias = GetNewAlias(fk,pk); - if(sAlias != "") - { - WriteLine(" PK - {0} - Primary {1} - Foreign {2}",pk.Name,pk.PrimaryTable.Name,pk.ForeignTable.Name); - WriteLine(" Alias - {0}",sAlias); - } - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable) - { - foreach(IColumn col in pk.ForeignColumns){ - //output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); - //if(col.IsInPrimaryKey) - fkCols.Add(col); - } - } - } - } - } - private void CheckFK2(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - if(fk.ForeignTable != fk.PrimaryTable) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable) - { - foreach(IColumn col in pk.ForeignColumns){ - //output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); - //if(col.IsInPrimaryKey) - fkCols.Add(col); - } - } - } - } -// bool bManyToMany = true; - if(fkCols.Count == 0){ -// bManyToMany = false; - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - fkCols.Add(col); - } - WriteLine("One to Many fkCols - {0}",FormatColumns("{prop}",fkCols,", ","")); - } - else - { - WriteLine("Many to Many fkCols - {0}",FormatColumns("{prop}",fkCols,", ","")); - } - string sFkKeysTypes = FormatColumns("{ctype} {local}",fkCols,", "); - WriteLine("sFkKeysTypes - {0}",sFkKeysTypes); - string sFkKeys = FormatColumns("{local}",fkCols,", "); - WriteLine("sFkKeys - {0}",sFkKeys); - string sFkCheck = FormatColumns(slName +".{prop} == {local}",fkCols," && "); - WriteLine("sFkCheck - {0}",sFkCheck); - string sReqKeysCheck= ""; - string sKeysTypes=""; - string sKeys=""; - //string sValues=""; - //string sValues2=""; - //string sep=""; - string sep2=""; - string sep3=""; - string reqKeys=""; - string reqKeysTypes=""; - ArrayList reqCols = new ArrayList(); - ArrayList uniqueChildren = FindUniqueChildren(fk); - bool bParentRef = false; - foreach(IColumn column in fk.ForeignTable.Columns) - { - WriteLine("Column {0} IsRequired {1} IsComputed {2} IsAutoKey {3}",column.Name, - IsRequired(column), column.IsComputed, column.IsAutoKey); - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - // 20070220 - // sKeysTypes+=sep+FormatColumn("{ctype} {local}",column); - // sKeys+=sep+FormatColumn("{local}",column); - if(!IsIn(column,fk.ForeignColumns)) - { - sKeysTypes+=sep2+FormatColumn("{ctype} {local}",column); - sKeys+=sep2+FormatColumn("{local}",column); - sReqKeysCheck+=sep3+FormatColumn(slName +".{prop} == {local}",column); - reqKeys+=sep2+FormatColumn("{local}",column); - reqKeysTypes+=sep2+FormatColumn("{ctype} {local}",column); - reqCols.Add(column); - sep2=", "; - sep3=" && "; - } else { - if(!bParentRef){ - WriteLine("Add a parent reference",sKeysTypes); - reqKeys="parent"+sep2+reqKeys; - reqKeysTypes=FormatColumn("{ParentType}",column)+sep2+reqKeysTypes; - sep2=", "; - bParentRef=true; - } - } - //sValues+=sep+RelatedObject(column); - //sValues2+=sep+RelatedObjectType(column); - //sep=", "; - } - } - string reqKeysContain = (SameList(reqCols,fkCols)?sFkKeys:reqKeys); - IList uniqueMatch = FindUnique(uniqueChildren,reqCols); - WriteLine("sKeysTypes - {0}",sKeysTypes); - WriteLine("sKeys - {0}",sKeys); - WriteLine("sReqKeysCheck - {0}",sReqKeysCheck); - WriteLine("reqKeys - {0}",reqKeys); - WriteLine("reqKeysTypes - {0}",reqKeysTypes); - - } -%><%#FILE NamingConvention.cs%><% -%><%#FILE ForeignKeyProcessing.cs%><% -%><%#FILE FilteredColumns.cs%><% -%><%#FILE FormatColumns.cs%><% -%><%#FILE WriteLine.cs%><% -} -%> -##|BODY_END diff --git a/PROMS/MyGeneration/csla_21/vlnSQL_List.csgen b/PROMS/MyGeneration/csla_21/vlnSQL_List.csgen deleted file mode 100644 index 4a5f278d..00000000 --- a/PROMS/MyGeneration/csla_21/vlnSQL_List.csgen +++ /dev/null @@ -1,424 +0,0 @@ -##|TYPE Template -##|UNIQUEID ad80d306-3f72-4b18-a21e-3e543240152a -##|TITLE List Stored Procedures - Volian -##|NAMESPACE CSLA_21 -##|SOURCE_TYPE Source -##|OUTPUT_LANGUAGE Transact-SQL -##|GUI_ENGINE .Net Script -##|GUI_LANGUAGE C# -##|GUI_BEGIN - -public class GeneratedGui : DotNetScriptGui -{ - public GeneratedGui(ZeusContext context) : base(context) {} - - //----------------------------------------- - // The User Interface Entry Point - //----------------------------------------- - public override void Setup() - { - if ( !input.Contains( "chooseTables" ) || !input.Contains( "txtPath" ) || - ( !input.Contains( "chkClass" ) && !input.Contains( "chkNaming" ) ) ) - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.ReadInputFromCache(context); - ui.Title = "CSLA Object Mapping"; - ui.Width = 600; - ui.Height = 660; - GuiLabel label1 = ui.AddLabel( "label1", "Select the output path:", "Select the output path in the field below." ); - //label1.Width = 200; - GuiTextBox outputPath = ui.AddTextBox( "outputPath", GetDefault("defaultOutputPath"), "Select the Output Path." ); - outputPath.Width = 450; - GuiFilePicker selectPath = ui.AddFilePicker( "selectPath", "Select Path", "Select the Output Path.", "outputPath", true ); - selectPath.Top = outputPath.Top; - selectPath.Width = 100; - selectPath.Left = outputPath.Left + outputPath.Width + 20; - - GuiLabel label2 = ui.AddLabel( "label2", "Namespace: ", "Provide your objects namespace." ); - label2.Width = 280; - GuiTextBox classNamespace = ui.AddTextBox( "classNamespace", "Volian.Object.Library", "Provide your objects namespace." ); - classNamespace.Width = 280; - - GuiLabel label3 = ui.AddLabel( "label3", "Member prefix: ", "Provide your member prefix." ); - label3.Width = 100; - label3.Top = label2.Top; - label3.Left = label2.Width + 20; - GuiTextBox memberPrefix = ui.AddTextBox( "memberPrefix", "_", "Provide your member prefix." ); - memberPrefix.Width = 100; - memberPrefix.Top = classNamespace.Top; - memberPrefix.Left = classNamespace.Width + 20; - - GuiLabel label3A = ui.AddLabel( "label3A", "dbConnection: ", "Provide a Connection Name." ); - label3A.Width = 150; - label3A.Top = label3.Top; - label3A.Left = label3.Left+label3.Width + 10; - GuiTextBox dbConnection = ui.AddTextBox( "dbConnection", "VEPROMS", "Provide a Connection Name." ); - dbConnection.Width = 150; - dbConnection.Top = memberPrefix.Top; - dbConnection.Left = memberPrefix.Left + memberPrefix.Width + 10; - - // Setup Database selection combobox. - GuiLabel label4 = ui.AddLabel( "label4", "Select a database:", "Select a database in the dropdown below." ); - label4.Width = 280; - GuiComboBox chooseDatabase = ui.AddComboBox( "chooseDatabase", "Select a database." ); - chooseDatabase.Width = 280; - - GuiCheckBox chkSelect = MakeGuiCheckBox( "chkSelect", "Select All", true, "Select All Records",100 ); - GuiCheckBox chkUpdate = MakeGuiCheckBox( "chkUpdate", "Update One", true, "Update One Record" ,150,chkSelect,150,0); - GuiCheckBox chkFiles = MakeGuiCheckBox( "chkFiles", "Files", true, "Create Files" ,150,chkUpdate,200,0); - GuiCheckBox chkInsert = MakeGuiCheckBox( "chkInsert", "Insert One", true, "Insert One Record" ,150,chkSelect,0,-1); - GuiCheckBox chkDelete = MakeGuiCheckBox( "chkDelete", "Delete One", true, "Delete One Record" ,150,chkInsert,150,0); - GuiCheckBox chkDrop = MakeGuiCheckBox( "chkDrop", "Drop", true, "Drop Procedures" ,150,chkDelete,200,0); - GuiCheckBox chkSelectPK = MakeGuiCheckBox( "chkSelectPK", "Select One", true, "Select One Record" ,150,chkInsert,0,-1); - GuiCheckBox chkExists = MakeGuiCheckBox("chkExists","Exists",true,"Check Record Exists",150,chkSelectPK,150,0); - GuiCheckBox chkVolian = MakeGuiCheckBox( "chkVolian", "Volian SPs", true, "Include Volian SPs" ,150,chkExists,200,0); - GuiCheckBox chkPurge = MakeGuiCheckBox("chkPurge","Purge",true,"Purge All Data",150,chkSelectPK,0,-1); - GuiCheckBox chkSelectFKs = MakeGuiCheckBox("chkSelectFKs","Select Group",true,"Select by Foreign Key",150,chkPurge,150,0); - - // Setup Tables selection multi-select listbox. - GuiLabel label7 = ui.AddLabel( "label7", "Select tables:", "Select tables from the listbox below." ); - //label7.Top = chkEqualsHashCode.Top + 20; - GuiListBox chooseTables = ui.AddListBox( "chooseTables", "Select tables." ); - chooseTables.Height = 120; - - // Setup Views selection multi-select listbox. - GuiLabel label8 = ui.AddLabel( "label8", "Select views:", "Select views from the listbox below." ); - GuiListBox chooseViews = ui.AddListBox( "chooseViews", "Select views." ); - chooseViews.Height = 120; - - // Attach the onchange event to the cmbDatabases control. - setupDatabaseDropdown( chooseDatabase ); - chooseDatabase.AttachEvent( "onchange", "chooseDatabase_onchange" ); - - ui.ShowGui = true; - } - else - { - ui.ShowGui = false; - } - } - public void setupDatabaseDropdown( GuiComboBox Databases ) - { - try - { - if( MyMeta.IsConnected ) - { - Databases.BindData( MyMeta.Databases ); - if( MyMeta.DefaultDatabase != null ) - { - Databases.SelectedValue = MyMeta.DefaultDatabase.Alias; - bindTables( Databases.SelectedValue ); - bindViews( Databases.SelectedValue ); - } - } - } - catch - { - } - } - - public void bindTables( string sDatabase ) - { - //int count = 0; - - GuiListBox lstTables = ui["chooseTables"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstTables.BindData(db.Tables); - } - catch - { - } - } - - public void bindViews( string sDatabase ) - { - //int count = 0; - - GuiListBox lstViews = ui["chooseViews"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstViews.BindData( db.Views ); - } - catch - { - } - } - - public void chooseDatabase_onchange( GuiComboBox control ) - { - //int count = 0; - - GuiComboBox cmbDatabases = ui["chooseDatabase"] as GuiComboBox; - - bindTables( cmbDatabases.SelectedText ); - bindViews( cmbDatabases.SelectedText ); - GuiTextBox dbConnection = ui["dbConnection"] as GuiTextBox; - dbConnection.Text=cmbDatabases.SelectedText; - GuiTextBox classNamespace = ui["classNamespace"] as GuiTextBox; - classNamespace.Text=cmbDatabases.SelectedText + ".Object.Library"; - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - // Members - private string _dbName; - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private string _exportPath; - private string _nameSpace; - private string _prefix; - private string _dbConnection; - private string _tableName; - private string _className=""; - private ITable _workingTable; - //private Hashtable dicRead; - //private Hashtable dicReadI; - public void SaveFile(string sFile) - { - if((bool)input["chkFiles"]){ - output.save( Path.Combine( _exportPath, sFile + ".SQL" ), false ); - //output.writeln("--" + Path.Combine( _exportPath, "CSLA.SQL" )); - output.clear(); - } - } - //private bool IsPrimaryKey(IForeignKey fk) - //{ - // bool retval=true; - // foreach(IColumn c in fk.ForeignColumns)retval &= c.IsInPrimaryKey; - // return retval; - //} - public delegate bool Filter(IColumn column); - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - //InitializeMembers(); - _exportPath = input["outputPath"].ToString(); - _dbName = input["chooseDatabase"].ToString(); - IDatabase db = MyMeta.Databases[_dbName]; - SavePrefix(); - SaveProcsSorted(db); - //SaveTables(db); - } - private void SavePrefix() - { -%>IF DB_NAME() IN('MASTER','MODEL','MSDN','TEMPDB') -BEGIN - DECLARE @ErrorMsg VARCHAR(255) - SET @ErrorMsg = 'Don''t add these procedures and functions to ' + db_name() - PRINT '==========================================================================' - PRINT '' - PRINT @ErrorMsg - PRINT '' - PRINT 'You probably want to be in the VEPROMS database' - PRINT '' - PRINT '==========================================================================' - RAISERROR (@ErrorMsg, 20, -1) WITH LOG - RETURN -END -PRINT 'Adding procedures and functions to ' + db_name() -GO -<% -} - private bool IncludeVolian(string sName) - { - return (!sName.StartsWith("ve") || (bool)input["chkVolian"]); - } - private void SaveProcsTesting(IDatabase db) - { - foreach(IProcedure ip in db.Procedures) - { - if(ip.Name == "vefn_SplitROSearch" || ip.Name == "ve_GetPath" || ip.Name == "getItemAndChildren") - { - output.writeln(string.Format("Name = '{0}' ",ip.Name)); - output.writeln(string.Format("Schema = '{0}' ",ip.Schema)); - foreach(IParameter param in ip.Parameters) - { - output.writeln(string.Format(" Parameter - {0} = {1}",param.Name,param.ParameterType)); - } - } - } - } - private void SaveProcs(IDatabase db) - { - foreach(IProcedure ip in db.Procedures) - { - if(ip.Schema != "sys"){ - bool isProc = IsProcedure(ip); - string sType = isProc ? "PROCEDURE" : "FUNCTION"; - string sIsType = isProc ? "Procedure" : (IsTableFunction(ip) ? "TableFunction" : "ScalarFunction"); - string sName = ip.Name; - if((bool)input["chkDrop"]){ - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - output.writeln("DROP " + sType + " [" + sName + "]"); - } else { - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - { -%> -/****** Object: StoredProcedure [<%=sName%>] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AND OBJECTPROPERTY(id,N'Is<%=sIsType%>') = 1) - DROP <%=sType%> [<%=sName%>]; -GO - -<% - output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n")); -%> -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT '<%=sIsType%> Creation: <%=sName%> Succeeded' -ELSE PRINT '<%=sIsType%> Creation: <%=sName%> Error on Creation' -GO -<% - SaveFile(ip.Name); - } - } - } - } - } - private void SaveProcsSorted(IDatabase db) - { - SortedList sortedList = new SortedList(); - foreach(IProcedure ip in db.Procedures) - { - sortedList.Add(ip.Name,ip); - } - foreach(IProcedure ip in sortedList.Values) - { - if(ip.Schema != "sys"){ - bool isProc = IsProcedure(ip); - string sType = isProc ? "PROCEDURE" : "FUNCTION"; - string sIsType = isProc ? "Procedure" : (IsTableFunction(ip) ? "TableFunction" : "ScalarFunction"); - string sName = ip.Name; - if((bool)input["chkDrop"]){ - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - output.writeln("DROP " + sType + " [" + sName + "]"); - } else { - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - { -%> -/****** Object: StoredProcedure [<%=sName%>] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AND OBJECTPROPERTY(id,N'Is<%=sIsType%>') = 1) - DROP <%=sType%> [<%=sName%>]; -GO - -<% - output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n")); -%> -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT '<%=sIsType%> Creation: <%=sName%> Succeeded' -ELSE PRINT '<%=sIsType%> Creation: <%=sName%> Error on Creation' -GO -<% - SaveFile(ip.Name); - } - } - } - } - } - private bool IsProcedure(IProcedure ip) - { - return ip.ProcedureText.ToUpper().Contains("CREATE PROCEDURE"); - } - private bool IsTableFunction(IProcedure ip) - { - return ip.Parameters[0].Name == "@TABLE_RETURN_VALUE"; - } - private void ShowColumns(IColumns cols,int indent,string title) - { - output.writeln(string.Format("{0}{1}","".PadRight(indent),title)); - foreach(IColumn col in cols) - { - output.writeln(string.Format("{0}{1} {2}{3}{4}","".PadRight(indent+2),col.Name,col.DataTypeNameComplete, - (col.IsInPrimaryKey?" PK":""),(col.IsInForeignKey?" FK":""))); - ShowProperties(col.AllProperties,indent+2); - } - } - private void ShowProperties(IPropertyCollection prps, int indent) - { - if(prps.Count == 0)return; - output.writeln(string.Format("{0}Properties:","".PadRight(indent))); - foreach(IProperty prp in prps) - { - output.writeln(string.Format("{0}{1}={2}","".PadRight(indent+2),prp.Key,prp.Value)); - } - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if(colsi.Count != colsp.Count)return false; - for(int i=0;i<%#FILE NamingConvention.cs%><% -%><%#FILE ForeignKeyProcessing.cs%><% -%><%#FILE FilteredColumns.cs%><% -%><%#FILE FormatColumns.cs%><% -%><%#FILE WriteLine.cs%><% -} -%> -##|BODY_END diff --git a/PROMS/PDFCompare/FindDifferences/FindDifferences.csproj b/PROMS/PDFCompare/FindDifferences/FindDifferences.csproj deleted file mode 100644 index 9686ccbd..00000000 --- a/PROMS/PDFCompare/FindDifferences/FindDifferences.csproj +++ /dev/null @@ -1,79 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {82A5D621-315D-4059-8F01-245349D52438} - WinExe - Properties - FindDifferences - FindDifferences - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmFindDifferences.cs - - - - - Designer - frmFindDifferences.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/Program.cs b/PROMS/PDFCompare/FindDifferences/Program.cs deleted file mode 100644 index 92ca15f1..00000000 --- a/PROMS/PDFCompare/FindDifferences/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace FindDifferences -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmFindDifferences()); - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/Properties/AssemblyInfo.cs b/PROMS/PDFCompare/FindDifferences/Properties/AssemblyInfo.cs deleted file mode 100644 index 5398e5db..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FindDifferences")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FindDifferences")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c5973e59-a072-4822-b4ea-b2b47af77089")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/PDFCompare/FindDifferences/Properties/Resources.Designer.cs b/PROMS/PDFCompare/FindDifferences/Properties/Resources.Designer.cs deleted file mode 100644 index 67654d5e..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindDifferences.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FindDifferences.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/PDFCompare/FindDifferences/Properties/Resources.resx b/PROMS/PDFCompare/FindDifferences/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/PDFCompare/FindDifferences/Properties/Settings.Designer.cs b/PROMS/PDFCompare/FindDifferences/Properties/Settings.Designer.cs deleted file mode 100644 index 0c61d7b9..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Settings.Designer.cs +++ /dev/null @@ -1,110 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindDifferences.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("700, 550")] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Normal")] - public global::System.Windows.Forms.FormWindowState WindowState { - get { - return ((global::System.Windows.Forms.FormWindowState)(this["WindowState"])); - } - set { - this["WindowState"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string CompareFolder { - get { - return ((string)(this["CompareFolder"])); - } - set { - this["CompareFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string PdfFolder { - get { - return ((string)(this["PdfFolder"])); - } - set { - this["PdfFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("325")] - public int SplitterDistance { - get { - return ((int)(this["SplitterDistance"])); - } - set { - this["SplitterDistance"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool ShowFirst { - get { - return ((bool)(this["ShowFirst"])); - } - set { - this["ShowFirst"] = value; - } - } - } -} diff --git a/PROMS/PDFCompare/FindDifferences/Properties/Settings.settings b/PROMS/PDFCompare/FindDifferences/Properties/Settings.settings deleted file mode 100644 index ca359ae5..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - 700, 550 - - - 0, 0 - - - Normal - - - - - - - - - 325 - - - True - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/app.config b/PROMS/PDFCompare/FindDifferences/app.config deleted file mode 100644 index 6e81ee86..00000000 --- a/PROMS/PDFCompare/FindDifferences/app.config +++ /dev/null @@ -1,33 +0,0 @@ - - - - -
    - - - - - - 700, 550 - - - 0, 0 - - - Normal - - - - - - - - - 325 - - - True - - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.Designer.cs b/PROMS/PDFCompare/FindDifferences/frmFindDifferences.Designer.cs deleted file mode 100644 index b74844c0..00000000 --- a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.Designer.cs +++ /dev/null @@ -1,300 +0,0 @@ -namespace FindDifferences -{ - partial class frmFindDifferences - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.tmr = new System.Windows.Forms.Timer(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.tbPdf = new System.Windows.Forms.TextBox(); - this.tbCompare = new System.Windows.Forms.TextBox(); - this.btnPdf = new System.Windows.Forms.Button(); - this.btnCompare = new System.Windows.Forms.Button(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.btnCopy = new System.Windows.Forms.Button(); - this.cbShowFirst = new System.Windows.Forms.CheckBox(); - this.btnClosePdf = new System.Windows.Forms.Button(); - this.btnRefresh = new System.Windows.Forms.Button(); - this.lblDifferences = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.cmbWith = new System.Windows.Forms.ComboBox(); - this.cmbCompare = new System.Windows.Forms.ComboBox(); - this.lbDifferences = new System.Windows.Forms.ListBox(); - this.wb = new System.Windows.Forms.WebBrowser(); - this.panel1.SuspendLayout(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.SuspendLayout(); - // - // tmr - // - this.tmr.Tick += new System.EventHandler(this.tmr_Tick); - // - // panel1 - // - this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.panel1.Controls.Add(this.tbPdf); - this.panel1.Controls.Add(this.tbCompare); - this.panel1.Controls.Add(this.btnPdf); - this.panel1.Controls.Add(this.btnCompare); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(824, 72); - this.panel1.TabIndex = 1; - // - // tbPdf - // - this.tbPdf.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbPdf.Location = new System.Drawing.Point(123, 41); - this.tbPdf.Name = "tbPdf"; - this.tbPdf.Size = new System.Drawing.Size(685, 20); - this.tbPdf.TabIndex = 9; - // - // tbCompare - // - this.tbCompare.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbCompare.Location = new System.Drawing.Point(123, 12); - this.tbCompare.Name = "tbCompare"; - this.tbCompare.Size = new System.Drawing.Size(685, 20); - this.tbCompare.TabIndex = 8; - // - // btnPdf - // - this.btnPdf.Location = new System.Drawing.Point(11, 39); - this.btnPdf.Name = "btnPdf"; - this.btnPdf.Size = new System.Drawing.Size(106, 23); - this.btnPdf.TabIndex = 7; - this.btnPdf.Text = "Pdf Folder"; - this.btnPdf.UseVisualStyleBackColor = true; - this.btnPdf.Click += new System.EventHandler(this.btnPdf_Click); - // - // btnCompare - // - this.btnCompare.Location = new System.Drawing.Point(11, 10); - this.btnCompare.Name = "btnCompare"; - this.btnCompare.Size = new System.Drawing.Size(106, 23); - this.btnCompare.TabIndex = 6; - this.btnCompare.Text = "Compare Folder"; - this.btnCompare.UseVisualStyleBackColor = true; - this.btnCompare.Click += new System.EventHandler(this.btnCompare_Click); - // - // splitContainer1 - // - this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 72); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.btnCopy); - this.splitContainer1.Panel1.Controls.Add(this.cbShowFirst); - this.splitContainer1.Panel1.Controls.Add(this.btnClosePdf); - this.splitContainer1.Panel1.Controls.Add(this.btnRefresh); - this.splitContainer1.Panel1.Controls.Add(this.lblDifferences); - this.splitContainer1.Panel1.Controls.Add(this.label2); - this.splitContainer1.Panel1.Controls.Add(this.label1); - this.splitContainer1.Panel1.Controls.Add(this.cmbWith); - this.splitContainer1.Panel1.Controls.Add(this.cmbCompare); - this.splitContainer1.Panel1.Controls.Add(this.lbDifferences); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.wb); - this.splitContainer1.Size = new System.Drawing.Size(824, 502); - this.splitContainer1.SplitterDistance = 324; - this.splitContainer1.TabIndex = 4; - // - // btnCopy - // - this.btnCopy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.btnCopy.Location = new System.Drawing.Point(204, 60); - this.btnCopy.Name = "btnCopy"; - this.btnCopy.Size = new System.Drawing.Size(113, 21); - this.btnCopy.TabIndex = 27; - this.btnCopy.Text = "Copy List"; - this.btnCopy.UseVisualStyleBackColor = true; - this.btnCopy.Click += new System.EventHandler(this.btnCopy_Click); - // - // cbShowFirst - // - this.cbShowFirst.AutoSize = true; - this.cbShowFirst.Checked = true; - this.cbShowFirst.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbShowFirst.Location = new System.Drawing.Point(10, 63); - this.cbShowFirst.Name = "cbShowFirst"; - this.cbShowFirst.Size = new System.Drawing.Size(173, 17); - this.cbShowFirst.TabIndex = 26; - this.cbShowFirst.Text = "Only show first for each section"; - this.cbShowFirst.UseVisualStyleBackColor = true; - // - // btnClosePdf - // - this.btnClosePdf.Location = new System.Drawing.Point(3, 32); - this.btnClosePdf.Name = "btnClosePdf"; - this.btnClosePdf.Size = new System.Drawing.Size(88, 21); - this.btnClosePdf.TabIndex = 25; - this.btnClosePdf.Text = "Close Pdf"; - this.btnClosePdf.UseVisualStyleBackColor = true; - this.btnClosePdf.Click += new System.EventHandler(this.btnClosePdf_Click); - // - // btnRefresh - // - this.btnRefresh.Location = new System.Drawing.Point(3, 5); - this.btnRefresh.Name = "btnRefresh"; - this.btnRefresh.Size = new System.Drawing.Size(88, 21); - this.btnRefresh.TabIndex = 24; - this.btnRefresh.Text = "Refresh"; - this.btnRefresh.UseVisualStyleBackColor = true; - this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); - // - // lblDifferences - // - this.lblDifferences.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblDifferences.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.lblDifferences.Location = new System.Drawing.Point(0, 94); - this.lblDifferences.Name = "lblDifferences"; - this.lblDifferences.Size = new System.Drawing.Size(322, 25); - this.lblDifferences.TabIndex = 23; - this.lblDifferences.Text = "Differences"; - this.lblDifferences.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label2 - // - this.label2.Location = new System.Drawing.Point(105, 36); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(49, 13); - this.label2.TabIndex = 22; - this.label2.Text = "With"; - this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // label1 - // - this.label1.Location = new System.Drawing.Point(105, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(49, 16); - this.label1.TabIndex = 21; - this.label1.Text = "Compare"; - // - // cmbWith - // - this.cmbWith.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbWith.Enabled = false; - this.cmbWith.FormattingEnabled = true; - this.cmbWith.Location = new System.Drawing.Point(160, 33); - this.cmbWith.Name = "cmbWith"; - this.cmbWith.Size = new System.Drawing.Size(157, 21); - this.cmbWith.TabIndex = 20; - // - // cmbCompare - // - this.cmbCompare.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbCompare.Enabled = false; - this.cmbCompare.FormattingEnabled = true; - this.cmbCompare.Location = new System.Drawing.Point(160, 6); - this.cmbCompare.Name = "cmbCompare"; - this.cmbCompare.Size = new System.Drawing.Size(157, 21); - this.cmbCompare.TabIndex = 19; - // - // lbDifferences - // - this.lbDifferences.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lbDifferences.Enabled = false; - this.lbDifferences.FormattingEnabled = true; - this.lbDifferences.Location = new System.Drawing.Point(0, 119); - this.lbDifferences.Name = "lbDifferences"; - this.lbDifferences.Size = new System.Drawing.Size(322, 381); - this.lbDifferences.TabIndex = 18; - // - // wb - // - this.wb.Dock = System.Windows.Forms.DockStyle.Fill; - this.wb.Location = new System.Drawing.Point(0, 0); - this.wb.MinimumSize = new System.Drawing.Size(20, 20); - this.wb.Name = "wb"; - this.wb.Size = new System.Drawing.Size(492, 498); - this.wb.TabIndex = 4; - // - // frmFindDifferences - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(824, 574); - this.Controls.Add(this.splitContainer1); - this.Controls.Add(this.panel1); - this.Name = "frmFindDifferences"; - this.Text = "Find Differences"; - this.Load += new System.EventHandler(this.frmFindDifferences_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmFindDifferences_FormClosing); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel1.PerformLayout(); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.Timer tmr; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.TextBox tbPdf; - private System.Windows.Forms.TextBox tbCompare; - private System.Windows.Forms.Button btnPdf; - private System.Windows.Forms.Button btnCompare; - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.Label lblDifferences; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ComboBox cmbWith; - private System.Windows.Forms.ComboBox cmbCompare; - private System.Windows.Forms.ListBox lbDifferences; - private System.Windows.Forms.WebBrowser wb; - private System.Windows.Forms.Button btnClosePdf; - private System.Windows.Forms.Button btnRefresh; - private System.Windows.Forms.CheckBox cbShowFirst; - private System.Windows.Forms.Button btnCopy; - - } -} - diff --git a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs b/PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs deleted file mode 100644 index 1ffae17e..00000000 --- a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs +++ /dev/null @@ -1,259 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Text.RegularExpressions; - -namespace FindDifferences -{ - public partial class frmFindDifferences : Form - { - public frmFindDifferences() - { - InitializeComponent(); - } - private void frmFindDifferences_Load(object sender, EventArgs e) - { - LoadSettings(); - SetupComboBoxes(); - } - private void LoadSettings() - { - Size = Properties.Settings.Default.Size; - Resize += new EventHandler(frmFindDifferences_Resize); - Location = Properties.Settings.Default.Location; - Move += new EventHandler(frmFindDifferences_Move); - tbCompare.Text = Properties.Settings.Default.CompareFolder; - tbCompare.TextChanged += new EventHandler(tbCompare_TextChanged); - tbPdf.Text = Properties.Settings.Default.PdfFolder; - tbPdf.TextChanged += new EventHandler(tbPdf_TextChanged); - splitContainer1.SplitterDistance = Properties.Settings.Default.SplitterDistance; - splitContainer1.SplitterMoved +=new SplitterEventHandler(splitContainer1_SplitterMoved); - WindowState = Properties.Settings.Default.WindowState; - cbShowFirst.Checked = Properties.Settings.Default.ShowFirst; - cbShowFirst.CheckedChanged += new EventHandler(cbShowFirst_CheckedChanged); - } - void cbShowFirst_CheckedChanged(object sender, EventArgs e) - { - Properties.Settings.Default.ShowFirst = cbShowFirst.Checked; - SetupDifferences(); - } - void tbPdf_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.PdfFolder = tbPdf.Text; - } - void tbCompare_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.CompareFolder = tbCompare.Text; - SetupComboBoxes(); - } - void frmFindDifferences_Move(object sender, EventArgs e) - { - Properties.Settings.Default.WindowState = WindowState; - if (WindowState == FormWindowState.Normal) - Properties.Settings.Default.Location = Location; - } - void frmFindDifferences_Resize(object sender, EventArgs e) - { - Properties.Settings.Default.WindowState = WindowState; - if (WindowState == FormWindowState.Normal) - Properties.Settings.Default.Size = Size; - } - private void SetupComboBoxes() - { - if (tbCompare.Text != string.Empty) - LoadComboBoxes(); - else - DisableComboBoxes(); - } - private void LoadComboBoxes() - { - DirectoryInfo di = new DirectoryInfo(tbCompare.Text); - if (di.Exists) - { - List myFiles1 = new List(); - List myFiles2 = new List(); - foreach (FileInfo myFile in di.GetFiles("*.txt")) - { - myFiles1.Add(myFile.Name); - myFiles2.Add(myFile.Name); - } - cmbCompare.SelectedIndexChanged -= new EventHandler(cmbCompare_SelectedIndexChanged); - cmbWith.SelectedIndexChanged -= new EventHandler(cmbCompare_SelectedIndexChanged); - cmbCompare.DataSource = myFiles1; - cmbWith.DataSource = myFiles2; - cmbCompare.Enabled = true; - cmbWith.Enabled = true; - cmbCompare.SelectedIndex = -1; - cmbWith.SelectedIndex = -1; - cmbCompare.SelectedIndexChanged += new EventHandler(cmbCompare_SelectedIndexChanged); - cmbWith.SelectedIndexChanged += new EventHandler(cmbCompare_SelectedIndexChanged); - } - else - DisableComboBoxes(); - } - void cmbCompare_SelectedIndexChanged(object sender, EventArgs e) - { - SetupDifferences(); - } - private void DisableComboBoxes() - { - lbDifferences.Enabled = false; - cmbCompare.Enabled = false; - cmbWith.Enabled = false; - } - private void SetupDifferences() - { - if (cmbCompare.Text != string.Empty && cmbWith.Text != string.Empty) - { - List compareList = BuildList(cmbCompare.Text); - List withList = BuildList(cmbWith.Text); - RemoveMatches(withList, compareList); - if (cbShowFirst.Checked) RemoveMultiples(withList); - lbDifferences.Click -= new EventHandler(lbDifferences_Click); - //lbDifferences.SelectedIndexChanged -= new EventHandler(lbDifferences_SelectedIndexChanged); - lblDifferences.Text = withList.Count.ToString() + " Differences"; - lbDifferences.DataSource = withList; - lbDifferences.Enabled = true; - //lbDifferences.SelectedIndexChanged += new EventHandler(lbDifferences_SelectedIndexChanged); - lbDifferences.Click += new EventHandler(lbDifferences_Click); - } - else - { - lbDifferences.DataSource = null; - lbDifferences.Enabled = false; - } - } - - void lbDifferences_Click(object sender, EventArgs e) - { - wb.Navigate("about:blank"); - Clipboard.Clear(); - if (lbDifferences.SelectedValue != null) - { - Clipboard.SetText(lbDifferences.SelectedValue.ToString()); - tmr.Enabled = true; - } - } - Regex myRegExpMult = new Regex("'([^']*?)','([^']*)?',([0-9]*,'[^']*?)'"); - private void RemoveMultiples(List withList) - { - List multList = new List(); - string last = string.Empty; - foreach (string str in withList) - { - string found = myRegExpMult.Replace(str, "$1.$2"); - if (found == last) multList.Add(str); - last = found; - } - foreach (string str in multList) - withList.Remove(str); - } - void lbDifferences_SelectedIndexChanged(object sender, EventArgs e) - { - wb.Navigate("about:blank"); - Clipboard.Clear(); - if (lbDifferences.SelectedValue != null) - { - Clipboard.SetText(lbDifferences.SelectedValue.ToString()); - tmr.Enabled = true; - } - } - - private void RemoveMatches(List withList, List compareList) - { - foreach (string str in compareList) - if (withList.Contains(str)) - withList.Remove(str); - } - - private List BuildList(string fileName) - { - List myList = new List(); - FileInfo myFile = new FileInfo(tbCompare.Text + "\\" + fileName); - using (StreamReader sr = myFile.OpenText()) - { - while (!sr.EndOfStream) - { - string str = sr.ReadLine(); - if(str != string.Empty) - myList.Add(str); - } - sr.Close(); - } - return myList; - } - private string CompareFolder - { - get - { - if (tbCompare.Text == string.Empty) - return Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); - return tbCompare.Text; - } - } - private string PdfFolder - { - get - { - if (tbPdf.Text == string.Empty) - return Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); - return tbPdf.Text; - } - } - private void btnCompare_Click(object sender, EventArgs e) - { - fbd.SelectedPath = CompareFolder; - if (fbd.ShowDialog() == DialogResult.OK) - tbCompare.Text = fbd.SelectedPath; - } - private void btnPdf_Click(object sender, EventArgs e) - { - fbd.SelectedPath = PdfFolder; - if (fbd.ShowDialog() == DialogResult.OK) - tbPdf.Text = fbd.SelectedPath; - } - private void frmFindDifferences_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Save(); - } - Regex myRegExp = new Regex("'([^']*?)','[^']*?',([0-9]*,'[^']*?)'"); - private void tmr_Tick(object sender, EventArgs e) - { - tmr.Enabled = false; - string url = myRegExp.Replace(lbDifferences.SelectedValue.ToString(), tbPdf.Text + @"\$1.pdf#search=""$2"""); - wb.Navigate(url); - } - private void btnClosePdf_Click(object sender, EventArgs e) - { - wb.Navigate("about:blank"); - } - private void btnRefresh_Click(object sender, EventArgs e) - { - int indCompare = cmbCompare.SelectedIndex; - int indWith = cmbWith.SelectedIndex; - LoadComboBoxes(); - cmbCompare.SelectedIndex = indCompare; - cmbWith.SelectedIndex = indWith; - } - private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) - { - Properties.Settings.Default.SplitterDistance = splitContainer1.SplitterDistance; - } - - private void btnCopy_Click(object sender, EventArgs e) - { - Clipboard.Clear(); - StringBuilder sb = new StringBuilder(); - foreach(string str in lbDifferences.DataSource as List) - { - sb.Append(str + "\r\n"); - } - Clipboard.SetText(sb.ToString()); - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.resx b/PROMS/PDFCompare/FindDifferences/frmFindDifferences.resx deleted file mode 100644 index 0e6a65ec..00000000 --- a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 87, 17 - - \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/MergePDFs.csproj b/PROMS/PDFCompare/MergePDFs/MergePDFs.csproj deleted file mode 100644 index 38071f69..00000000 --- a/PROMS/PDFCompare/MergePDFs/MergePDFs.csproj +++ /dev/null @@ -1,82 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {EDE182A0-5D65-48E4-909D-04902B462AF8} - WinExe - Properties - MergePDFs - MergePDFs - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\..\..\..\..\Development\Proms3rdPartyLibraries\itextsharp.dll - - - - - - - - - - - Form - - - frmMergePDFs.cs - - - - - Designer - frmMergePDFs.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/Program.cs b/PROMS/PDFCompare/MergePDFs/Program.cs deleted file mode 100644 index ea4f915e..00000000 --- a/PROMS/PDFCompare/MergePDFs/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace MergePDFs -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmMergePDFs()); - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/Properties/AssemblyInfo.cs b/PROMS/PDFCompare/MergePDFs/Properties/AssemblyInfo.cs deleted file mode 100644 index 9d8d8d52..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MergePDFs")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MergePDFs")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ce6e320c-6ea1-4c2a-acb8-51868a35a484")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/PDFCompare/MergePDFs/Properties/Resources.Designer.cs b/PROMS/PDFCompare/MergePDFs/Properties/Resources.Designer.cs deleted file mode 100644 index bfda6e03..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MergePDFs.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MergePDFs.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/PDFCompare/MergePDFs/Properties/Resources.resx b/PROMS/PDFCompare/MergePDFs/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/PDFCompare/MergePDFs/Properties/Settings.Designer.cs b/PROMS/PDFCompare/MergePDFs/Properties/Settings.Designer.cs deleted file mode 100644 index 044e3fe0..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MergePDFs.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/PDFCompare/MergePDFs/Properties/Settings.settings b/PROMS/PDFCompare/MergePDFs/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.Designer.cs b/PROMS/PDFCompare/MergePDFs/frmMergePDFs.Designer.cs deleted file mode 100644 index d95e8208..00000000 --- a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.Designer.cs +++ /dev/null @@ -1,123 +0,0 @@ -namespace MergePDFs -{ - partial class frmMergePDFs - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tbFolder = new System.Windows.Forms.TextBox(); - this.btnFolder = new System.Windows.Forms.Button(); - this.btnMerge = new System.Windows.Forms.Button(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.sfd = new System.Windows.Forms.SaveFileDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // tbFolder - // - this.tbFolder.Location = new System.Drawing.Point(140, 15); - this.tbFolder.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbFolder.Name = "tbFolder"; - this.tbFolder.Size = new System.Drawing.Size(729, 22); - this.tbFolder.TabIndex = 0; - this.tbFolder.Text = "c:\\TEMP"; - // - // btnFolder - // - this.btnFolder.Location = new System.Drawing.Point(16, 12); - this.btnFolder.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnFolder.Name = "btnFolder"; - this.btnFolder.Size = new System.Drawing.Size(100, 28); - this.btnFolder.TabIndex = 1; - this.btnFolder.Text = "Folder"; - this.btnFolder.UseVisualStyleBackColor = true; - this.btnFolder.Click += new System.EventHandler(this.btnFolder_Click); - // - // btnMerge - // - this.btnMerge.Location = new System.Drawing.Point(377, 50); - this.btnMerge.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnMerge.Name = "btnMerge"; - this.btnMerge.Size = new System.Drawing.Size(116, 28); - this.btnMerge.TabIndex = 2; - this.btnMerge.Text = "Merge"; - this.btnMerge.UseVisualStyleBackColor = true; - this.btnMerge.Click += new System.EventHandler(this.btnMerge_Click); - // - // sfd - // - this.sfd.FileName = "merge.pdf"; - this.sfd.Filter = "pdf Files|*.pdf"; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 89); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(887, 25); - this.statusStrip1.TabIndex = 3; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(50, 20); - this.tsslStatus.Text = "Ready"; - // - // frmMergePDFs - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(887, 114); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.btnMerge); - this.Controls.Add(this.btnFolder); - this.Controls.Add(this.tbFolder); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "frmMergePDFs"; - this.Text = "MergePDFs"; - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox tbFolder; - private System.Windows.Forms.Button btnFolder; - private System.Windows.Forms.Button btnMerge; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.SaveFileDialog sfd; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - } -} - diff --git a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.cs b/PROMS/PDFCompare/MergePDFs/frmMergePDFs.cs deleted file mode 100644 index 296c0b7c..00000000 --- a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using iTextSharp.text.pdf; -using iTextSharp.text; - -namespace MergePDFs -{ - public partial class frmMergePDFs : Form - { - public string Status - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - public frmMergePDFs() - { - InitializeComponent(); - } - - private void btnFolder_Click(object sender, EventArgs e) - { - fbd.SelectedPath = tbFolder.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tbFolder.Text = fbd.SelectedPath; - } - private void btnMerge_Click(object sender, EventArgs e) - { - if (sfd.ShowDialog() == DialogResult.OK) - { - Document doc = new Document(); - PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(sfd.FileName, FileMode.Create)); - //writer.PageEvent = new MyPageHelper("Merge2", new Color(System.Drawing.Color.CornflowerBlue)); - doc.Open(); - PdfContentByte canvas = writer.DirectContent; - DirectoryInfo pdfFolder = new DirectoryInfo(tbFolder.Text); - FileInfo[] myFiles = pdfFolder.GetFiles("*.pdf"); - foreach (FileInfo myFile in myFiles) - { - PdfReader reader = new PdfReader(myFile.FullName); - int numPages = reader.NumberOfPages; - int currentPageNumber = 0; - PdfOutline outline = null; - do - { - currentPageNumber += 1; - Status = string.Format("Processing {0} page {1}", myFile.Name, currentPageNumber); - doc.SetPageSize(PageSize.LETTER); - doc.NewPage(); - PdfImportedPage page = writer.GetImportedPage(reader, currentPageNumber); - PdfDestination dest = new PdfDestination(PdfDestination.FIT); - if (currentPageNumber == 1) - outline = new PdfOutline(canvas.RootOutline, dest, myFile.Name, false); - else - new PdfOutline(outline, dest, "Page " + currentPageNumber.ToString(), false); - canvas.AddTemplate(page, 0, 0); - //DrawOutlines(canvas); - } while (currentPageNumber < numPages); - } - doc.Close(); - if (MessageBox.Show("Do you want to open the merged file?", "Merging Complete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - System.Diagnostics.Process.Start(sfd.FileName); - } - Status = "Processing Complete"; - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.resx b/PROMS/PDFCompare/MergePDFs/frmMergePDFs.resx deleted file mode 100644 index e7dce6b3..00000000 --- a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 186, 17 - - - 259, 17 - - \ No newline at end of file diff --git a/PROMS/PDFCompare/PDFCompare.sln b/PROMS/PDFCompare/PDFCompare.sln deleted file mode 100644 index 8f74e944..00000000 --- a/PROMS/PDFCompare/PDFCompare.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindDifferences", "FindDifferences\FindDifferences.csproj", "{82A5D621-315D-4059-8F01-245349D52438}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MergePDFs", "MergePDFs\MergePDFs.csproj", "{EDE182A0-5D65-48E4-909D-04902B462AF8}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {82A5D621-315D-4059-8F01-245349D52438}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {82A5D621-315D-4059-8F01-245349D52438}.Debug|Any CPU.Build.0 = Debug|Any CPU - {82A5D621-315D-4059-8F01-245349D52438}.Release|Any CPU.ActiveCfg = Release|Any CPU - {82A5D621-315D-4059-8F01-245349D52438}.Release|Any CPU.Build.0 = Release|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/PaginateTesting/16bit VE-PROMS Pagination.docx b/PROMS/PaginateTesting/16bit VE-PROMS Pagination.docx deleted file mode 100644 index 42db9091..00000000 Binary files a/PROMS/PaginateTesting/16bit VE-PROMS Pagination.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/16bit.txt b/PROMS/PaginateTesting/16bit.txt deleted file mode 100644 index 21352bea..00000000 --- a/PROMS/PaginateTesting/16bit.txt +++ /dev/null @@ -1,788 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$21' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',27,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' diff --git a/PROMS/PaginateTesting/20100803 Differences.docx b/PROMS/PaginateTesting/20100803 Differences.docx deleted file mode 100644 index 0b1d05fb..00000000 Binary files a/PROMS/PaginateTesting/20100803 Differences.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/20100804 Differences.docx b/PROMS/PaginateTesting/20100804 Differences.docx deleted file mode 100644 index 306dd274..00000000 Binary files a/PROMS/PaginateTesting/20100804 Differences.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/Base.TXT b/PROMS/PaginateTesting/Base.TXT deleted file mode 100644 index d535bc54..00000000 --- a/PROMS/PaginateTesting/Base.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S6$4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$4' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S4$4' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$4' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S4' -'0POP05-EO-EC31','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S8' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$5' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4$4' -'0POP05-EO-EC32','PROCEDURE STEPS',20,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S3$4' -'0POP05-EO-EC33','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRH1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S',5 \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case0.TXT b/PROMS/PaginateTesting/Case0.TXT deleted file mode 100644 index f6aa7025..00000000 --- a/PROMS/PaginateTesting/Case0.TXT +++ /dev/null @@ -1,790 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S6$4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S4$4' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$4' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S4' -'0POP05-EO-EC31','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S8' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$5' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4$4' -'0POP05-EO-EC32','PROCEDURE STEPS',20,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S3$4' -'0POP05-EO-EC33','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRH1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case1.TXT b/PROMS/PaginateTesting/Case1.TXT deleted file mode 100644 index b40dd13f..00000000 --- a/PROMS/PaginateTesting/Case1.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -The thread 0x1df8 has exited with code 0 (0x0). -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' --1,'Yes','Forced Pagination',5810,60,,636,'0POP05-EO-EC12.SPROCEDURE STEPS.S4..S3..R1..S1..S1..S2.' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S33' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$2' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case10.TXT b/PROMS/PaginateTesting/Case10.TXT deleted file mode 100644 index aeeaa1c3..00000000 --- a/PROMS/PaginateTesting/Case10.TXT +++ /dev/null @@ -1,790 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case11.TXT b/PROMS/PaginateTesting/Case11.TXT deleted file mode 100644 index eddf9d45..00000000 --- a/PROMS/PaginateTesting/Case11.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case12.TXT b/PROMS/PaginateTesting/Case12.TXT deleted file mode 100644 index f37eb739..00000000 --- a/PROMS/PaginateTesting/Case12.TXT +++ /dev/null @@ -1,785 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -there -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$14' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S6' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4:' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S2' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case13.TXT b/PROMS/PaginateTesting/Case13.TXT deleted file mode 100644 index 9b6db0fb..00000000 --- a/PROMS/PaginateTesting/Case13.TXT +++ /dev/null @@ -1,788 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -there -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' diff --git a/PROMS/PaginateTesting/Case14.TXT b/PROMS/PaginateTesting/Case14.TXT deleted file mode 100644 index c64fbd02..00000000 --- a/PROMS/PaginateTesting/Case14.TXT +++ /dev/null @@ -1,784 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4:' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S2' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' diff --git a/PROMS/PaginateTesting/Case15.TXT b/PROMS/PaginateTesting/Case15.TXT deleted file mode 100644 index 5a9e2420..00000000 --- a/PROMS/PaginateTesting/Case15.TXT +++ /dev/null @@ -1,785 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case16.TXT b/PROMS/PaginateTesting/Case16.TXT deleted file mode 100644 index 5a9e2420..00000000 --- a/PROMS/PaginateTesting/Case16.TXT +++ /dev/null @@ -1,785 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case17.TXT b/PROMS/PaginateTesting/Case17.TXT deleted file mode 100644 index 52b480ee..00000000 --- a/PROMS/PaginateTesting/Case17.TXT +++ /dev/null @@ -1,787 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case2.TXT b/PROMS/PaginateTesting/Case2.TXT deleted file mode 100644 index a142dc5c..00000000 --- a/PROMS/PaginateTesting/Case2.TXT +++ /dev/null @@ -1,787 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$2' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case3.TXT b/PROMS/PaginateTesting/Case3.TXT deleted file mode 100644 index f6aa7025..00000000 --- a/PROMS/PaginateTesting/Case3.TXT +++ /dev/null @@ -1,790 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S6$4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S4$4' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$4' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S4' -'0POP05-EO-EC31','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S8' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$5' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4$4' -'0POP05-EO-EC32','PROCEDURE STEPS',20,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S3$4' -'0POP05-EO-EC33','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRH1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case5.TXT b/PROMS/PaginateTesting/Case5.TXT deleted file mode 100644 index 791a00bf..00000000 --- a/PROMS/PaginateTesting/Case5.TXT +++ /dev/null @@ -1,782 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$14' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S6' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$49' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case6.TXT b/PROMS/PaginateTesting/Case6.TXT deleted file mode 100644 index 9f657bc8..00000000 --- a/PROMS/PaginateTesting/Case6.TXT +++ /dev/null @@ -1,783 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$14' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S6' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$49' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case7.TXT b/PROMS/PaginateTesting/Case7.TXT deleted file mode 100644 index 601445d4..00000000 --- a/PROMS/PaginateTesting/Case7.TXT +++ /dev/null @@ -1,788 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case8.TXT b/PROMS/PaginateTesting/Case8.TXT deleted file mode 100644 index 2486cd16..00000000 --- a/PROMS/PaginateTesting/Case8.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case9.TXT b/PROMS/PaginateTesting/Case9.TXT deleted file mode 100644 index 2486cd16..00000000 --- a/PROMS/PaginateTesting/Case9.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Differences.docx b/PROMS/PaginateTesting/Differences.docx deleted file mode 100644 index c222ca90..00000000 Binary files a/PROMS/PaginateTesting/Differences.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/Pagination Summary.xlsx b/PROMS/PaginateTesting/Pagination Summary.xlsx deleted file mode 100644 index aec9589e..00000000 Binary files a/PROMS/PaginateTesting/Pagination Summary.xlsx and /dev/null differ diff --git a/PROMS/PaginateTesting/Result.txt b/PROMS/PaginateTesting/Result.txt deleted file mode 100644 index 3948b621..00000000 Binary files a/PROMS/PaginateTesting/Result.txt and /dev/null differ diff --git a/PROMS/ROConvert/ROConvert.sln b/PROMS/ROConvert/ROConvert.sln deleted file mode 100644 index e03bb01d..00000000 --- a/PROMS/ROConvert/ROConvert.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WestinghouseROImport", "WestinghouseROImport\WestinghouseROImport.csproj", "{6E879177-F542-49A4-96AC-2384F469111C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6E879177-F542-49A4-96AC-2384F469111C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E879177-F542-49A4-96AC-2384F469111C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E879177-F542-49A4-96AC-2384F469111C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E879177-F542-49A4-96AC-2384F469111C}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/ROConvert/WestinghouseROImport/Program.cs b/PROMS/ROConvert/WestinghouseROImport/Program.cs deleted file mode 100644 index f8f1029e..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace WestinghouseROImport -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmROImport()); - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/AssemblyInfo.cs b/PROMS/ROConvert/WestinghouseROImport/Properties/AssemblyInfo.cs deleted file mode 100644 index b81346e3..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WestinghouseROImport")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("WestinghouseROImport")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4b2d9102-7b49-40d3-af03-5e343b9dbcdd")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.Designer.cs deleted file mode 100644 index 7375c8df..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROImport.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WestinghouseROImport.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.resx b/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.Designer.cs deleted file mode 100644 index 65130f97..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.Designer.cs +++ /dev/null @@ -1,56 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROImport.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\RO\\ROMaster.mdb")] - public string ROMasterConnectionString { - get { - return ((string)(this["ROMasterConnectionString"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\ROImport.mdb")] - public string ROImportConnectionString { - get { - return ((string)(this["ROImportConnectionString"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\ROCPPImport.mdb")] - public string ROCPPImportConnectionString { - get { - return ((string)(this["ROCPPImportConnectionString"])); - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.settings b/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.settings deleted file mode 100644 index a19678f6..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.settings +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROCPPImport.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROCPPImport.mdb - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.Designer.cs deleted file mode 100644 index defeee86..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.Designer.cs +++ /dev/null @@ -1,2446 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROImport { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROCPPImportDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROCPPImportDataSet : global::System.Data.DataSet { - - private ImportARP_tblDataTable tableImportARP_tbl; - - private ImportMEL_qryDataTable tableImportMEL_qry; - - private ImportSTP_qryDataTable tableImportSTP_qry; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROCPPImportDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROCPPImportDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportARP_tblDataTable ImportARP_tbl { - get { - return this.tableImportARP_tbl; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportMEL_qryDataTable ImportMEL_qry { - get { - return this.tableImportMEL_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportSTP_qryDataTable ImportSTP_qry { - get { - return this.tableImportSTP_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROCPPImportDataSet cln = ((ROCPPImportDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(base.Tables["ImportARP_tbl"])); - if ((initTable == true)) { - if ((this.tableImportARP_tbl != null)) { - this.tableImportARP_tbl.InitVars(); - } - } - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(base.Tables["ImportMEL_qry"])); - if ((initTable == true)) { - if ((this.tableImportMEL_qry != null)) { - this.tableImportMEL_qry.InitVars(); - } - } - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(base.Tables["ImportSTP_qry"])); - if ((initTable == true)) { - if ((this.tableImportSTP_qry != null)) { - this.tableImportSTP_qry.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROCPPImportDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROCPPImportDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableImportARP_tbl = new ImportARP_tblDataTable(); - base.Tables.Add(this.tableImportARP_tbl); - this.tableImportMEL_qry = new ImportMEL_qryDataTable(); - base.Tables.Add(this.tableImportMEL_qry); - this.tableImportSTP_qry = new ImportSTP_qryDataTable(); - base.Tables.Add(this.tableImportSTP_qry); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportARP_tbl() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportMEL_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportSTP_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void ImportARP_tblRowChangeEventHandler(object sender, ImportARP_tblRowChangeEvent e); - - public delegate void ImportMEL_qryRowChangeEventHandler(object sender, ImportMEL_qryRowChangeEvent e); - - public delegate void ImportSTP_qryRowChangeEventHandler(object sender, ImportSTP_qryRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportARP_tblDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnDocument; - - private global::System.Data.DataColumn columnAlarm; - - private global::System.Data.DataColumn columnPointName; - - private global::System.Data.DataColumn columnType; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSysTitle; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblDataTable() { - this.TableName = "ImportARP_tbl"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportARP_tblDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DocumentColumn { - get { - return this.columnDocument; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AlarmColumn { - get { - return this.columnAlarm; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn PointNameColumn { - get { - return this.columnPointName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn TypeColumn { - get { - return this.columnType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SysTitleColumn { - get { - return this.columnSysTitle; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow this[int index] { - get { - return ((ImportARP_tblRow)(this.Rows[index])); - } - } - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanging; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanged; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleting; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow AddImportARP_tblRow(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - ImportARP_tblRow rowImportARP_tblRow = ((ImportARP_tblRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Document, - Alarm, - PointName, - Type, - Value, - Description, - SystemID, - SysTitle}; - rowImportARP_tblRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportARP_tblRow); - return rowImportARP_tblRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportARP_tblDataTable cln = ((ImportARP_tblDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportARP_tblDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnDocument = base.Columns["Document"]; - this.columnAlarm = base.Columns["Alarm"]; - this.columnPointName = base.Columns["PointName"]; - this.columnType = base.Columns["Type"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - this.columnSystemID = base.Columns["SystemID"]; - this.columnSysTitle = base.Columns["SysTitle"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnDocument = new global::System.Data.DataColumn("Document", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDocument); - this.columnAlarm = new global::System.Data.DataColumn("Alarm", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAlarm); - this.columnPointName = new global::System.Data.DataColumn("PointName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnPointName); - this.columnType = new global::System.Data.DataColumn("Type", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnType); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSysTitle = new global::System.Data.DataColumn("SysTitle", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSysTitle); - this.columnDocument.MaxLength = 255; - this.columnAlarm.MaxLength = 255; - this.columnPointName.MaxLength = 255; - this.columnType.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnSystemID.MaxLength = 255; - this.columnSysTitle.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow NewImportARP_tblRow() { - return ((ImportARP_tblRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportARP_tblRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportARP_tblRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportARP_tblRowChanged != null)) { - this.ImportARP_tblRowChanged(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportARP_tblRowChanging != null)) { - this.ImportARP_tblRowChanging(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportARP_tblRowDeleted != null)) { - this.ImportARP_tblRowDeleted(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportARP_tblRowDeleting != null)) { - this.ImportARP_tblRowDeleting(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportARP_tblDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportMEL_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSystemDesc; - - private global::System.Data.DataColumn columnComponentID; - - private global::System.Data.DataColumn columnCompDesc; - - private global::System.Data.DataColumn columnFullName; - - private global::System.Data.DataColumn columnShortName; - - private global::System.Data.DataColumn columnRoom; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnCommonDesc; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryDataTable() { - this.TableName = "ImportMEL_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportMEL_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemDescColumn { - get { - return this.columnSystemDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ComponentIDColumn { - get { - return this.columnComponentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CompDescColumn { - get { - return this.columnCompDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn FullNameColumn { - get { - return this.columnFullName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ShortNameColumn { - get { - return this.columnShortName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RoomColumn { - get { - return this.columnRoom; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CommonDescColumn { - get { - return this.columnCommonDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow this[int index] { - get { - return ((ImportMEL_qryRow)(this.Rows[index])); - } - } - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanging; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanged; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleting; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow AddImportMEL_qryRow(string SystemID, string SystemDesc, string ComponentID, string CompDesc, string FullName, string ShortName, string Room, string Description, string CommonDesc) { - ImportMEL_qryRow rowImportMEL_qryRow = ((ImportMEL_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - SystemID, - SystemDesc, - ComponentID, - CompDesc, - FullName, - ShortName, - Room, - Description, - CommonDesc}; - rowImportMEL_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportMEL_qryRow); - return rowImportMEL_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportMEL_qryDataTable cln = ((ImportMEL_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportMEL_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnSystemID = base.Columns["SystemID"]; - this.columnSystemDesc = base.Columns["SystemDesc"]; - this.columnComponentID = base.Columns["ComponentID"]; - this.columnCompDesc = base.Columns["CompDesc"]; - this.columnFullName = base.Columns["FullName"]; - this.columnShortName = base.Columns["ShortName"]; - this.columnRoom = base.Columns["Room"]; - this.columnDescription = base.Columns["Description"]; - this.columnCommonDesc = base.Columns["CommonDesc"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSystemDesc = new global::System.Data.DataColumn("SystemDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemDesc); - this.columnComponentID = new global::System.Data.DataColumn("ComponentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnComponentID); - this.columnCompDesc = new global::System.Data.DataColumn("CompDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCompDesc); - this.columnFullName = new global::System.Data.DataColumn("FullName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnFullName); - this.columnShortName = new global::System.Data.DataColumn("ShortName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnShortName); - this.columnRoom = new global::System.Data.DataColumn("Room", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRoom); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnCommonDesc = new global::System.Data.DataColumn("CommonDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCommonDesc); - this.columnSystemID.ReadOnly = true; - this.columnSystemID.MaxLength = 255; - this.columnSystemDesc.MaxLength = 255; - this.columnComponentID.ReadOnly = true; - this.columnComponentID.MaxLength = 255; - this.columnCompDesc.MaxLength = 255; - this.columnFullName.MaxLength = 255; - this.columnShortName.MaxLength = 255; - this.columnRoom.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnCommonDesc.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow NewImportMEL_qryRow() { - return ((ImportMEL_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportMEL_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportMEL_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportMEL_qryRowChanged != null)) { - this.ImportMEL_qryRowChanged(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportMEL_qryRowChanging != null)) { - this.ImportMEL_qryRowChanging(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportMEL_qryRowDeleted != null)) { - this.ImportMEL_qryRowDeleted(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportMEL_qryRowDeleting != null)) { - this.ImportMEL_qryRowDeleting(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportMEL_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportSTP_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnParameter; - - private global::System.Data.DataColumn columnName; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryDataTable() { - this.TableName = "ImportSTP_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportSTP_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParameterColumn { - get { - return this.columnParameter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn NameColumn { - get { - return this.columnName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow this[int index] { - get { - return ((ImportSTP_qryRow)(this.Rows[index])); - } - } - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanging; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanged; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleting; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow AddImportSTP_qryRow(string Parameter, string Name, string Value, string Description) { - ImportSTP_qryRow rowImportSTP_qryRow = ((ImportSTP_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Parameter, - Name, - Value, - Description}; - rowImportSTP_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportSTP_qryRow); - return rowImportSTP_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportSTP_qryDataTable cln = ((ImportSTP_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportSTP_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnParameter = base.Columns["Parameter"]; - this.columnName = base.Columns["Name"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnParameter = new global::System.Data.DataColumn("Parameter", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParameter); - this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnName); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnParameter.MaxLength = 255; - this.columnName.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow NewImportSTP_qryRow() { - return ((ImportSTP_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportSTP_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportSTP_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportSTP_qryRowChanged != null)) { - this.ImportSTP_qryRowChanged(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportSTP_qryRowChanging != null)) { - this.ImportSTP_qryRowChanging(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportSTP_qryRowDeleted != null)) { - this.ImportSTP_qryRowDeleted(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportSTP_qryRowDeleting != null)) { - this.ImportSTP_qryRowDeleting(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportSTP_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportARP_tblRow : global::System.Data.DataRow { - - private ImportARP_tblDataTable tableImportARP_tbl; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Document { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DocumentColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Document\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DocumentColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Alarm { - get { - try { - return ((string)(this[this.tableImportARP_tbl.AlarmColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Alarm\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.AlarmColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string PointName { - get { - try { - return ((string)(this[this.tableImportARP_tbl.PointNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'PointName\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.PointNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Type { - get { - try { - return ((string)(this[this.tableImportARP_tbl.TypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Type\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.TypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportARP_tbl.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SysTitle { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SysTitleColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SysTitle\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SysTitleColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDocumentNull() { - return this.IsNull(this.tableImportARP_tbl.DocumentColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDocumentNull() { - this[this.tableImportARP_tbl.DocumentColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAlarmNull() { - return this.IsNull(this.tableImportARP_tbl.AlarmColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAlarmNull() { - this[this.tableImportARP_tbl.AlarmColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsPointNameNull() { - return this.IsNull(this.tableImportARP_tbl.PointNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetPointNameNull() { - this[this.tableImportARP_tbl.PointNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsTypeNull() { - return this.IsNull(this.tableImportARP_tbl.TypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetTypeNull() { - this[this.tableImportARP_tbl.TypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportARP_tbl.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportARP_tbl.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportARP_tbl.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportARP_tbl.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportARP_tbl.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportARP_tbl.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSysTitleNull() { - return this.IsNull(this.tableImportARP_tbl.SysTitleColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSysTitleNull() { - this[this.tableImportARP_tbl.SysTitleColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportMEL_qryRow : global::System.Data.DataRow { - - private ImportMEL_qryDataTable tableImportMEL_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ComponentID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ComponentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ComponentID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ComponentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CompDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CompDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CompDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CompDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string FullName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.FullNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'FullName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.FullNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ShortName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ShortNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ShortName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ShortNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Room { - get { - try { - return ((string)(this[this.tableImportMEL_qry.RoomColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Room\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.RoomColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportMEL_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CommonDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CommonDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CommonDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CommonDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportMEL_qry.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportMEL_qry.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemDescNull() { - return this.IsNull(this.tableImportMEL_qry.SystemDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemDescNull() { - this[this.tableImportMEL_qry.SystemDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsComponentIDNull() { - return this.IsNull(this.tableImportMEL_qry.ComponentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetComponentIDNull() { - this[this.tableImportMEL_qry.ComponentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCompDescNull() { - return this.IsNull(this.tableImportMEL_qry.CompDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCompDescNull() { - this[this.tableImportMEL_qry.CompDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsFullNameNull() { - return this.IsNull(this.tableImportMEL_qry.FullNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetFullNameNull() { - this[this.tableImportMEL_qry.FullNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsShortNameNull() { - return this.IsNull(this.tableImportMEL_qry.ShortNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetShortNameNull() { - this[this.tableImportMEL_qry.ShortNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRoomNull() { - return this.IsNull(this.tableImportMEL_qry.RoomColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRoomNull() { - this[this.tableImportMEL_qry.RoomColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportMEL_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportMEL_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCommonDescNull() { - return this.IsNull(this.tableImportMEL_qry.CommonDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCommonDescNull() { - this[this.tableImportMEL_qry.CommonDescColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportSTP_qryRow : global::System.Data.DataRow { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Parameter { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ParameterColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Parameter\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ParameterColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Name { - get { - try { - return ((string)(this[this.tableImportSTP_qry.NameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Name\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.NameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportSTP_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParameterNull() { - return this.IsNull(this.tableImportSTP_qry.ParameterColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParameterNull() { - this[this.tableImportSTP_qry.ParameterColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsNameNull() { - return this.IsNull(this.tableImportSTP_qry.NameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetNameNull() { - this[this.tableImportSTP_qry.NameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportSTP_qry.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportSTP_qry.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportSTP_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportSTP_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportARP_tblRowChangeEvent : global::System.EventArgs { - - private ImportARP_tblRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRowChangeEvent(ImportARP_tblRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportMEL_qryRowChangeEvent : global::System.EventArgs { - - private ImportMEL_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRowChangeEvent(ImportMEL_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportSTP_qryRowChangeEvent : global::System.EventArgs { - - private ImportSTP_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRowChangeEvent(ImportSTP_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROImport.ROCPPImportDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportARP_tblTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportARP_tbl"; - tableMapping.ColumnMappings.Add("Document", "Document"); - tableMapping.ColumnMappings.Add("Alarm", "Alarm"); - tableMapping.ColumnMappings.Add("PointName", "PointName"); - tableMapping.ColumnMappings.Add("Type", "Type"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SysTitle", "SysTitle"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `" + - "Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Document", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Document", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Alarm", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Alarm", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("PointName", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "PointName", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Type", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Type", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Value", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Value", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Description", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Description", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SystemID", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SystemID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SysTitle", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SysTitle", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROCPPImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, SysTitle" + - " FROM ImportARP_tbl"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROCPPImportDataSet.ImportARP_tblDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROCPPImportDataSet.ImportARP_tblDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROCPPImportDataSet.ImportARP_tblDataTable dataTable = new ROCPPImportDataSet.ImportARP_tblDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROCPPImportDataSet.ImportARP_tblDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROCPPImportDataSet dataSet) { - return this.Adapter.Update(dataSet, "ImportARP_tbl"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - if ((Document == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(Document)); - } - if ((Alarm == null)) { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = ((string)(Alarm)); - } - if ((PointName == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PointName)); - } - if ((Type == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Type)); - } - if ((Value == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Value)); - } - if ((Description == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Description)); - } - if ((SystemID == null)) { - this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[6].Value = ((string)(SystemID)); - } - if ((SysTitle == null)) { - this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[7].Value = ((string)(SysTitle)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportMEL_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportMEL_qry"; - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SystemDesc", "SystemDesc"); - tableMapping.ColumnMappings.Add("ComponentID", "ComponentID"); - tableMapping.ColumnMappings.Add("CompDesc", "CompDesc"); - tableMapping.ColumnMappings.Add("FullName", "FullName"); - tableMapping.ColumnMappings.Add("ShortName", "ShortName"); - tableMapping.ColumnMappings.Add("Room", "Room"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("CommonDesc", "CommonDesc"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROCPPImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, De" + - "scription, CommonDesc FROM ImportMEL_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROCPPImportDataSet.ImportMEL_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROCPPImportDataSet.ImportMEL_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROCPPImportDataSet.ImportMEL_qryDataTable dataTable = new ROCPPImportDataSet.ImportMEL_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportSTP_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportSTP_qry"; - tableMapping.ColumnMappings.Add("Parameter", "Parameter"); - tableMapping.ColumnMappings.Add("Name", "Name"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROCPPImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROCPPImportDataSet.ImportSTP_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROCPPImportDataSet.ImportSTP_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROCPPImportDataSet.ImportSTP_qryDataTable dataTable = new ROCPPImportDataSet.ImportSTP_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsc b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsc deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsc +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsd b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsd deleted file mode 100644 index 59a0689f..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsd +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - - - - - - - - - - INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - - - - - SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, SysTitle FROM ImportARP_tbl - - - - - - - - - - - - - - - - - - - - - - - - - SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, Description, CommonDesc FROM ImportMEL_qry - - - - - - - - - - - - - - - - - - - - - - - - - - SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xss b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xss deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xss +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.Designer.cs deleted file mode 100644 index d1228337..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.Designer.cs +++ /dev/null @@ -1,2446 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROImport { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROImportDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROImportDataSet : global::System.Data.DataSet { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - private ImportMEL_qryDataTable tableImportMEL_qry; - - private ImportARP_tblDataTable tableImportARP_tbl; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROImportDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROImportDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportSTP_qryDataTable ImportSTP_qry { - get { - return this.tableImportSTP_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportMEL_qryDataTable ImportMEL_qry { - get { - return this.tableImportMEL_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportARP_tblDataTable ImportARP_tbl { - get { - return this.tableImportARP_tbl; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROImportDataSet cln = ((ROImportDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(base.Tables["ImportSTP_qry"])); - if ((initTable == true)) { - if ((this.tableImportSTP_qry != null)) { - this.tableImportSTP_qry.InitVars(); - } - } - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(base.Tables["ImportMEL_qry"])); - if ((initTable == true)) { - if ((this.tableImportMEL_qry != null)) { - this.tableImportMEL_qry.InitVars(); - } - } - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(base.Tables["ImportARP_tbl"])); - if ((initTable == true)) { - if ((this.tableImportARP_tbl != null)) { - this.tableImportARP_tbl.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROImportDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROImportDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableImportSTP_qry = new ImportSTP_qryDataTable(); - base.Tables.Add(this.tableImportSTP_qry); - this.tableImportMEL_qry = new ImportMEL_qryDataTable(); - base.Tables.Add(this.tableImportMEL_qry); - this.tableImportARP_tbl = new ImportARP_tblDataTable(); - base.Tables.Add(this.tableImportARP_tbl); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportSTP_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportMEL_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportARP_tbl() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void ImportSTP_qryRowChangeEventHandler(object sender, ImportSTP_qryRowChangeEvent e); - - public delegate void ImportMEL_qryRowChangeEventHandler(object sender, ImportMEL_qryRowChangeEvent e); - - public delegate void ImportARP_tblRowChangeEventHandler(object sender, ImportARP_tblRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportSTP_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnParameter; - - private global::System.Data.DataColumn columnName; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryDataTable() { - this.TableName = "ImportSTP_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportSTP_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParameterColumn { - get { - return this.columnParameter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn NameColumn { - get { - return this.columnName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow this[int index] { - get { - return ((ImportSTP_qryRow)(this.Rows[index])); - } - } - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanging; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanged; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleting; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow AddImportSTP_qryRow(string Parameter, string Name, string Value, string Description) { - ImportSTP_qryRow rowImportSTP_qryRow = ((ImportSTP_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Parameter, - Name, - Value, - Description}; - rowImportSTP_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportSTP_qryRow); - return rowImportSTP_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportSTP_qryDataTable cln = ((ImportSTP_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportSTP_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnParameter = base.Columns["Parameter"]; - this.columnName = base.Columns["Name"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnParameter = new global::System.Data.DataColumn("Parameter", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParameter); - this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnName); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnParameter.MaxLength = 255; - this.columnName.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow NewImportSTP_qryRow() { - return ((ImportSTP_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportSTP_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportSTP_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportSTP_qryRowChanged != null)) { - this.ImportSTP_qryRowChanged(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportSTP_qryRowChanging != null)) { - this.ImportSTP_qryRowChanging(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportSTP_qryRowDeleted != null)) { - this.ImportSTP_qryRowDeleted(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportSTP_qryRowDeleting != null)) { - this.ImportSTP_qryRowDeleting(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportSTP_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportMEL_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSystemDesc; - - private global::System.Data.DataColumn columnComponentID; - - private global::System.Data.DataColumn columnCompDesc; - - private global::System.Data.DataColumn columnFullName; - - private global::System.Data.DataColumn columnShortName; - - private global::System.Data.DataColumn columnRoom; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnCommonDesc; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryDataTable() { - this.TableName = "ImportMEL_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportMEL_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemDescColumn { - get { - return this.columnSystemDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ComponentIDColumn { - get { - return this.columnComponentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CompDescColumn { - get { - return this.columnCompDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn FullNameColumn { - get { - return this.columnFullName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ShortNameColumn { - get { - return this.columnShortName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RoomColumn { - get { - return this.columnRoom; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CommonDescColumn { - get { - return this.columnCommonDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow this[int index] { - get { - return ((ImportMEL_qryRow)(this.Rows[index])); - } - } - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanging; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanged; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleting; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow AddImportMEL_qryRow(string SystemID, string SystemDesc, string ComponentID, string CompDesc, string FullName, string ShortName, string Room, string Description, string CommonDesc) { - ImportMEL_qryRow rowImportMEL_qryRow = ((ImportMEL_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - SystemID, - SystemDesc, - ComponentID, - CompDesc, - FullName, - ShortName, - Room, - Description, - CommonDesc}; - rowImportMEL_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportMEL_qryRow); - return rowImportMEL_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportMEL_qryDataTable cln = ((ImportMEL_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportMEL_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnSystemID = base.Columns["SystemID"]; - this.columnSystemDesc = base.Columns["SystemDesc"]; - this.columnComponentID = base.Columns["ComponentID"]; - this.columnCompDesc = base.Columns["CompDesc"]; - this.columnFullName = base.Columns["FullName"]; - this.columnShortName = base.Columns["ShortName"]; - this.columnRoom = base.Columns["Room"]; - this.columnDescription = base.Columns["Description"]; - this.columnCommonDesc = base.Columns["CommonDesc"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSystemDesc = new global::System.Data.DataColumn("SystemDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemDesc); - this.columnComponentID = new global::System.Data.DataColumn("ComponentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnComponentID); - this.columnCompDesc = new global::System.Data.DataColumn("CompDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCompDesc); - this.columnFullName = new global::System.Data.DataColumn("FullName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnFullName); - this.columnShortName = new global::System.Data.DataColumn("ShortName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnShortName); - this.columnRoom = new global::System.Data.DataColumn("Room", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRoom); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnCommonDesc = new global::System.Data.DataColumn("CommonDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCommonDesc); - this.columnSystemID.ReadOnly = true; - this.columnSystemID.MaxLength = 255; - this.columnSystemDesc.MaxLength = 255; - this.columnComponentID.ReadOnly = true; - this.columnComponentID.MaxLength = 255; - this.columnCompDesc.MaxLength = 255; - this.columnFullName.MaxLength = 255; - this.columnShortName.MaxLength = 255; - this.columnRoom.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnCommonDesc.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow NewImportMEL_qryRow() { - return ((ImportMEL_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportMEL_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportMEL_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportMEL_qryRowChanged != null)) { - this.ImportMEL_qryRowChanged(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportMEL_qryRowChanging != null)) { - this.ImportMEL_qryRowChanging(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportMEL_qryRowDeleted != null)) { - this.ImportMEL_qryRowDeleted(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportMEL_qryRowDeleting != null)) { - this.ImportMEL_qryRowDeleting(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportMEL_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportARP_tblDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnDocument; - - private global::System.Data.DataColumn columnAlarm; - - private global::System.Data.DataColumn columnPointName; - - private global::System.Data.DataColumn columnType; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSysTitle; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblDataTable() { - this.TableName = "ImportARP_tbl"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportARP_tblDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DocumentColumn { - get { - return this.columnDocument; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AlarmColumn { - get { - return this.columnAlarm; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn PointNameColumn { - get { - return this.columnPointName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn TypeColumn { - get { - return this.columnType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SysTitleColumn { - get { - return this.columnSysTitle; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow this[int index] { - get { - return ((ImportARP_tblRow)(this.Rows[index])); - } - } - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanging; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanged; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleting; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow AddImportARP_tblRow(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - ImportARP_tblRow rowImportARP_tblRow = ((ImportARP_tblRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Document, - Alarm, - PointName, - Type, - Value, - Description, - SystemID, - SysTitle}; - rowImportARP_tblRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportARP_tblRow); - return rowImportARP_tblRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportARP_tblDataTable cln = ((ImportARP_tblDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportARP_tblDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnDocument = base.Columns["Document"]; - this.columnAlarm = base.Columns["Alarm"]; - this.columnPointName = base.Columns["PointName"]; - this.columnType = base.Columns["Type"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - this.columnSystemID = base.Columns["SystemID"]; - this.columnSysTitle = base.Columns["SysTitle"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnDocument = new global::System.Data.DataColumn("Document", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDocument); - this.columnAlarm = new global::System.Data.DataColumn("Alarm", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAlarm); - this.columnPointName = new global::System.Data.DataColumn("PointName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnPointName); - this.columnType = new global::System.Data.DataColumn("Type", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnType); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSysTitle = new global::System.Data.DataColumn("SysTitle", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSysTitle); - this.columnDocument.MaxLength = 255; - this.columnAlarm.MaxLength = 255; - this.columnPointName.MaxLength = 255; - this.columnType.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnSystemID.MaxLength = 255; - this.columnSysTitle.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow NewImportARP_tblRow() { - return ((ImportARP_tblRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportARP_tblRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportARP_tblRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportARP_tblRowChanged != null)) { - this.ImportARP_tblRowChanged(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportARP_tblRowChanging != null)) { - this.ImportARP_tblRowChanging(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportARP_tblRowDeleted != null)) { - this.ImportARP_tblRowDeleted(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportARP_tblRowDeleting != null)) { - this.ImportARP_tblRowDeleting(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportARP_tblDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportSTP_qryRow : global::System.Data.DataRow { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Parameter { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ParameterColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Parameter\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ParameterColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Name { - get { - try { - return ((string)(this[this.tableImportSTP_qry.NameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Name\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.NameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportSTP_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParameterNull() { - return this.IsNull(this.tableImportSTP_qry.ParameterColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParameterNull() { - this[this.tableImportSTP_qry.ParameterColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsNameNull() { - return this.IsNull(this.tableImportSTP_qry.NameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetNameNull() { - this[this.tableImportSTP_qry.NameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportSTP_qry.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportSTP_qry.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportSTP_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportSTP_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportMEL_qryRow : global::System.Data.DataRow { - - private ImportMEL_qryDataTable tableImportMEL_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ComponentID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ComponentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ComponentID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ComponentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CompDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CompDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CompDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CompDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string FullName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.FullNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'FullName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.FullNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ShortName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ShortNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ShortName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ShortNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Room { - get { - try { - return ((string)(this[this.tableImportMEL_qry.RoomColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Room\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.RoomColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportMEL_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CommonDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CommonDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CommonDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CommonDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportMEL_qry.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportMEL_qry.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemDescNull() { - return this.IsNull(this.tableImportMEL_qry.SystemDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemDescNull() { - this[this.tableImportMEL_qry.SystemDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsComponentIDNull() { - return this.IsNull(this.tableImportMEL_qry.ComponentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetComponentIDNull() { - this[this.tableImportMEL_qry.ComponentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCompDescNull() { - return this.IsNull(this.tableImportMEL_qry.CompDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCompDescNull() { - this[this.tableImportMEL_qry.CompDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsFullNameNull() { - return this.IsNull(this.tableImportMEL_qry.FullNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetFullNameNull() { - this[this.tableImportMEL_qry.FullNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsShortNameNull() { - return this.IsNull(this.tableImportMEL_qry.ShortNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetShortNameNull() { - this[this.tableImportMEL_qry.ShortNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRoomNull() { - return this.IsNull(this.tableImportMEL_qry.RoomColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRoomNull() { - this[this.tableImportMEL_qry.RoomColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportMEL_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportMEL_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCommonDescNull() { - return this.IsNull(this.tableImportMEL_qry.CommonDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCommonDescNull() { - this[this.tableImportMEL_qry.CommonDescColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportARP_tblRow : global::System.Data.DataRow { - - private ImportARP_tblDataTable tableImportARP_tbl; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Document { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DocumentColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Document\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DocumentColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Alarm { - get { - try { - return ((string)(this[this.tableImportARP_tbl.AlarmColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Alarm\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.AlarmColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string PointName { - get { - try { - return ((string)(this[this.tableImportARP_tbl.PointNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'PointName\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.PointNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Type { - get { - try { - return ((string)(this[this.tableImportARP_tbl.TypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Type\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.TypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportARP_tbl.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SysTitle { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SysTitleColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SysTitle\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SysTitleColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDocumentNull() { - return this.IsNull(this.tableImportARP_tbl.DocumentColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDocumentNull() { - this[this.tableImportARP_tbl.DocumentColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAlarmNull() { - return this.IsNull(this.tableImportARP_tbl.AlarmColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAlarmNull() { - this[this.tableImportARP_tbl.AlarmColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsPointNameNull() { - return this.IsNull(this.tableImportARP_tbl.PointNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetPointNameNull() { - this[this.tableImportARP_tbl.PointNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsTypeNull() { - return this.IsNull(this.tableImportARP_tbl.TypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetTypeNull() { - this[this.tableImportARP_tbl.TypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportARP_tbl.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportARP_tbl.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportARP_tbl.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportARP_tbl.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportARP_tbl.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportARP_tbl.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSysTitleNull() { - return this.IsNull(this.tableImportARP_tbl.SysTitleColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSysTitleNull() { - this[this.tableImportARP_tbl.SysTitleColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportSTP_qryRowChangeEvent : global::System.EventArgs { - - private ImportSTP_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRowChangeEvent(ImportSTP_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportMEL_qryRowChangeEvent : global::System.EventArgs { - - private ImportMEL_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRowChangeEvent(ImportMEL_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportARP_tblRowChangeEvent : global::System.EventArgs { - - private ImportARP_tblRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRowChangeEvent(ImportARP_tblRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROImport.ROImportDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportSTP_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportSTP_qry"; - tableMapping.ColumnMappings.Add("Parameter", "Parameter"); - tableMapping.ColumnMappings.Add("Name", "Name"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportSTP_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportSTP_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportSTP_qryDataTable dataTable = new ROImportDataSet.ImportSTP_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportMEL_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportMEL_qry"; - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SystemDesc", "SystemDesc"); - tableMapping.ColumnMappings.Add("ComponentID", "ComponentID"); - tableMapping.ColumnMappings.Add("CompDesc", "CompDesc"); - tableMapping.ColumnMappings.Add("FullName", "FullName"); - tableMapping.ColumnMappings.Add("ShortName", "ShortName"); - tableMapping.ColumnMappings.Add("Room", "Room"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("CommonDesc", "CommonDesc"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, De" + - "scription, CommonDesc FROM ImportMEL_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportMEL_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportMEL_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportMEL_qryDataTable dataTable = new ROImportDataSet.ImportMEL_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportARP_tblTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportARP_tbl"; - tableMapping.ColumnMappings.Add("Document", "Document"); - tableMapping.ColumnMappings.Add("Alarm", "Alarm"); - tableMapping.ColumnMappings.Add("PointName", "PointName"); - tableMapping.ColumnMappings.Add("Type", "Type"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SysTitle", "SysTitle"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `" + - "Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Document", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Document", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Alarm", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Alarm", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("PointName", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "PointName", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Type", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Type", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Value", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Value", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Description", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Description", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SystemID", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SystemID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SysTitle", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SysTitle", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, S" + - "ysTitle\r\nFROM ImportARP_tbl"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportARP_tblDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportARP_tblDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportARP_tblDataTable dataTable = new ROImportDataSet.ImportARP_tblDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROImportDataSet.ImportARP_tblDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROImportDataSet dataSet) { - return this.Adapter.Update(dataSet, "ImportARP_tbl"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - if ((Document == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(Document)); - } - if ((Alarm == null)) { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = ((string)(Alarm)); - } - if ((PointName == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PointName)); - } - if ((Type == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Type)); - } - if ((Value == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Value)); - } - if ((Description == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Description)); - } - if ((SystemID == null)) { - this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[6].Value = ((string)(SystemID)); - } - if ((SysTitle == null)) { - this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[7].Value = ((string)(SysTitle)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.cs b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.cs deleted file mode 100644 index 7cb33e42..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace WestinghouseROImport { - - - public partial class ROImportDataSet { - } -} diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsc b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsc deleted file mode 100644 index 5dbde4a4..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsc +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsd b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsd deleted file mode 100644 index a95a6d33..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsd +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - - - SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry - - - - - - - - - - - - - - - - - - - - - SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, Description, CommonDesc FROM ImportMEL_qry - - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - - - - - SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, SysTitle -FROM ImportARP_tbl - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xss b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xss deleted file mode 100644 index 9c718d02..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xss +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.Designer.cs deleted file mode 100644 index df250bfd..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.Designer.cs +++ /dev/null @@ -1,3816 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROImport { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROMasterDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROMasterDataSet : global::System.Data.DataSet { - - private RO000002DataTable tableRO000002; - - private RO000003DataTable tableRO000003; - - private RO000004DataTable tableRO000004; - - private ROMASTERDataTable tableROMASTER; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMasterDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMasterDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000002DataTable RO000002 { - get { - return this.tableRO000002; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000003DataTable RO000003 { - get { - return this.tableRO000003; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000004DataTable RO000004 { - get { - return this.tableRO000004; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ROMASTERDataTable ROMASTER { - get { - return this.tableROMASTER; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROMasterDataSet cln = ((ROMasterDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableRO000002 = ((RO000002DataTable)(base.Tables["RO000002"])); - if ((initTable == true)) { - if ((this.tableRO000002 != null)) { - this.tableRO000002.InitVars(); - } - } - this.tableRO000003 = ((RO000003DataTable)(base.Tables["RO000003"])); - if ((initTable == true)) { - if ((this.tableRO000003 != null)) { - this.tableRO000003.InitVars(); - } - } - this.tableRO000004 = ((RO000004DataTable)(base.Tables["RO000004"])); - if ((initTable == true)) { - if ((this.tableRO000004 != null)) { - this.tableRO000004.InitVars(); - } - } - this.tableROMASTER = ((ROMASTERDataTable)(base.Tables["ROMASTER"])); - if ((initTable == true)) { - if ((this.tableROMASTER != null)) { - this.tableROMASTER.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROMasterDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROMasterDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableRO000002 = new RO000002DataTable(); - base.Tables.Add(this.tableRO000002); - this.tableRO000003 = new RO000003DataTable(); - base.Tables.Add(this.tableRO000003); - this.tableRO000004 = new RO000004DataTable(); - base.Tables.Add(this.tableRO000004); - this.tableROMASTER = new ROMASTERDataTable(); - base.Tables.Add(this.tableROMASTER); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000002() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000003() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000004() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeROMASTER() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void RO000002RowChangeEventHandler(object sender, RO000002RowChangeEvent e); - - public delegate void RO000003RowChangeEventHandler(object sender, RO000003RowChangeEvent e); - - public delegate void RO000004RowChangeEventHandler(object sender, RO000004RowChangeEvent e); - - public delegate void ROMASTERRowChangeEventHandler(object sender, ROMASTERRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000002DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002DataTable() { - this.TableName = "RO000002"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000002DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row this[int index] { - get { - return ((RO000002Row)(this.Rows[index])); - } - } - - public event RO000002RowChangeEventHandler RO000002RowChanging; - - public event RO000002RowChangeEventHandler RO000002RowChanged; - - public event RO000002RowChangeEventHandler RO000002RowDeleting; - - public event RO000002RowChangeEventHandler RO000002RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000002Row(RO000002Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row AddRO000002Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000002Row rowRO000002Row = ((RO000002Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000002Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000002Row); - return rowRO000002Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row FindByRecID(string RecID) { - return ((RO000002Row)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000002DataTable cln = ((RO000002DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000002DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row NewRO000002Row() { - return ((RO000002Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000002Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000002Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000002RowChanged != null)) { - this.RO000002RowChanged(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000002RowChanging != null)) { - this.RO000002RowChanging(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000002RowDeleted != null)) { - this.RO000002RowDeleted(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000002RowDeleting != null)) { - this.RO000002RowDeleting(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000002Row(RO000002Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000002DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000003DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003DataTable() { - this.TableName = "RO000003"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000003DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row this[int index] { - get { - return ((RO000003Row)(this.Rows[index])); - } - } - - public event RO000003RowChangeEventHandler RO000003RowChanging; - - public event RO000003RowChangeEventHandler RO000003RowChanged; - - public event RO000003RowChangeEventHandler RO000003RowDeleting; - - public event RO000003RowChangeEventHandler RO000003RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000003Row(RO000003Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row AddRO000003Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000003Row rowRO000003Row = ((RO000003Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000003Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000003Row); - return rowRO000003Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row FindByRecID(string RecID) { - return ((RO000003Row)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000003DataTable cln = ((RO000003DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000003DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row NewRO000003Row() { - return ((RO000003Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000003Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000003Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000003RowChanged != null)) { - this.RO000003RowChanged(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000003RowChanging != null)) { - this.RO000003RowChanging(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000003RowDeleted != null)) { - this.RO000003RowDeleted(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000003RowDeleting != null)) { - this.RO000003RowDeleting(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000003Row(RO000003Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000003DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000004DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004DataTable() { - this.TableName = "RO000004"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000004DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row this[int index] { - get { - return ((RO000004Row)(this.Rows[index])); - } - } - - public event RO000004RowChangeEventHandler RO000004RowChanging; - - public event RO000004RowChangeEventHandler RO000004RowChanged; - - public event RO000004RowChangeEventHandler RO000004RowDeleting; - - public event RO000004RowChangeEventHandler RO000004RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000004Row(RO000004Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row AddRO000004Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000004Row rowRO000004Row = ((RO000004Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000004Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000004Row); - return rowRO000004Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row FindByRecID(string RecID) { - return ((RO000004Row)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000004DataTable cln = ((RO000004DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000004DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row NewRO000004Row() { - return ((RO000004Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000004Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000004Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000004RowChanged != null)) { - this.RO000004RowChanged(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000004RowChanging != null)) { - this.RO000004RowChanging(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000004RowDeleted != null)) { - this.RO000004RowDeleted(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000004RowDeleting != null)) { - this.RO000004RowDeleting(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000004Row(RO000004Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000004DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ROMASTERDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERDataTable() { - this.TableName = "ROMASTER"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMASTERDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow this[int index] { - get { - return ((ROMASTERRow)(this.Rows[index])); - } - } - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanging; - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanged; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleting; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddROMASTERRow(ROMASTERRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow AddROMASTERRow(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - ROMASTERRow rowROMASTERRow = ((ROMASTERRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowROMASTERRow.ItemArray = columnValuesArray; - this.Rows.Add(rowROMASTERRow); - return rowROMASTERRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow FindByRecID(string RecID) { - return ((ROMASTERRow)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ROMASTERDataTable cln = ((ROMASTERDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ROMASTERDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow NewROMASTERRow() { - return ((ROMASTERRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ROMASTERRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ROMASTERRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ROMASTERRowChanged != null)) { - this.ROMASTERRowChanged(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ROMASTERRowChanging != null)) { - this.ROMASTERRowChanging(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ROMASTERRowDeleted != null)) { - this.ROMASTERRowDeleted(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ROMASTERRowDeleting != null)) { - this.ROMASTERRowDeleting(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveROMASTERRow(ROMASTERRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ROMASTERDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000002Row : global::System.Data.DataRow { - - private RO000002DataTable tableRO000002; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000002 = ((RO000002DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableRO000002.RecIDColumn])); - } - set { - this[this.tableRO000002.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000002.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000002.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000002.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000002.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000002.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000002.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000002.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000002.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000002.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000002.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000002.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000002.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000002.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000002.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000002.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000003Row : global::System.Data.DataRow { - - private RO000003DataTable tableRO000003; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000003 = ((RO000003DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableRO000003.RecIDColumn])); - } - set { - this[this.tableRO000003.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000003.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000003.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000003.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000003.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000003.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000003.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000003.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000003.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000003.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000003.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000003.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000003.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000003.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000003.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000003.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000004Row : global::System.Data.DataRow { - - private RO000004DataTable tableRO000004; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000004 = ((RO000004DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableRO000004.RecIDColumn])); - } - set { - this[this.tableRO000004.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000004.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000004.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000004.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000004.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000004.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000004.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000004.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000004.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000004.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000004.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000004.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000004.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000004.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000004.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000004.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ROMASTERRow : global::System.Data.DataRow { - - private ROMASTERDataTable tableROMASTER; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableROMASTER = ((ROMASTERDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableROMASTER.RecIDColumn])); - } - set { - this[this.tableROMASTER.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableROMASTER.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableROMASTER.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableROMASTER.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableROMASTER.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableROMASTER.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableROMASTER.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableROMASTER.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableROMASTER.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableROMASTER.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableROMASTER.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableROMASTER.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableROMASTER.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableROMASTER.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableROMASTER.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableROMASTER.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000002RowChangeEvent : global::System.EventArgs { - - private RO000002Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002RowChangeEvent(RO000002Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000003RowChangeEvent : global::System.EventArgs { - - private RO000003Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003RowChangeEvent(RO000003Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000004RowChangeEvent : global::System.EventArgs { - - private RO000004Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004RowChangeEvent(RO000004Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ROMASTERRowChangeEvent : global::System.EventArgs { - - private ROMASTERRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRowChangeEvent(ROMASTERRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROImport.ROMasterDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000002TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000002"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = "DELETE FROM RO000002\r\nWHERE (RecID = ?)"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = "UPDATE RO000002\r\nSET RecType = ?, ParentID = ?, AccPageID = " + - "?, ModDateTime = ?, Info = ?\r\nWHERE (RecID = ?)"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 32, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 14, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.WChar, 1024, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info\r\nFROM " + - " RO000002\r\nORDER BY RecID"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000002DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000002DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000002DataTable dataTable = new ROMasterDataSet.RO000002DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000002DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000002"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string RecID) { - if ((RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID) { - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[0].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Original_RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000003TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000003"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = "DELETE FROM RO000003\r\nWHERE (RecID = ?)"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE `RO000003` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info\r\nFROM " + - " RO000003\r\nORDER BY RecID"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000003DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000003DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000003DataTable dataTable = new ROMasterDataSet.RO000003DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000003DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000003"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string RecID) { - if ((RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((RecID == null)) { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[8].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - return this.Update(Original_RecID, RecType, ParentID, AccPageID, ModDateTime, Info, Original_RecID, Original_RecType, Original_ParentID, Original_AccPageID, Original_ModDateTime); - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000004TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000004"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = "DELETE FROM RO000004\r\nWHERE (RecID = ?)"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE `RO000004` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info\r\nFROM " + - " RO000004\r\nORDER BY RecID"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000004DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000004DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000004DataTable dataTable = new ROMasterDataSet.RO000004DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000004DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000004"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string RecID) { - if ((RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((RecID == null)) { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[8].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - return this.Update(Original_RecID, RecType, ParentID, AccPageID, ModDateTime, Info, Original_RecID, Original_RecType, Original_ParentID, Original_AccPageID, Original_ModDateTime); - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ROMASTERTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ROMASTER"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = @"DELETE FROM `ROMASTER` WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE `ROMASTER` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.ROMASTERDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.ROMASTERDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.ROMASTERDataTable dataTable = new ROMasterDataSet.ROMASTERDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.ROMASTERDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "ROMASTER"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((Original_RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[2].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((RecID == null)) { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[8].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - return this.Update(Original_RecID, RecType, ParentID, AccPageID, ModDateTime, Info, Original_RecID, Original_RecType, Original_ParentID, Original_AccPageID, Original_ModDateTime); - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsc b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsc deleted file mode 100644 index 5dbde4a4..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsc +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsd b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsd deleted file mode 100644 index df3552ac..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsd +++ /dev/null @@ -1,568 +0,0 @@ - - - - - - - - - - - - - - - - DELETE FROM RO000002 -WHERE (RecID = ?) - - - - - - - - - INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info -FROM RO000002 -ORDER BY RecID - - - - - - - UPDATE RO000002 -SET RecType = ?, ParentID = ?, AccPageID = ?, ModDateTime = ?, Info = ? -WHERE (RecID = ?) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETE FROM RO000003 -WHERE (RecID = ?) - - - - - - - - - INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info -FROM RO000003 -ORDER BY RecID - - - - - - - UPDATE `RO000003` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETE FROM RO000004 -WHERE (RecID = ?) - - - - - - - - - INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info -FROM RO000004 -ORDER BY RecID - - - - - - - UPDATE `RO000004` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETE FROM `ROMASTER` WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER - - - - - - - UPDATE `ROMASTER` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xss b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xss deleted file mode 100644 index d3aaa754..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xss +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/WestinghouseROImport.csproj b/PROMS/ROConvert/WestinghouseROImport/WestinghouseROImport.csproj deleted file mode 100644 index 2144bc25..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/WestinghouseROImport.csproj +++ /dev/null @@ -1,131 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {6E879177-F542-49A4-96AC-2384F469111C} - WinExe - Properties - WestinghouseROImport - WestinghouseROImport - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmROImport.cs - - - - - Designer - frmROImport.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - ROCPPImportDataSet.xsd - - - Designer - MSDataSetGenerator - ROCPPImportDataSet.Designer.cs - - - ROCPPImportDataSet.xsd - - - ROImportDataSet.xsd - - - Designer - MSDataSetGenerator - ROImportDataSet.Designer.cs - - - ROImportDataSet.xsd - - - ROMasterDataSet.xsd - - - Designer - MSDataSetGenerator - ROMasterDataSet.Designer.cs - - - ROMasterDataSet.xsd - - - True - Settings.settings - True - - - True - True - ROCPPImportDataSet.xsd - - - ROImportDataSet.xsd - Component - - - True - True - ROImportDataSet.xsd - - - True - True - ROMasterDataSet.xsd - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/app.config b/PROMS/ROConvert/WestinghouseROImport/app.config deleted file mode 100644 index fe114f06..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/frmROImport.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/frmROImport.Designer.cs deleted file mode 100644 index 16ca06fa..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/frmROImport.Designer.cs +++ /dev/null @@ -1,322 +0,0 @@ -namespace WestinghouseROImport -{ - partial class frmROImport - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setpointsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearOldDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.updateToCPPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.equipmentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearOldDataToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.importDataToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.updateToCPPToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.alarmsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearOldDataToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.importDataToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.updateToCPPToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tbStatus = new System.Windows.Forms.TextBox(); - this.rOImportDataSet = new WestinghouseROImport.ROImportDataSet(); - this.STPImportTableAdapter = new WestinghouseROImport.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter(); - this.MELImportTableAdapter = new WestinghouseROImport.ROImportDataSetTableAdapters.ImportMEL_qryTableAdapter(); - this.ARPImportTableAdapter = new WestinghouseROImport.ROImportDataSetTableAdapters.ImportARP_tblTableAdapter(); - this.rOMasterDataSet = new WestinghouseROImport.ROMasterDataSet(); - this.STPTableAdapter = new WestinghouseROImport.ROMasterDataSetTableAdapters.RO000002TableAdapter(); - this.MELTableAdapter = new WestinghouseROImport.ROMasterDataSetTableAdapters.RO000003TableAdapter(); - this.ARPTableAdapter = new WestinghouseROImport.ROMasterDataSetTableAdapters.RO000004TableAdapter(); - this.rOCPPImportDataSet = new WestinghouseROImport.ROCPPImportDataSet(); - this.ARPCPPImportTableAdapter = new WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportARP_tblTableAdapter(); - this.MELCPPImportTableAdapter = new WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportMEL_qryTableAdapter(); - this.STPCPPImportTableAdapter = new WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportSTP_qryTableAdapter(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOCPPImportDataSet)).BeginInit(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.setpointsToolStripMenuItem, - this.equipmentToolStripMenuItem, - this.alarmsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(667, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // setpointsToolStripMenuItem - // - this.setpointsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearOldDataToolStripMenuItem, - this.importDataToolStripMenuItem, - this.updateToCPPToolStripMenuItem}); - this.setpointsToolStripMenuItem.Name = "setpointsToolStripMenuItem"; - this.setpointsToolStripMenuItem.Size = new System.Drawing.Size(68, 20); - this.setpointsToolStripMenuItem.Text = "Setpoints"; - // - // clearOldDataToolStripMenuItem - // - this.clearOldDataToolStripMenuItem.Name = "clearOldDataToolStripMenuItem"; - this.clearOldDataToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.clearOldDataToolStripMenuItem.Text = "Clear Old Data"; - this.clearOldDataToolStripMenuItem.Click += new System.EventHandler(this.clearOldSetpointData_Click); - // - // importDataToolStripMenuItem - // - this.importDataToolStripMenuItem.Name = "importDataToolStripMenuItem"; - this.importDataToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.importDataToolStripMenuItem.Text = "Import Data"; - this.importDataToolStripMenuItem.Click += new System.EventHandler(this.importSetpointData_Click); - // - // updateToCPPToolStripMenuItem - // - this.updateToCPPToolStripMenuItem.Name = "updateToCPPToolStripMenuItem"; - this.updateToCPPToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.updateToCPPToolStripMenuItem.Text = "Update To CPP"; - this.updateToCPPToolStripMenuItem.Click += new System.EventHandler(this.updateToCPPSetpoints_Click); - // - // equipmentToolStripMenuItem - // - this.equipmentToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearOldDataToolStripMenuItem1, - this.importDataToolStripMenuItem1, - this.updateToCPPToolStripMenuItem1}); - this.equipmentToolStripMenuItem.Name = "equipmentToolStripMenuItem"; - this.equipmentToolStripMenuItem.Size = new System.Drawing.Size(77, 20); - this.equipmentToolStripMenuItem.Text = "Equipment"; - // - // clearOldDataToolStripMenuItem1 - // - this.clearOldDataToolStripMenuItem1.Name = "clearOldDataToolStripMenuItem1"; - this.clearOldDataToolStripMenuItem1.Size = new System.Drawing.Size(154, 22); - this.clearOldDataToolStripMenuItem1.Text = "Clear Old Data"; - this.clearOldDataToolStripMenuItem1.Click += new System.EventHandler(this.clearOldMELData_Click); - // - // importDataToolStripMenuItem1 - // - this.importDataToolStripMenuItem1.Name = "importDataToolStripMenuItem1"; - this.importDataToolStripMenuItem1.Size = new System.Drawing.Size(154, 22); - this.importDataToolStripMenuItem1.Text = "Import Data"; - this.importDataToolStripMenuItem1.Click += new System.EventHandler(this.importMELData_Click); - // - // updateToCPPToolStripMenuItem1 - // - this.updateToCPPToolStripMenuItem1.Name = "updateToCPPToolStripMenuItem1"; - this.updateToCPPToolStripMenuItem1.Size = new System.Drawing.Size(154, 22); - this.updateToCPPToolStripMenuItem1.Text = "Update To CPP"; - this.updateToCPPToolStripMenuItem1.Click += new System.EventHandler(this.updateToCPPEquipment_Click); - // - // alarmsToolStripMenuItem - // - this.alarmsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearOldDataToolStripMenuItem2, - this.importDataToolStripMenuItem2, - this.updateToCPPToolStripMenuItem2}); - this.alarmsToolStripMenuItem.Name = "alarmsToolStripMenuItem"; - this.alarmsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); - this.alarmsToolStripMenuItem.Text = "Alarms"; - // - // clearOldDataToolStripMenuItem2 - // - this.clearOldDataToolStripMenuItem2.Name = "clearOldDataToolStripMenuItem2"; - this.clearOldDataToolStripMenuItem2.Size = new System.Drawing.Size(154, 22); - this.clearOldDataToolStripMenuItem2.Text = "Clear Old Data"; - this.clearOldDataToolStripMenuItem2.Click += new System.EventHandler(this.clearOldARPData_Click); - // - // importDataToolStripMenuItem2 - // - this.importDataToolStripMenuItem2.Name = "importDataToolStripMenuItem2"; - this.importDataToolStripMenuItem2.Size = new System.Drawing.Size(154, 22); - this.importDataToolStripMenuItem2.Text = "Import Data"; - this.importDataToolStripMenuItem2.Click += new System.EventHandler(this.importARPData_Click); - // - // updateToCPPToolStripMenuItem2 - // - this.updateToCPPToolStripMenuItem2.Name = "updateToCPPToolStripMenuItem2"; - this.updateToCPPToolStripMenuItem2.Size = new System.Drawing.Size(154, 22); - this.updateToCPPToolStripMenuItem2.Text = "Update To CPP"; - this.updateToCPPToolStripMenuItem2.Click += new System.EventHandler(this.updateToCPPAlarms_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 533); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(667, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // tbStatus - // - this.tbStatus.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbStatus.Location = new System.Drawing.Point(0, 24); - this.tbStatus.Multiline = true; - this.tbStatus.Name = "tbStatus"; - this.tbStatus.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbStatus.Size = new System.Drawing.Size(667, 509); - this.tbStatus.TabIndex = 2; - // - // rOImportDataSet - // - this.rOImportDataSet.DataSetName = "ROImportDataSet"; - this.rOImportDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // STPImportTableAdapter - // - this.STPImportTableAdapter.ClearBeforeFill = true; - // - // MELImportTableAdapter - // - this.MELImportTableAdapter.ClearBeforeFill = true; - // - // ARPImportTableAdapter - // - this.ARPImportTableAdapter.ClearBeforeFill = true; - // - // rOMasterDataSet - // - this.rOMasterDataSet.DataSetName = "ROMasterDataSet"; - this.rOMasterDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // STPTableAdapter - // - this.STPTableAdapter.ClearBeforeFill = true; - // - // MELTableAdapter - // - this.MELTableAdapter.ClearBeforeFill = true; - // - // ARPTableAdapter - // - this.ARPTableAdapter.ClearBeforeFill = true; - // - // rOCPPImportDataSet - // - this.rOCPPImportDataSet.DataSetName = "ROCPPImportDataSet"; - this.rOCPPImportDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // ARPCPPImportTableAdapter - // - this.ARPCPPImportTableAdapter.ClearBeforeFill = true; - // - // MELCPPImportTableAdapter - // - this.MELCPPImportTableAdapter.ClearBeforeFill = true; - // - // STPCPPImportTableAdapter - // - this.STPCPPImportTableAdapter.ClearBeforeFill = true; - // - // frmROImport - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(667, 555); - this.Controls.Add(this.tbStatus); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmROImport"; - this.Text = "Westinghouse RO Import"; - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOCPPImportDataSet)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem setpointsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearOldDataToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripMenuItem importDataToolStripMenuItem; - private ROImportDataSet rOImportDataSet; - private WestinghouseROImport.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter STPImportTableAdapter; - private ROMasterDataSet rOMasterDataSet; - private WestinghouseROImport.ROMasterDataSetTableAdapters.RO000002TableAdapter STPTableAdapter; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.ToolStripMenuItem equipmentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearOldDataToolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem importDataToolStripMenuItem1; - private WestinghouseROImport.ROMasterDataSetTableAdapters.RO000003TableAdapter MELTableAdapter; - private WestinghouseROImport.ROMasterDataSetTableAdapters.RO000004TableAdapter ARPTableAdapter; - private WestinghouseROImport.ROImportDataSetTableAdapters.ImportMEL_qryTableAdapter MELImportTableAdapter; - private System.Windows.Forms.TextBox tbStatus; - private WestinghouseROImport.ROImportDataSetTableAdapters.ImportARP_tblTableAdapter ARPImportTableAdapter; - private System.Windows.Forms.ToolStripMenuItem alarmsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearOldDataToolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem importDataToolStripMenuItem2; - private ROCPPImportDataSet rOCPPImportDataSet; - private WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportARP_tblTableAdapter ARPCPPImportTableAdapter; - private WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportMEL_qryTableAdapter MELCPPImportTableAdapter; - private WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportSTP_qryTableAdapter STPCPPImportTableAdapter; - private System.Windows.Forms.ToolStripMenuItem updateToCPPToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem updateToCPPToolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem updateToCPPToolStripMenuItem2; - } -} - diff --git a/PROMS/ROConvert/WestinghouseROImport/frmROImport.cs b/PROMS/ROConvert/WestinghouseROImport/frmROImport.cs deleted file mode 100644 index 6c65193d..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/frmROImport.cs +++ /dev/null @@ -1,815 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace WestinghouseROImport -{ - public partial class frmROImport : Form - { - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - public frmROImport() - { - InitializeComponent(); - } - private string _STPDBRecID = ""; - public string STPDBRecID - { - get { return _STPDBRecID; } - set { _STPDBRecID = value; } - } - private void clearOldSetpointData_Click(object sender, EventArgs e) - { - int count = ClearSetpointData(); - MessageBox.Show(string.Format("{0} setpoint records deleted", count), "Purge", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private int ClearSetpointData() - { - STPTableAdapter.Fill(this.rOMasterDataSet.RO000002); - DataTable dto = STPTableAdapter.GetData(); - List deleteList = new List(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - deleteList.Add(dr); - } - else - { - STPDBRecID = dr["RecID"].ToString(); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - deleteList.Add(dr); - } - } - int count = deleteList.Count; - while (deleteList.Count > 0) - { - DataRow dr = deleteList[0]; - dr.Delete(); - STPTableAdapter.Update(dr); - deleteList.RemoveAt(0); - } - return count; - } - private Dictionary _SetpointParameters; - public Dictionary SetpointParameters - { - get { return _SetpointParameters; } - set { _SetpointParameters = value; } - } - private DataRow _DrCount; - public DataRow DrCount - { - get { return _DrCount; } - set { _DrCount = value; } - } - private void importSetpointData_Click(object sender, EventArgs e) - { - DateTime dtStart = DateTime.Now; - ClearSetpointData(); - STPTableAdapter.Fill(this.rOMasterDataSet.RO000002); - STPImportTableAdapter.Fill(this.rOImportDataSet.ImportSTP_qry); - DataTable dto = STPTableAdapter.GetData(); - DrCount = dto.Rows[0]; - DataTable dti = STPImportTableAdapter.GetData(); - SetpointParameters = new Dictionary(); - foreach (DataRow dr in dti.Rows) - { - // Parameter Name Value Description - //Console.WriteLine("Parameter = '{0}', Name = '{1}', Value = '{2}', Description = '{3}'", - // dr["Parameter"], dr["Name"], dr["Value"], dr["Description"]); - MyStatus = dr["Name"].ToString(); - AddSetpoint(dr["Parameter"].ToString(), dr["Name"].ToString(), dr["Value"].ToString(), dr["Description"].ToString()); - } - STPTableAdapter.Update(DrCount); - DateTime dtEnd = DateTime.Now; - MyStatus = string.Format("{0} Setpoint ROs added in {1} seconds", dti.Rows.Count,TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds); - MessageBox.Show(string.Format("{0} ROs added", dti.Rows.Count), "ROs Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void AddSetpoint(string parameter, string id, string value, string description) - { - string parentid = AddSetpointParameter(parameter); - string recid = GetNextSTPRecID(); - string rovalue = BuildSTPROValue(id, value, description); - STPTableAdapter.Insert(recid, 5, parentid, id, DateTimeStamp, rovalue); - } - public string DateTimeStamp - { - get {return DateTime.Now.ToString("yyyyMMddHHmm");} - } - private string GetNextSTPRecID() - { - string nextRec = DrCount["Info"].ToString(); - nextRec = string.Format("{0:x08}", Convert.ToInt32(nextRec,16) + 1); - DrCount["Info"] = nextRec; - //STPTableAdapter.Update(DrCount); - //Console.WriteLine("ID = {0}", nextRec); - return nextRec; - } - private string BuildSTPROValue(string id, string value, string description) - { - value = FixSpecialCharacters(value); - description = FixSpecialCharacters(description); - return string.Format("{1}{0}{2}" - ,id,value,description); - } - private string FixSpecialCharacters(string str) - { - string str2 = str.Trim(); - StringBuilder sb = new StringBuilder(); - foreach (char c in str2) - { - switch (c) - { - case '"': - sb.Append("""); - break; - case '&': - sb.Append("&"); - break; - case '<': - sb.Append("<"); - break; - case '>': - sb.Append(">"); - break; - case '\xA0': - sb.Append(' '); - break; - case '\x1E': - sb.Append('-'); - break; - case '\xB0': - sb.Append(c); - break; - case '\u2013': - sb.Append('-'); - break; - default: - if (c < ' ' || c > '\x7F') - { - sb.Append(string.Format("[x{0:X}]", (int)c)); - } - else - sb.Append(c); - break; - } - } - return sb.ToString(); - } - private string AddSetpointParameter(string parameter) - { - if (!SetpointParameters.ContainsKey(parameter)) - { - string recid = GetNextSTPRecID(); - string paramValue = BuildSTPParam(parameter); - STPTableAdapter.Insert(recid, 3, STPDBRecID, null, DateTimeStamp, paramValue); - SetpointParameters.Add(parameter, recid); - } - return SetpointParameters[parameter]; - } - private string BuildSTPParam(string parameter) - { - return string.Format("{0}", parameter); - } - private void clearOldMELData_Click(object sender, EventArgs e) - { - // Clear Old MEL Data - int count = ClearMELData(); - MessageBox.Show(string.Format("{0} MEL records deleted", count), "Purge", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private string MELDBRecID; - private int ClearMELData() - { - MELTableAdapter.Fill(this.rOMasterDataSet.RO000003); - DataTable dto = MELTableAdapter.GetData(); - List deleteList = new List(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - deleteList.Add(dr); - } - else - { - MELDBRecID = dr["RecID"].ToString(); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - deleteList.Add(dr); - } - } - int count = deleteList.Count; - while (deleteList.Count > 0) - { - DataRow dr = deleteList[0]; - dr.Delete(); - MELTableAdapter.Update(dr); - deleteList.RemoveAt(0); - } - return count; - } - Dictionary _MELSystems; - public Dictionary MELSystems - { - get { return _MELSystems; } - set { _MELSystems = value; } - } - Dictionary _MELSysComp; - public Dictionary MELSysComps - { - get { return _MELSysComp; } - set { _MELSysComp = value; } - } - private void importMELData_Click(object sender, EventArgs e) - { - DateTime dtStart = DateTime.Now; - ClearMELData(); - MELTableAdapter.Fill(this.rOMasterDataSet.RO000003); - MELImportTableAdapter.Fill(this.rOImportDataSet.ImportMEL_qry); - DataTable dto = MELTableAdapter.GetData(); - DrCount = dto.Rows[0]; - DataTable dti = MELImportTableAdapter.GetData(); - MELSystems = new Dictionary(); - MELSysComps = new Dictionary(); - int recsAdded = 0; - DateTime justASecHoney = DateTime.Now + TimeSpan.FromSeconds(10); - int lastAdded = 0; - DateTime lastTime = DateTime.Now; - foreach (DataRow dr in dti.Rows) - { - recsAdded++; - // Parameter Name Value Description - //Console.WriteLine("Parameter = '{0}', Name = '{1}', Value = '{2}', Description = '{3}'", - // dr["Parameter"], dr["Name"], dr["Value"], dr["Description"]); - MyStatus = dr["FullName"].ToString(); - AddMEL(dr["SystemID"].ToString(), dr["SystemDesc"].ToString(), dr["ComponentID"].ToString(), dr["CompDesc"].ToString() - , dr["FullName"].ToString(), dr["ShortName"].ToString(), dr["Room"].ToString(), dr["Description"].ToString(), dr["CommonDesc"].ToString()); - DateTime tNow = DateTime.Now; - if (tNow > justASecHoney) - { - int remaining = dti.Rows.Count - recsAdded; - TimeSpan elapsed = tNow - lastTime; - TimeSpan total = tNow - dtStart; - int processed = recsAdded - lastAdded; - lastTime = tNow; - lastAdded = recsAdded; - DateTime eta1 = tNow + TimeSpan.FromTicks(elapsed.Ticks * remaining / processed); - DateTime eta2 = tNow + TimeSpan.FromTicks(total.Ticks * remaining / recsAdded); - AddStatusText("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", tNow.ToString("HH:mm:ss"), processed, - recsAdded, remaining, eta1.ToString("HH:mm:ss"), eta2.ToString("HH:mm:ss")); - justASecHoney += TimeSpan.FromSeconds(10); - } - } - AddStatusText("{0}\t{1}\t{2}\t{3}", DateTime.Now.ToString("HH:mm:ss"), recsAdded - lastAdded, recsAdded, 0); - MELTableAdapter.Update(DrCount); - DateTime dtEnd = DateTime.Now; - MyStatus = string.Format("{0} MEL ROs added in {1} seconds", dti.Rows.Count, TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds); - MessageBox.Show(string.Format("{0} MEL ROs added", dti.Rows.Count), "ROs Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void AddMEL(string systemID, string systemDesc, string ComponentID, string CompDesc, string FullName, string ShortName, string Room, string Description, string CommonDesc) - { - string parentid = AddMELSystemComponent(systemID,systemDesc,ComponentID,CompDesc); - string recid = GetNextMELRecID(); - string rovalue = BuildMELROValue(FullName,ShortName,Room,Description,CommonDesc); - MELTableAdapter.Insert(recid, 5, parentid, FullName, DateTimeStamp, rovalue); - } - private string BuildMELROValue(string FullName, string ShortName, string Room, string Description, string CommonDesc) - { - FullName = FixSpecialCharacters(FullName); - ShortName = FixSpecialCharacters(ShortName); - Room = FixSpecialCharacters(Room); - Description = FixSpecialCharacters(Description); - CommonDesc = FixSpecialCharacters(CommonDesc); - return string.Format("{1}{0}" + - "{3}{2}",FullName,ShortName,Room,Description, - CommonDesc); // ComonDesc will not load because it has no token {4} - } - private string GetNextMELRecID() - { - string nextRec = DrCount["Info"].ToString(); - nextRec = string.Format("{0:x08}", Convert.ToInt32(nextRec, 16) + 1); - DrCount["Info"] = nextRec; - //MELTableAdapter.Update(DrCount); - //Console.WriteLine("ID = {0}", nextRec); - return nextRec; - } - private string AddMELSystemComponent(string systemID, string systemDesc, string ComponentID, string CompDesc) - { - string key = systemID + "|" + ComponentID; - if (!MELSysComps.ContainsKey(key)) - { - string sysRecID = AddMELSystem(systemID, systemDesc); - string recid = GetNextMELRecID(); - string compValue = BuildMELComponent(ComponentID,CompDesc); - MELTableAdapter.Insert(recid, 3, sysRecID, null, DateTimeStamp, compValue); - MELSysComps.Add(key, recid); - } - return MELSysComps[key]; - } - private string BuildMELComponent(string ComponentID, string CompDesc) - { - ComponentID = FixSpecialCharacters(ComponentID); - CompDesc = FixSpecialCharacters(CompDesc); - return string.Format("{1}" + - "{0}", ComponentID, CompDesc); - } - private string AddMELSystem(string systemID, string systemDesc) - { - if (!MELSystems.ContainsKey(systemID)) - { - string recid = GetNextMELRecID(); - string sysValue = BuildMELSystem(systemID,systemDesc); - MELTableAdapter.Insert(recid, 3, MELDBRecID, null, DateTimeStamp, sysValue); - MELSystems.Add(systemID, recid); - } - return MELSystems[systemID]; - } - private string BuildMELSystem(string systemID, string systemDesc) - { - systemID = FixSpecialCharacters(systemID); - systemDesc = FixSpecialCharacters(systemDesc); - return string.Format("{1}{0}", systemID, systemID); - } - private void AddStatusText(string format, params object []args) - { - tbStatus.Select(tbStatus.TextLength, 0); - tbStatus.SelectedText=string.Format(format, args) + "\r\n"; - } - private void clearOldARPData_Click(object sender, EventArgs e) - { - ClearARPData(); - } - private string ARPDBRecID; - private int ClearARPData() - { - ARPTableAdapter.Fill(this.rOMasterDataSet.RO000004); - DataTable dto = ARPTableAdapter.GetData(); - List deleteList = new List(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - deleteList.Add(dr); - } - else - { - ARPDBRecID = dr["RecID"].ToString(); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - deleteList.Add(dr); - } - } - int count = deleteList.Count; - while (deleteList.Count > 0) - { - DataRow dr = deleteList[0]; - dr.Delete(); - ARPTableAdapter.Update(dr); - deleteList.RemoveAt(0); - } - return count; - } - private Dictionary _ARPDocuments; - public Dictionary ARPDocuments - { - get { return _ARPDocuments; } - set { _ARPDocuments = value; } - } - private Dictionary _ARPSystems; - public Dictionary ARPSystems - { - get { return _ARPSystems; } - set { _ARPSystems = value; } - } - private void importARPData_Click(object sender, EventArgs e) - { - ARPImportTableAdapter.Fill(this.rOImportDataSet.ImportARP_tbl); - DateTime dtStart = DateTime.Now; - ClearARPData(); - ARPTableAdapter.Fill(this.rOMasterDataSet.RO000004); - ARPImportTableAdapter.Fill(this.rOImportDataSet.ImportARP_tbl); - DataTable dto = ARPTableAdapter.GetData(); - DrCount = dto.Rows[0]; - DataTable dti = ARPImportTableAdapter.GetData(); - ARPDocuments = new Dictionary(); - ARPSystems = new Dictionary(); - int recsAdded = 0; - DateTime justASecHoney = DateTime.Now + TimeSpan.FromSeconds(10); - int lastAdded = 0; - DateTime lastTime = DateTime.Now; - foreach (DataRow dr in dti.Rows) - { - recsAdded++; - // Parameter Name Value Description - //Console.WriteLine("Parameter = '{0}', Name = '{1}', Value = '{2}', Description = '{3}'", - // dr["Parameter"], dr["Name"], dr["Value"], dr["Description"]); - MyStatus = dr["Alarm"].ToString(); - AddARP(dr["Document"].ToString(), dr["Alarm"].ToString(), dr["PointName"].ToString(), dr["Type"].ToString() - , dr["Value"].ToString(), dr["Description"].ToString(), dr["SystemID"].ToString(), dr["SysTitle"].ToString()); - DateTime tNow = DateTime.Now; - if (tNow > justASecHoney) - { - int remaining = dti.Rows.Count - recsAdded; - TimeSpan elapsed = tNow - lastTime; - TimeSpan total = tNow - dtStart; - int processed = recsAdded - lastAdded; - lastTime = tNow; - lastAdded = recsAdded; - DateTime eta1 = tNow + TimeSpan.FromTicks(elapsed.Ticks * remaining / processed); - DateTime eta2 = tNow + TimeSpan.FromTicks(total.Ticks * remaining / recsAdded); - AddStatusText("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", tNow.ToString("HH:mm:ss"), processed, - recsAdded, remaining, eta1.ToString("HH:mm:ss"), eta2.ToString("HH:mm:ss")); - justASecHoney += TimeSpan.FromSeconds(10); - } - } - AddStatusText("{0}\t{1}\t{2}\t{3}", DateTime.Now.ToString("HH:mm:ss"), recsAdded - lastAdded, recsAdded, 0); - ARPTableAdapter.Update(DrCount); - DateTime dtEnd = DateTime.Now; - MyStatus = string.Format("{0} ARP ROs added in {1} seconds", dti.Rows.Count, TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds); - MessageBox.Show(string.Format("{0} ARP ROs added", dti.Rows.Count), "ROs Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void AddARP(string document, string alarm, string pointName, string type, string value, string description, string systemID, string systemTitle) - { - string parentid = AddARPDocumentSystem(document,systemID,systemTitle); - string recid = GetNextARPRecID(); - string rovalue = BuildARPROValue(alarm, pointName, type, value, description, systemID); - ARPTableAdapter.Insert(recid, 5, parentid, alarm, DateTimeStamp, rovalue); - } - private string BuildARPROValue(string alarm, string pointName, string type, string value, string description, string systemID) - { - alarm = FixSpecialCharacters(alarm); - pointName = FixSpecialCharacters(pointName); - type = FixSpecialCharacters(type); - value = FixSpecialCharacters(value); - description = FixSpecialCharacters(description); - systemID = FixSpecialCharacters(systemID); - return string.Format("{0}{1}{2}" + - "{3}{4}{5}", - alarm,pointName,type,value,description,systemID); - } - private string GetNextARPRecID() - { - string nextRec = DrCount["Info"].ToString(); - nextRec = string.Format("{0:x08}", Convert.ToInt32(nextRec, 16) + 1); - DrCount["Info"] = nextRec; - return nextRec; - } - private string AddARPDocumentSystem(string document, string systemID, string systemTitle) - { - if (!ARPDocuments.ContainsKey(document)) - { - string recid = GetNextARPRecID(); - string documentValue = BuildARPDocument(document); - ARPTableAdapter.Insert(recid, 3, ARPDBRecID, null, DateTimeStamp, documentValue); - ARPDocuments.Add(document, recid); - } - if(document != "None") return ARPDocuments[document]; - string parentID = ARPDocuments[document]; - if (!ARPSystems.ContainsKey(systemID)) - { - string recid = GetNextARPRecID(); - string documentValue = BuildARPSystem(systemID,systemTitle); - ARPTableAdapter.Insert(recid, 3, parentID , null, DateTimeStamp, documentValue); - ARPSystems.Add(systemID, recid); - } - return ARPSystems[systemID]; - } - private string BuildARPSystem(string systemID, string systemTitle) - { - systemID = FixSpecialCharacters(systemID); - systemTitle = FixSpecialCharacters(systemTitle); - return string.Format("{1}{0}", systemID, systemTitle); - } - private string BuildARPDocument(string document) - { - if(document != "None") - return string.Format("{0}", document); - else - return string.Format("{0}",document); - } - private void updateToCPPSetpoints_Click(object sender, EventArgs e) - { - Dictionary parentCount = new Dictionary(); - Dictionary parentDictionary = new Dictionary(); - Dictionary roDictionary = new Dictionary(); - ROMasterDataSet.RO000002DataTable dto = STPTableAdapter.GetData(); - BuildSTPDictionaries(dto, parentCount, parentDictionary, roDictionary); - STPCPPImportTableAdapter.Fill(this.rOCPPImportDataSet.ImportSTP_qry); - ROCPPImportDataSet.ImportSTP_qryDataTable dti = STPCPPImportTableAdapter.GetData(); - int updateCount = 0; - int updatePCount = 0; - foreach (DataRow dr in dti.Rows) - { - string accPageID = dr["Name"].ToString().Trim(); - if (roDictionary.ContainsKey(accPageID)) - { - DataRow dro = roDictionary[accPageID]; - roDictionary.Remove(accPageID); - string info = BuildSTPROValue(dr["Name"].ToString(), dr["Value"].ToString(), dr["Description"].ToString()); - string infoOld = dro["Info"].ToString(); - if (info != infoOld) - { - dro["Info"] = info; - dro["ModDateTime"] = DateTimeStamp; - STPTableAdapter.Update(dro); - MyStatus = "Updating " + accPageID; - AddStatusText("Updating {0}", accPageID); - updateCount++; - } - } - else - { - //if dro is null because accpageid does not exist, need to add including figuring out parent status and adding parent if it does not exist - //get parent for new ro - //see if parent exists - MessageBox.Show("oh oh, new ro exists"); - } - } - - MyStatus = string.Format("{0} ROs Updated", updateCount); - AddStatusText("RO Rows Updated: {0}", updateCount); - // What has not been processed - updateCount = 0; - foreach (string key in roDictionary.Keys) - { - DataRow dr = roDictionary[key]; - string parentID = dr["ParentID"].ToString().Trim(); - dr.Delete(); - STPTableAdapter.Update(dr); - MyStatus = string.Format("Deleting {0}", key); - AddStatusText("Deleting {0}", key); - updateCount++; - parentCount[parentID]--; - if (parentCount[parentID] == 0) - { - DataRow drp = parentDictionary[parentID]; - string grandparentID = drp["ParentID"].ToString().Trim(); - drp.Delete(); - STPTableAdapter.Update(drp); - MyStatus = string.Format("Deleting Parent {0}", parentID); - AddStatusText("Deleting Parent {0}", parentID); - updatePCount++; - parentCount[grandparentID]--; - if (parentCount[grandparentID] == 0) - { - DataRow drgp = parentDictionary[grandparentID]; - drgp.Delete(); - STPTableAdapter.Update(drgp); - MyStatus = string.Format("Deleting GrandParent {0}", grandparentID); - AddStatusText("Deleting GrandParent {0}", grandparentID); - updatePCount++; - } - } - } - MyStatus = string.Format("{0} ROs Deleted, {1} RO Parent/GrandParent Ros Deleted", updateCount, updatePCount); - AddStatusText("RO Rows Deleted: {0}, RO Parent/GrandParent Rows Deleted {1}", updateCount, updatePCount); - } - private void BuildSTPDictionaries(ROMasterDataSet.RO000002DataTable dto, Dictionary parentCount, Dictionary parentRow, Dictionary dataRow) - { - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - parentRow.Add(dr["RecID"].ToString().Trim(), dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - string accPageID = dr["AccPageID"].ToString().Trim(); - dataRow.Add(accPageID, dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - } - private void BuildARPDictionaries(ROMasterDataSet.RO000004DataTable dto, Dictionary parentCount, Dictionary parentRow, Dictionary dataRow) - { - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - parentRow.Add(dr["RecID"].ToString().Trim(), dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - string accPageID = dr["AccPageID"].ToString().Trim(); - dataRow.Add(accPageID, dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - } - private void AddToParentCount(Dictionary parentCount, string parentID) - { - if (!parentCount.ContainsKey(parentID)) - parentCount.Add(parentID, 0); - parentCount[parentID]++; - } - private void BuildMELDictionaries(ROMasterDataSet.RO000003DataTable dto, Dictionary parentCount, Dictionary parentRow, Dictionary dataRow) - { - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - parentRow.Add(dr["RecID"].ToString().Trim(), dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - string accPageID = dr["AccPageID"].ToString().Trim(); - dataRow.Add(accPageID, dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - } - private void updateToCPPEquipment_Click(object sender, EventArgs e) - { - Dictionary parentCount = new Dictionary(); - Dictionary parentDictionary = new Dictionary(); - Dictionary roDictionary = new Dictionary(); - ROMasterDataSet.RO000003DataTable dto = MELTableAdapter.GetData(); - BuildMELDictionaries(dto, parentCount, parentDictionary, roDictionary); - MELCPPImportTableAdapter.Fill(this.rOCPPImportDataSet.ImportMEL_qry); - ROCPPImportDataSet.ImportMEL_qryDataTable dti = MELCPPImportTableAdapter.GetData(); - int updateCount = 0; - int updatePCount = 0; - foreach (DataRow dr in dti.Rows) - { - string accPageID = dr["FullName"].ToString().Trim(); - if (roDictionary.ContainsKey(accPageID)) - { - DataRow dro = roDictionary[accPageID]; - roDictionary.Remove(accPageID); - string info = BuildMELROValue(dr["Fullname"].ToString(), dr["ShortName"].ToString(), dr["Room"].ToString(), dr["Description"].ToString(), dr["CommonDesc"].ToString()); - string infoOld = dro["Info"].ToString(); - if (info != infoOld) - { - dro["Info"] = info; - dro["ModDateTime"] = DateTimeStamp; - MELTableAdapter.Update(dro); - MyStatus = "Updating " + accPageID; - AddStatusText("Updating {0}", accPageID); - updateCount++; - } - } - else - { - //if dro is null because accpageid does not exist, need to add including figuring out parent status and adding parent if it does not exist - //get parent for new ro - //see if parent exists - AddStatusText("********** new mel item '{0}' **********", accPageID); - } - } - - MyStatus = string.Format("{0} ROs Updated", updateCount); - AddStatusText("RO Rows Updated: {0}", updateCount); - // What has not been processed - updateCount = 0; - foreach (string key in roDictionary.Keys) - { - if (key == "CCS-EJ-PLV200") - System.Threading.Thread.Sleep(1000); - DataRow dr = roDictionary[key]; - string parentID = dr["ParentID"].ToString().Trim(); - dr.Delete(); - MELTableAdapter.Update(dr); - MyStatus = string.Format("Deleting {0}", key); - AddStatusText("Deleting '{0}'", key); - updateCount++; - parentCount[parentID]--; - if (parentCount[parentID] == 0) - { - DataRow drp = parentDictionary[parentID]; - string grandparentID = drp["ParentID"].ToString().Trim(); - drp.Delete(); - MELTableAdapter.Update(drp); - MyStatus = string.Format("Deleting Parent {0}", parentID); - AddStatusText("Deleting Parent {0}", parentID); - updatePCount++; - parentCount[grandparentID]--; - if (parentCount[grandparentID] == 0) - { - DataRow drgp = parentDictionary[grandparentID]; - drgp.Delete(); - MELTableAdapter.Update(drgp); - MyStatus = string.Format("Deleting GrandParent {0}", grandparentID); - AddStatusText("Deleting GrandParent {0}", grandparentID); - updatePCount++; - } - } - } - MyStatus = string.Format("{0} ROs Deleted, {1} RO Parent/GrandParent Ros Deleted", updateCount, updatePCount); - AddStatusText("RO Rows Deleted: {0}, RO Parent/GrandParent Rows Deleted {1}", updateCount, updatePCount); - } - private void updateToCPPAlarms_Click(object sender, EventArgs e) - { - Dictionary parentCount = new Dictionary(); - Dictionary parentDictionary = new Dictionary(); - Dictionary roDictionary = new Dictionary(); - ROMasterDataSet.RO000004DataTable dto = ARPTableAdapter.GetData(); - BuildARPDictionaries(dto, parentCount, parentDictionary, roDictionary); - //why is this not a query versus a table - ARPCPPImportTableAdapter.Fill(this.rOCPPImportDataSet.ImportARP_tbl); - ROCPPImportDataSet.ImportARP_tblDataTable dti = ARPCPPImportTableAdapter.GetData(); - int updateCount = 0; - int updatePCount = 0; - int addCount = 0; - foreach (DataRow dr in dti.Rows) - { - string accPageID = dr["Alarm"].ToString().Trim(); - if (roDictionary.ContainsKey(accPageID)) - { - DataRow dro = roDictionary[accPageID]; - roDictionary.Remove(accPageID); - string info = BuildARPROValue(dr["Alarm"].ToString(), dr["PointName"].ToString(), dr["Type"].ToString(), dr["Value"].ToString(), dr["Description"].ToString(), dr["SystemID"].ToString()); - string infoOld = dro["Info"].ToString(); - if (info != infoOld) - { - dro["Info"] = info; - dro["ModDateTime"] = DateTimeStamp; - ARPTableAdapter.Update(dro); - MyStatus = "Updating " + accPageID; - AddStatusText("Updating {0}", accPageID); - updateCount++; - } - } - else - { - //if dro is null because accpageid does not exist, need to add including figuring out parent status and adding parent if it does not exist - //get parent for new ro - //see if parent exists - AddStatusText("********** new arp item '{0}' **********", accPageID); - addCount++; - } - } - - MyStatus = string.Format("{0} ROs Updated", updateCount); - AddStatusText("RO Rows Updated: {0}", updateCount); - AddStatusText("RO Rows Added: {0}", addCount); - // What has not been processed - updateCount = 0; - foreach (string key in roDictionary.Keys) - { - DataRow dr = roDictionary[key]; - string parentID = dr["ParentID"].ToString().Trim(); - dr.Delete(); - ARPTableAdapter.Update(dr); - MyStatus = string.Format("Deleting {0}", key); - AddStatusText("Deleting '{0}'", key); - updateCount++; - parentCount[parentID]--; - if (parentCount[parentID] == 0) - { - DataRow drp = parentDictionary[parentID]; - string grandparentID = drp["ParentID"].ToString().Trim(); - drp.Delete(); - ARPTableAdapter.Update(drp); - MyStatus = string.Format("Deleting Parent {0}", parentID); - AddStatusText("Deleting Parent {0}", parentID); - updatePCount++; - parentCount[grandparentID]--; - if (parentCount[grandparentID] == 0) - { - DataRow drgp = parentDictionary[grandparentID]; - drgp.Delete(); - ARPTableAdapter.Update(drgp); - MyStatus = string.Format("Deleting GrandParent {0}", grandparentID); - AddStatusText("Deleting GrandParent {0}", grandparentID); - updatePCount++; - } - } - } - MyStatus = string.Format("{0} ROs Deleted, {1} RO Parent/GrandParent Ros Deleted", updateCount, updatePCount); - AddStatusText("RO Rows Deleted: {0}, RO Parent/GrandParent Rows Deleted {1}", updateCount, updatePCount); - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/frmROImport.resx b/PROMS/ROConvert/WestinghouseROImport/frmROImport.resx deleted file mode 100644 index a3ef2ffc..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/frmROImport.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 132, 17 - - - 248, 17 - - - 393, 17 - - - 451, 54 - - - 17, 93 - - - 575, 17 - - - 17, 56 - - - 162, 56 - - - 310, 56 - - - 201, 93 - - - 570, 93 - - - 17, 132 - - - 367, 93 - - - 180 - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/Program.cs b/PROMS/ROConvert/WestinghouseROLoad/Program.cs deleted file mode 100644 index 8efc0548..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace WestinghouseROLoad -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmImportROs()); - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/AssemblyInfo.cs b/PROMS/ROConvert/WestinghouseROLoad/Properties/AssemblyInfo.cs deleted file mode 100644 index 53561435..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WestinghouseROLoad")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("WestinghouseROLoad")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c84794b0-8874-4a1b-bb08-68b7f2f00adc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.Designer.cs deleted file mode 100644 index 900dbda2..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROLoad.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WestinghouseROLoad.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.resx b/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.Designer.cs deleted file mode 100644 index 9a33b6ec..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.Designer.cs +++ /dev/null @@ -1,46 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROLoad.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\RO\\ROMaster.mdb")] - public string ROMasterConnectionString { - get { - return ((string)(this["ROMasterConnectionString"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\ROImport.mdb")] - public string ROImportConnectionString { - get { - return ((string)(this["ROImportConnectionString"])); - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.settings b/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.settings deleted file mode 100644 index b1433c7b..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.settings +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.Designer.cs deleted file mode 100644 index 17b1e6f4..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.Designer.cs +++ /dev/null @@ -1,812 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROLoad { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROImportDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROImportDataSet : global::System.Data.DataSet { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROImportDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROImportDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportSTP_qryDataTable ImportSTP_qry { - get { - return this.tableImportSTP_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROImportDataSet cln = ((ROImportDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(base.Tables["ImportSTP_qry"])); - if ((initTable == true)) { - if ((this.tableImportSTP_qry != null)) { - this.tableImportSTP_qry.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROImportDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROImportDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableImportSTP_qry = new ImportSTP_qryDataTable(); - base.Tables.Add(this.tableImportSTP_qry); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportSTP_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void ImportSTP_qryRowChangeEventHandler(object sender, ImportSTP_qryRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportSTP_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnParameter; - - private global::System.Data.DataColumn columnName; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryDataTable() { - this.TableName = "ImportSTP_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportSTP_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParameterColumn { - get { - return this.columnParameter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn NameColumn { - get { - return this.columnName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow this[int index] { - get { - return ((ImportSTP_qryRow)(this.Rows[index])); - } - } - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanging; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanged; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleting; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow AddImportSTP_qryRow(string Parameter, string Name, string Value, string Description) { - ImportSTP_qryRow rowImportSTP_qryRow = ((ImportSTP_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Parameter, - Name, - Value, - Description}; - rowImportSTP_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportSTP_qryRow); - return rowImportSTP_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportSTP_qryDataTable cln = ((ImportSTP_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportSTP_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnParameter = base.Columns["Parameter"]; - this.columnName = base.Columns["Name"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnParameter = new global::System.Data.DataColumn("Parameter", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParameter); - this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnName); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnParameter.MaxLength = 255; - this.columnName.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow NewImportSTP_qryRow() { - return ((ImportSTP_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportSTP_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportSTP_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportSTP_qryRowChanged != null)) { - this.ImportSTP_qryRowChanged(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportSTP_qryRowChanging != null)) { - this.ImportSTP_qryRowChanging(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportSTP_qryRowDeleted != null)) { - this.ImportSTP_qryRowDeleted(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportSTP_qryRowDeleting != null)) { - this.ImportSTP_qryRowDeleting(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportSTP_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportSTP_qryRow : global::System.Data.DataRow { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Parameter { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ParameterColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Parameter\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ParameterColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Name { - get { - try { - return ((string)(this[this.tableImportSTP_qry.NameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Name\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.NameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportSTP_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParameterNull() { - return this.IsNull(this.tableImportSTP_qry.ParameterColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParameterNull() { - this[this.tableImportSTP_qry.ParameterColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsNameNull() { - return this.IsNull(this.tableImportSTP_qry.NameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetNameNull() { - this[this.tableImportSTP_qry.NameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportSTP_qry.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportSTP_qry.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportSTP_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportSTP_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportSTP_qryRowChangeEvent : global::System.EventArgs { - - private ImportSTP_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRowChangeEvent(ImportSTP_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROLoad.ROImportDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportSTP_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportSTP_qry"; - tableMapping.ColumnMappings.Add("Parameter", "Parameter"); - tableMapping.ColumnMappings.Add("Name", "Name"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportSTP_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportSTP_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportSTP_qryDataTable dataTable = new ROImportDataSet.ImportSTP_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsc b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsc deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsc +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsd b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsd deleted file mode 100644 index fb76c5df..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsd +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xss b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xss deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xss +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.Designer.cs deleted file mode 100644 index ec82af39..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.Designer.cs +++ /dev/null @@ -1,3242 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROLoad { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROMasterDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROMasterDataSet : global::System.Data.DataSet { - - private RO000002DataTable tableRO000002; - - private RO000003DataTable tableRO000003; - - private RO000004DataTable tableRO000004; - - private ROMASTERDataTable tableROMASTER; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMasterDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMasterDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000002DataTable RO000002 { - get { - return this.tableRO000002; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000003DataTable RO000003 { - get { - return this.tableRO000003; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000004DataTable RO000004 { - get { - return this.tableRO000004; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ROMASTERDataTable ROMASTER { - get { - return this.tableROMASTER; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROMasterDataSet cln = ((ROMasterDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableRO000002 = ((RO000002DataTable)(base.Tables["RO000002"])); - if ((initTable == true)) { - if ((this.tableRO000002 != null)) { - this.tableRO000002.InitVars(); - } - } - this.tableRO000003 = ((RO000003DataTable)(base.Tables["RO000003"])); - if ((initTable == true)) { - if ((this.tableRO000003 != null)) { - this.tableRO000003.InitVars(); - } - } - this.tableRO000004 = ((RO000004DataTable)(base.Tables["RO000004"])); - if ((initTable == true)) { - if ((this.tableRO000004 != null)) { - this.tableRO000004.InitVars(); - } - } - this.tableROMASTER = ((ROMASTERDataTable)(base.Tables["ROMASTER"])); - if ((initTable == true)) { - if ((this.tableROMASTER != null)) { - this.tableROMASTER.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROMasterDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROMasterDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableRO000002 = new RO000002DataTable(); - base.Tables.Add(this.tableRO000002); - this.tableRO000003 = new RO000003DataTable(); - base.Tables.Add(this.tableRO000003); - this.tableRO000004 = new RO000004DataTable(); - base.Tables.Add(this.tableRO000004); - this.tableROMASTER = new ROMASTERDataTable(); - base.Tables.Add(this.tableROMASTER); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000002() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000003() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000004() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeROMASTER() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void RO000002RowChangeEventHandler(object sender, RO000002RowChangeEvent e); - - public delegate void RO000003RowChangeEventHandler(object sender, RO000003RowChangeEvent e); - - public delegate void RO000004RowChangeEventHandler(object sender, RO000004RowChangeEvent e); - - public delegate void ROMASTERRowChangeEventHandler(object sender, ROMASTERRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000002DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002DataTable() { - this.TableName = "RO000002"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000002DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row this[int index] { - get { - return ((RO000002Row)(this.Rows[index])); - } - } - - public event RO000002RowChangeEventHandler RO000002RowChanging; - - public event RO000002RowChangeEventHandler RO000002RowChanged; - - public event RO000002RowChangeEventHandler RO000002RowDeleting; - - public event RO000002RowChangeEventHandler RO000002RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000002Row(RO000002Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row AddRO000002Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000002Row rowRO000002Row = ((RO000002Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000002Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000002Row); - return rowRO000002Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000002DataTable cln = ((RO000002DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000002DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row NewRO000002Row() { - return ((RO000002Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000002Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000002Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000002RowChanged != null)) { - this.RO000002RowChanged(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000002RowChanging != null)) { - this.RO000002RowChanging(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000002RowDeleted != null)) { - this.RO000002RowDeleted(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000002RowDeleting != null)) { - this.RO000002RowDeleting(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000002Row(RO000002Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000002DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000003DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003DataTable() { - this.TableName = "RO000003"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000003DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row this[int index] { - get { - return ((RO000003Row)(this.Rows[index])); - } - } - - public event RO000003RowChangeEventHandler RO000003RowChanging; - - public event RO000003RowChangeEventHandler RO000003RowChanged; - - public event RO000003RowChangeEventHandler RO000003RowDeleting; - - public event RO000003RowChangeEventHandler RO000003RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000003Row(RO000003Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row AddRO000003Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000003Row rowRO000003Row = ((RO000003Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000003Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000003Row); - return rowRO000003Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000003DataTable cln = ((RO000003DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000003DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row NewRO000003Row() { - return ((RO000003Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000003Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000003Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000003RowChanged != null)) { - this.RO000003RowChanged(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000003RowChanging != null)) { - this.RO000003RowChanging(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000003RowDeleted != null)) { - this.RO000003RowDeleted(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000003RowDeleting != null)) { - this.RO000003RowDeleting(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000003Row(RO000003Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000003DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000004DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004DataTable() { - this.TableName = "RO000004"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000004DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row this[int index] { - get { - return ((RO000004Row)(this.Rows[index])); - } - } - - public event RO000004RowChangeEventHandler RO000004RowChanging; - - public event RO000004RowChangeEventHandler RO000004RowChanged; - - public event RO000004RowChangeEventHandler RO000004RowDeleting; - - public event RO000004RowChangeEventHandler RO000004RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000004Row(RO000004Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row AddRO000004Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000004Row rowRO000004Row = ((RO000004Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000004Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000004Row); - return rowRO000004Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000004DataTable cln = ((RO000004DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000004DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row NewRO000004Row() { - return ((RO000004Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000004Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000004Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000004RowChanged != null)) { - this.RO000004RowChanged(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000004RowChanging != null)) { - this.RO000004RowChanging(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000004RowDeleted != null)) { - this.RO000004RowDeleted(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000004RowDeleting != null)) { - this.RO000004RowDeleting(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000004Row(RO000004Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000004DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ROMASTERDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERDataTable() { - this.TableName = "ROMASTER"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMASTERDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow this[int index] { - get { - return ((ROMASTERRow)(this.Rows[index])); - } - } - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanging; - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanged; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleting; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddROMASTERRow(ROMASTERRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow AddROMASTERRow(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - ROMASTERRow rowROMASTERRow = ((ROMASTERRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowROMASTERRow.ItemArray = columnValuesArray; - this.Rows.Add(rowROMASTERRow); - return rowROMASTERRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ROMASTERDataTable cln = ((ROMASTERDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ROMASTERDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow NewROMASTERRow() { - return ((ROMASTERRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ROMASTERRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ROMASTERRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ROMASTERRowChanged != null)) { - this.ROMASTERRowChanged(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ROMASTERRowChanging != null)) { - this.ROMASTERRowChanging(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ROMASTERRowDeleted != null)) { - this.ROMASTERRowDeleted(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ROMASTERRowDeleting != null)) { - this.ROMASTERRowDeleting(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveROMASTERRow(ROMASTERRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ROMASTERDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000002Row : global::System.Data.DataRow { - - private RO000002DataTable tableRO000002; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000002 = ((RO000002DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableRO000002.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000002.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000002.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000002.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000002.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000002.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableRO000002.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableRO000002.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000002.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000002.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000002.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000002.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000002.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000002.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000002.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000002.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000002.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000002.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000003Row : global::System.Data.DataRow { - - private RO000003DataTable tableRO000003; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000003 = ((RO000003DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableRO000003.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000003.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000003.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000003.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000003.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000003.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableRO000003.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableRO000003.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000003.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000003.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000003.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000003.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000003.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000003.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000003.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000003.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000003.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000003.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000004Row : global::System.Data.DataRow { - - private RO000004DataTable tableRO000004; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000004 = ((RO000004DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableRO000004.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000004.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000004.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000004.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000004.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000004.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableRO000004.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableRO000004.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000004.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000004.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000004.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000004.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000004.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000004.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000004.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000004.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000004.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000004.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ROMASTERRow : global::System.Data.DataRow { - - private ROMASTERDataTable tableROMASTER; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableROMASTER = ((ROMASTERDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableROMASTER.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableROMASTER.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableROMASTER.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableROMASTER.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableROMASTER.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableROMASTER.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableROMASTER.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableROMASTER.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableROMASTER.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableROMASTER.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableROMASTER.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableROMASTER.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableROMASTER.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableROMASTER.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableROMASTER.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableROMASTER.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableROMASTER.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableROMASTER.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000002RowChangeEvent : global::System.EventArgs { - - private RO000002Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002RowChangeEvent(RO000002Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000003RowChangeEvent : global::System.EventArgs { - - private RO000003Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003RowChangeEvent(RO000003Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000004RowChangeEvent : global::System.EventArgs { - - private RO000004Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004RowChangeEvent(RO000004Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ROMASTERRowChangeEvent : global::System.EventArgs { - - private ROMASTERRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRowChangeEvent(ROMASTERRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROLoad.ROMasterDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000002TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000002"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000002"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000002DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000002DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000002DataTable dataTable = new ROMasterDataSet.RO000002DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000002DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000002"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000003TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000003"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000003"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000003DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000003DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000003DataTable dataTable = new ROMasterDataSet.RO000003DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000003DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000003"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000004TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000004"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000004"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000004DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000004DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000004DataTable dataTable = new ROMasterDataSet.RO000004DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000004DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000004"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ROMASTERTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ROMASTER"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.ROMASTERDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.ROMASTERDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.ROMASTERDataTable dataTable = new ROMasterDataSet.ROMASTERDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.ROMASTERDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "ROMASTER"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsc b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsc deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsc +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsd b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsd deleted file mode 100644 index e681d44b..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsd +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000002 - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000003 - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000004 - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xss b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xss deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xss +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/WestinghouseROLoad.csproj b/PROMS/ROConvert/WestinghouseROLoad/WestinghouseROLoad.csproj deleted file mode 100644 index 3d35d028..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/WestinghouseROLoad.csproj +++ /dev/null @@ -1,111 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {996C160F-280F-46E5-B361-F468242A8FAB} - WinExe - Properties - WestinghouseROLoad - WestinghouseROLoad - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmImportROs.cs - - - - - Designer - frmImportROs.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - ROImportDataSet.xsd - - - MSDataSetGenerator - ROImportDataSet.Designer.cs - Designer - - - ROImportDataSet.xsd - - - ROMasterDataSet.xsd - - - MSDataSetGenerator - ROMasterDataSet.Designer.cs - Designer - - - ROMasterDataSet.xsd - - - True - Settings.settings - True - - - True - True - ROImportDataSet.xsd - - - True - True - ROMasterDataSet.xsd - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/app.config b/PROMS/ROConvert/WestinghouseROLoad/app.config deleted file mode 100644 index d29506cc..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/app.config +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.Designer.cs deleted file mode 100644 index c230d640..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.Designer.cs +++ /dev/null @@ -1,145 +0,0 @@ -namespace WestinghouseROLoad -{ - partial class frmImportROs - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.rOImportDataSet = new WestinghouseROLoad.ROImportDataSet(); - this.rOMasterDataSet = new WestinghouseROLoad.ROMasterDataSet(); - this.STPTableAdapter = new WestinghouseROLoad.ROMasterDataSetTableAdapters.RO000002TableAdapter(); - this.STPImportTableAdapter = new WestinghouseROLoad.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setpointsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.emptyExistingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).BeginInit(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // rOImportDataSet - // - this.rOImportDataSet.DataSetName = "ROImportDataSet"; - this.rOImportDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // rOMasterDataSet - // - this.rOMasterDataSet.DataSetName = "ROMasterDataSet"; - this.rOMasterDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // STPTableAdapter - // - this.STPTableAdapter.ClearBeforeFill = true; - // - // STPImportTableAdapter - // - this.STPImportTableAdapter.ClearBeforeFill = true; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.setpointsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(592, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // setpointsToolStripMenuItem - // - this.setpointsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.emptyExistingToolStripMenuItem, - this.loadToolStripMenuItem}); - this.setpointsToolStripMenuItem.Name = "setpointsToolStripMenuItem"; - this.setpointsToolStripMenuItem.Size = new System.Drawing.Size(68, 20); - this.setpointsToolStripMenuItem.Text = "Setpoints"; - // - // emptyExistingToolStripMenuItem - // - this.emptyExistingToolStripMenuItem.Name = "emptyExistingToolStripMenuItem"; - this.emptyExistingToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.emptyExistingToolStripMenuItem.Text = "Empty Existing"; - this.emptyExistingToolStripMenuItem.Click += new System.EventHandler(this.emptyExistingToolStripMenuItem_Click); - // - // loadToolStripMenuItem - // - this.loadToolStripMenuItem.Name = "loadToolStripMenuItem"; - this.loadToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.loadToolStripMenuItem.Text = "Load New"; - this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click); - // - // frmImportROs - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(592, 296); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmImportROs"; - this.Text = "Import Westinghouse ROs"; - this.Load += new System.EventHandler(this.frmImportROs_Load); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).EndInit(); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private ROMasterDataSet rOMasterDataSet; - private WestinghouseROLoad.ROMasterDataSetTableAdapters.RO000002TableAdapter STPTableAdapter; - private ROImportDataSet rOImportDataSet; - private WestinghouseROLoad.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter STPImportTableAdapter; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem setpointsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem emptyExistingToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem; - } -} - diff --git a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.cs b/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.cs deleted file mode 100644 index 67d389b6..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace WestinghouseROLoad -{ - public partial class frmImportROs : Form - { - public frmImportROs() - { - InitializeComponent(); - } - - private void frmImportROs_Load(object sender, EventArgs e) - { - STPTableAdapter.Fill(this.rOMasterDataSet.RO000002); - } - private void emptyExistingToolStripMenuItem_Click(object sender, EventArgs e) - { - DataTable dto = STPTableAdapter.GetData(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - dr.Delete(); - STPTableAdapter.Update(dr); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - dr.Delete(); - STPTableAdapter.Update(dr); - } - } - } - private void loadToolStripMenuItem_Click(object sender, EventArgs e) - { - DataTable dto = STPTableAdapter.GetData(); - DataRow drCount = dto.Rows[0]; - Console.WriteLine("{0}", drCount["Info"].ToString()); - STPImportTableAdapter.Fill(this.rOImportDataSet.ImportSTP_qry); - DataTable dti = STPImportTableAdapter.GetData(); - foreach (DataRow dr in dti.Rows) - { - // Parameter Name Value Description - Console.WriteLine("Name = '{0}', Value = '{1}', Description = '{2}'", - dr["Name"], dr["Value"], dr["Description"]); - } - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.resx b/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.resx deleted file mode 100644 index d86b8ccc..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 324, 15 - - - 17, 17 - - - 179, 15 - - - 481, 17 - - - 663, 17 - - \ No newline at end of file diff --git a/PROMS/RTB Testing/Program.cs b/PROMS/RTB Testing/Program.cs deleted file mode 100644 index 26aff32a..00000000 --- a/PROMS/RTB Testing/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace RTB_Testing -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmProcess()); - } - } -} \ No newline at end of file diff --git a/PROMS/RTB Testing/Properties/AssemblyInfo.cs b/PROMS/RTB Testing/Properties/AssemblyInfo.cs deleted file mode 100644 index a71c6ac7..00000000 --- a/PROMS/RTB Testing/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("RTB Testing")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("RTB Testing")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("821f804f-1acf-4f63-a926-92ba17b88df0")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/RTB Testing/Properties/Resources.Designer.cs b/PROMS/RTB Testing/Properties/Resources.Designer.cs deleted file mode 100644 index aa51cad0..00000000 --- a/PROMS/RTB Testing/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RTB_Testing.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RTB_Testing.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/RTB Testing/Properties/Resources.resx b/PROMS/RTB Testing/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/RTB Testing/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/RTB Testing/Properties/Settings.Designer.cs b/PROMS/RTB Testing/Properties/Settings.Designer.cs deleted file mode 100644 index 7a021a29..00000000 --- a/PROMS/RTB Testing/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RTB_Testing.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/RTB Testing/Properties/Settings.settings b/PROMS/RTB Testing/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/RTB Testing/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/RTB Testing/RTB Testing.csproj b/PROMS/RTB Testing/RTB Testing.csproj deleted file mode 100644 index 667c33f7..00000000 --- a/PROMS/RTB Testing/RTB Testing.csproj +++ /dev/null @@ -1,163 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {22D82031-2796-48BC-83B5-15DC43AAA1DE} - WinExe - Properties - RTB_Testing - RTB Testing - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\AxInterop.DSOFramer.dll - - - - - False - F:\CSLA\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - True - - - False - ..\..\DropDownPanel\bin\Debug\DropDownPanel.dll - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\Interop.DSOFramer.dll - - - False - ..\..\LBWordLibrary\bin\Debug\LBWordLibrary.dll - - - False - F:\Log4Net\log4net-1.2.10\bin\net\2.0\debug\log4net.dll - - - - - - - - - False - ..\..\TablePicker\bin\Debug\TablePicker.dll - - - False - ..\..\Volian.Base.Library\bin\Debug\Volian.Base.Library.dll - - - False - ..\..\XYPlots\bin\Debug\XYPlots.dll - - - - - Form - - - frmProcess.cs - - - Form - - - frmRTBTesting.cs - - - - - Designer - frmProcess.cs - - - Designer - frmRTBTesting.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/RTB Testing/frmProcess.Designer.cs b/PROMS/RTB Testing/frmProcess.Designer.cs deleted file mode 100644 index 654bacc5..00000000 Binary files a/PROMS/RTB Testing/frmProcess.Designer.cs and /dev/null differ diff --git a/PROMS/RTB Testing/frmProcess.cs b/PROMS/RTB Testing/frmProcess.cs deleted file mode 100644 index 3dad3842..00000000 --- a/PROMS/RTB Testing/frmProcess.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Volian.Controls.Library; - -namespace RTB_Testing -{ - public partial class frmProcess : Form - { - public frmProcess() - { - InitializeComponent(); - frmRTBTesting myTest = new frmRTBTesting(); - myTest.Show(); - } - - private void tbInput_TextChanged(object sender, EventArgs e) - { - Clipboard.Clear(); - Clipboard.SetData("Rich Text Format",tbInput.Text); - stepRTB1.Paste(); - stepRTB1.SelectAll(); - stepRTB1.Copy(); - rtb.Paste(); - //stepRTB1.Rtf = tbInput.Text; - //rtb.Rtf = tbInput.Text; - tbText.Text = stepRTB1.Text; - tbRtf.Text = stepRTB1.Rtf; - RichTextBox41 rtb41 = new RichTextBox41(); - rtb41.Rtf = tbInput.Text; - tbProcess.Text = rtb41.Rtf; - } - } -} \ No newline at end of file diff --git a/PROMS/RTB Testing/frmProcess.resx b/PROMS/RTB Testing/frmProcess.resx deleted file mode 100644 index 25aba6a2..00000000 --- a/PROMS/RTB Testing/frmProcess.resx +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}{\f1\fnil\fcharset0 VESymbFix;}}{\colortbl ;\red255\green0\blue0;} -\viewkind4\uc1\pard\sl-240\slmult0\fs24 test \\kbr} - - \ No newline at end of file diff --git a/PROMS/RTB Testing/frmRTBTesting.Designer.cs b/PROMS/RTB Testing/frmRTBTesting.Designer.cs deleted file mode 100644 index 1dc5022e..00000000 --- a/PROMS/RTB Testing/frmRTBTesting.Designer.cs +++ /dev/null @@ -1,275 +0,0 @@ -namespace RTB_Testing -{ - partial class frmRTBTesting - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.splitContainer2 = new System.Windows.Forms.SplitContainer(); - this.stepRTB = new Volian.Controls.Library.StepRTB(this.components); - this.rtb = new System.Windows.Forms.RichTextBox(); - this.splitContainer3 = new System.Windows.Forms.SplitContainer(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.tb = new System.Windows.Forms.TextBox(); - this.tbSelected = new System.Windows.Forms.TextBox(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.tbRegex = new System.Windows.Forms.TextBox(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.splitContainer2.Panel1.SuspendLayout(); - this.splitContainer2.Panel2.SuspendLayout(); - this.splitContainer2.SuspendLayout(); - this.splitContainer3.Panel1.SuspendLayout(); - this.splitContainer3.Panel2.SuspendLayout(); - this.splitContainer3.SuspendLayout(); - this.splitContainer4.Panel1.SuspendLayout(); - this.splitContainer4.Panel2.SuspendLayout(); - this.splitContainer4.SuspendLayout(); - this.SuspendLayout(); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer1.Name = "splitContainer1"; - this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.splitContainer2); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); - this.splitContainer1.Size = new System.Drawing.Size(796, 732); - this.splitContainer1.SplitterDistance = 230; - this.splitContainer1.SplitterWidth = 5; - this.splitContainer1.TabIndex = 0; - // - // splitContainer2 - // - this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer2.Location = new System.Drawing.Point(0, 0); - this.splitContainer2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer2.Name = "splitContainer2"; - // - // splitContainer2.Panel1 - // - this.splitContainer2.Panel1.Controls.Add(this.stepRTB); - // - // splitContainer2.Panel2 - // - this.splitContainer2.Panel2.Controls.Add(this.rtb); - this.splitContainer2.Size = new System.Drawing.Size(796, 230); - this.splitContainer2.SplitterDistance = 400; - this.splitContainer2.SplitterWidth = 5; - this.splitContainer2.TabIndex = 0; - // - // stepRTB - // - this.stepRTB.ActiveMode = false; - this.stepRTB.AdjustSize = new System.Drawing.Size(0, 0); - this.stepRTB.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.stepRTB.CheckAbove = "|│└┬┼├┌┴┐┤"; - this.stepRTB.CheckBelow = "|│"; - this.stepRTB.CheckLeft = "-─┤┬├┼┌┐└‑"; - this.stepRTB.CheckRight = "-─‑"; - this.stepRTB.Closed = false; - this.stepRTB.ContentsRectangle = new System.Drawing.Rectangle(0, 0, 300, 20); - this.stepRTB.Dock = System.Windows.Forms.DockStyle.Fill; - this.stepRTB.EditMode = true; - this.stepRTB.FieldToEdit = Volian.Controls.Library.E_FieldToEdit.StepText; - this.stepRTB.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.stepRTB.FormatFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.stepRTB.LastRtf = ""; - this.stepRTB.Location = new System.Drawing.Point(0, 0); - this.stepRTB.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.stepRTB.MyClassName = "RichEdit20W"; - this.stepRTB.MyItemInfo = null; - this.stepRTB.MyLinkText = null; - this.stepRTB.Name = "stepRTB"; - this.stepRTB.OrigDisplayText = null; - this.stepRTB.OrigRTF = null; - this.stepRTB.ProcessKeystrokes = true; - this.stepRTB.RTBRangeStatus = Volian.Controls.Library.StepRTB.RangeStatus.NoContainedLinks; - this.stepRTB.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; - this.stepRTB.ShowDebug = false; - this.stepRTB.Size = new System.Drawing.Size(400, 230); - this.stepRTB.TabIndex = 0; - this.stepRTB.Text = ""; - this.stepRTB.ThisContextMenuStrip = null; - this.stepRTB.VwMode = VEPROMS.CSLA.Library.E_ViewMode.Edit; - this.stepRTB.TextChanged += new System.EventHandler(this.stepRTB_TextChanged); - this.stepRTB.SelectionChanged += new System.EventHandler(this.stepRTB_SelectionChanged); - // - // rtb - // - this.rtb.DetectUrls = false; - this.rtb.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtb.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtb.Location = new System.Drawing.Point(0, 0); - this.rtb.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.rtb.Name = "rtb"; - this.rtb.Size = new System.Drawing.Size(391, 230); - this.rtb.TabIndex = 0; - this.rtb.Text = ""; - this.rtb.SelectionChanged += new System.EventHandler(this.rtb_SelectionChanged); - this.rtb.TextChanged += new System.EventHandler(this.rtb_TextChanged); - // - // splitContainer3 - // - this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer3.Location = new System.Drawing.Point(0, 0); - this.splitContainer3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer3.Name = "splitContainer3"; - this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer3.Panel1 - // - this.splitContainer3.Panel1.Controls.Add(this.splitContainer4); - // - // splitContainer3.Panel2 - // - this.splitContainer3.Panel2.Controls.Add(this.tbResults); - this.splitContainer3.Panel2.Controls.Add(this.tbRegex); - this.splitContainer3.Size = new System.Drawing.Size(796, 497); - this.splitContainer3.SplitterDistance = 244; - this.splitContainer3.SplitterWidth = 5; - this.splitContainer3.TabIndex = 0; - // - // splitContainer4 - // - this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer4.Location = new System.Drawing.Point(0, 0); - this.splitContainer4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer4.Name = "splitContainer4"; - this.splitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer4.Panel1 - // - this.splitContainer4.Panel1.Controls.Add(this.tb); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.tbSelected); - this.splitContainer4.Size = new System.Drawing.Size(796, 244); - this.splitContainer4.SplitterDistance = 105; - this.splitContainer4.SplitterWidth = 5; - this.splitContainer4.TabIndex = 1; - // - // tb - // - this.tb.Dock = System.Windows.Forms.DockStyle.Fill; - this.tb.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb.Location = new System.Drawing.Point(0, 0); - this.tb.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tb.Multiline = true; - this.tb.Name = "tb"; - this.tb.Size = new System.Drawing.Size(796, 105); - this.tb.TabIndex = 0; - this.tb.TextChanged += new System.EventHandler(this.tb_TextChanged); - // - // tbSelected - // - this.tbSelected.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbSelected.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbSelected.Location = new System.Drawing.Point(0, 0); - this.tbSelected.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSelected.Multiline = true; - this.tbSelected.Name = "tbSelected"; - this.tbSelected.Size = new System.Drawing.Size(796, 134); - this.tbSelected.TabIndex = 1; - // - // tbResults - // - this.tbResults.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbResults.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbResults.Location = new System.Drawing.Point(0, 27); - this.tbResults.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.Size = new System.Drawing.Size(796, 221); - this.tbResults.TabIndex = 1; - // - // tbRegex - // - this.tbRegex.Dock = System.Windows.Forms.DockStyle.Top; - this.tbRegex.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbRegex.Location = new System.Drawing.Point(0, 0); - this.tbRegex.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbRegex.Name = "tbRegex"; - this.tbRegex.Size = new System.Drawing.Size(796, 27); - this.tbRegex.TabIndex = 0; - this.tbRegex.Text = "(? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/RichTextBoxTesting/RichTextBoxTesting.sln b/PROMS/RichTextBoxTesting/RichTextBoxTesting.sln deleted file mode 100644 index 1e934bbc..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RichTextBoxTesting", "RichTextBoxTesting\RichTextBoxTesting.csproj", "{2661CB22-CD2A-4EEE-80CF-CE854313C87A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/App.config b/PROMS/RichTextBoxTesting/RichTextBoxTesting/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.Designer.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.Designer.cs deleted file mode 100644 index 267d22d7..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.Designer.cs +++ /dev/null @@ -1,84 +0,0 @@ -namespace RichTextBoxTesting -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.RTB = new System.Windows.Forms.RichTextBox(); - this.TB = new System.Windows.Forms.TextBox(); - this.checkedListBox1 = new System.Windows.Forms.CheckedListBox(); - this.SuspendLayout(); - // - // RTB - // - this.RTB.Location = new System.Drawing.Point(62, 36); - this.RTB.Name = "RTB"; - this.RTB.Size = new System.Drawing.Size(521, 152); - this.RTB.TabIndex = 0; - this.RTB.Text = ""; - this.RTB.TextChanged += new System.EventHandler(this.RTB_TextChanged); - // - // TB - // - this.TB.Location = new System.Drawing.Point(68, 235); - this.TB.Multiline = true; - this.TB.Name = "TB"; - this.TB.Size = new System.Drawing.Size(514, 154); - this.TB.TabIndex = 1; - this.TB.TextChanged += new System.EventHandler(this.TB_TextChanged); - // - // checkedListBox1 - // - this.checkedListBox1.FormattingEnabled = true; - this.checkedListBox1.Location = new System.Drawing.Point(206, 143); - this.checkedListBox1.Name = "checkedListBox1"; - this.checkedListBox1.Size = new System.Drawing.Size(8, 4); - this.checkedListBox1.TabIndex = 2; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(903, 517); - this.Controls.Add(this.checkedListBox1); - this.Controls.Add(this.TB); - this.Controls.Add(this.RTB); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.TextBox TB; - private System.Windows.Forms.CheckedListBox checkedListBox1; - } -} - diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.cs deleted file mode 100644 index a80fac68..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace RichTextBoxTesting -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void RTB_TextChanged(object sender, EventArgs e) - { - if (changing) return; - changing = true; - TB.Text = RTB.Rtf; - changing = false; - } - - bool changing = false; - - private void TB_TextChanged(object sender, EventArgs e) - { - if (changing) return; - changing = true; - RTB.Rtf = TB.Text; - changing = false; - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.resx b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.resx deleted file mode 100644 index 1af7de15..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/RichTextBoxTesting/RichTextBoxTesting/Program.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Program.cs deleted file mode 100644 index 33e979b5..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace RichTextBoxTesting -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/AssemblyInfo.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/AssemblyInfo.cs deleted file mode 100644 index d302806c..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("RichTextBoxTesting")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Windows User")] -[assembly: AssemblyProduct("RichTextBoxTesting")] -[assembly: AssemblyCopyright("Copyright © Windows User 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("84fce126-50ab-4e9b-92ff-48db5ce2b629")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.Designer.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.Designer.cs deleted file mode 100644 index b5c0ac22..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RichTextBoxTesting.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RichTextBoxTesting.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.resx b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.Designer.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.Designer.cs deleted file mode 100644 index ef139a36..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RichTextBoxTesting.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.settings b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/RichTextBoxTesting.csproj b/PROMS/RichTextBoxTesting/RichTextBoxTesting/RichTextBoxTesting.csproj deleted file mode 100644 index 6694636f..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/RichTextBoxTesting.csproj +++ /dev/null @@ -1,88 +0,0 @@ - - - - - Debug - AnyCPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A} - WinExe - Properties - RichTextBoxTesting - RichTextBoxTesting - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/TestFlexibleMessageBox/App.config b/PROMS/TestFlexibleMessageBox/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/TestFlexibleMessageBox/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/TestFlexibleMessageBox/Form1.Designer.cs b/PROMS/TestFlexibleMessageBox/Form1.Designer.cs deleted file mode 100644 index bf21894a..00000000 --- a/PROMS/TestFlexibleMessageBox/Form1.Designer.cs +++ /dev/null @@ -1,61 +0,0 @@ -namespace TestFlexibleMessageBox -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button1 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Location = new System.Drawing.Point(356, 224); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 0; - this.button1.Text = "button1"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(519, 328); - this.Controls.Add(this.button1); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button button1; - } -} - diff --git a/PROMS/TestFlexibleMessageBox/Form1.cs b/PROMS/TestFlexibleMessageBox/Form1.cs deleted file mode 100644 index 373b0e12..00000000 --- a/PROMS/TestFlexibleMessageBox/Form1.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using JR.Utils.GUI.Forms; - -namespace TestFlexibleMessageBox -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void button1_Click(object sender, EventArgs e) - { - string str = "Line 1"; - for (int i = 2; i < 100; i++) - str += string.Format("\nLine {0}", i); - FlexibleMessageBox.Show(str, "A long List",MessageBoxButtons.OK,MessageBoxIcon.Information); - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Form1.resx b/PROMS/TestFlexibleMessageBox/Form1.resx deleted file mode 100644 index 1af7de15..00000000 --- a/PROMS/TestFlexibleMessageBox/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestFlexibleMessageBox/Program.cs b/PROMS/TestFlexibleMessageBox/Program.cs deleted file mode 100644 index 897f9491..00000000 --- a/PROMS/TestFlexibleMessageBox/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace TestFlexibleMessageBox -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Properties/AssemblyInfo.cs b/PROMS/TestFlexibleMessageBox/Properties/AssemblyInfo.cs deleted file mode 100644 index bf1ee411..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestFlexibleMessageBox")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Windows User")] -[assembly: AssemblyProduct("TestFlexibleMessageBox")] -[assembly: AssemblyCopyright("Copyright © Windows User 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fc351bba-d426-46e0-9b08-d5a0accb51a7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestFlexibleMessageBox/Properties/Resources.Designer.cs b/PROMS/TestFlexibleMessageBox/Properties/Resources.Designer.cs deleted file mode 100644 index b032eccb..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestFlexibleMessageBox.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestFlexibleMessageBox.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Properties/Resources.resx b/PROMS/TestFlexibleMessageBox/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestFlexibleMessageBox/Properties/Settings.Designer.cs b/PROMS/TestFlexibleMessageBox/Properties/Settings.Designer.cs deleted file mode 100644 index 1749ac5c..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestFlexibleMessageBox.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Properties/Settings.settings b/PROMS/TestFlexibleMessageBox/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestFlexibleMessageBox/TestFlexibleMessageBox.csproj b/PROMS/TestFlexibleMessageBox/TestFlexibleMessageBox.csproj deleted file mode 100644 index d5e34f01..00000000 --- a/PROMS/TestFlexibleMessageBox/TestFlexibleMessageBox.csproj +++ /dev/null @@ -1,94 +0,0 @@ - - - - - Debug - AnyCPU - {5C74DC42-BF5C-4064-8C6D-166351782846} - WinExe - Properties - TestFlexibleMessageBox - TestFlexibleMessageBox - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - {b22ce5ad-288c-44cd-8a22-b3bcf77b7161} - FlexableMessageBox - - - - - \ No newline at end of file diff --git a/PROMS/TestImageZip/Form1.Designer.cs b/PROMS/TestImageZip/Form1.Designer.cs deleted file mode 100644 index 050da71b..00000000 --- a/PROMS/TestImageZip/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace TestImageZip -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Text = "Form1"; - } - - #endregion - } -} - diff --git a/PROMS/TestImageZip/Form1.cs b/PROMS/TestImageZip/Form1.cs deleted file mode 100644 index 473fb999..00000000 --- a/PROMS/TestImageZip/Form1.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - - -namespace TestImageZip -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - string imgfile = @"C:\16bit\Debug\WCNRO\ro\00-012.bmp"; - byte[] ab; - - using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - // Create an instance of StreamReader that can read characters from the FileStream. - BinaryReader r = new BinaryReader(fsIn); - ab = r.ReadBytes((int)fsIn.Length); - r.Close(); - fsIn.Close(); - // tst first time: - PreviewROImage pvROImg = new PreviewROImage(ab, "Test Zip"); - pvROImg.ShowDialog(); - - } - byte [] compress = ROImageInfo.Compress(ab); - byte[] decompress = ROImageInfo.Decompress(compress); - PreviewROImage pvROImg1 = new PreviewROImage(decompress, "Test Zip"); - pvROImg1.ShowDialog(); - } - } -} \ No newline at end of file diff --git a/PROMS/TestImageZip/Program.cs b/PROMS/TestImageZip/Program.cs deleted file mode 100644 index 88694e09..00000000 --- a/PROMS/TestImageZip/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace TestImageZip -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestImageZip/Properties/AssemblyInfo.cs b/PROMS/TestImageZip/Properties/AssemblyInfo.cs deleted file mode 100644 index 6ff38c5a..00000000 --- a/PROMS/TestImageZip/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestImageZip")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestImageZip")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ea4a0200-90d5-429c-a2dc-14c2d4f21500")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestImageZip/Properties/Resources.Designer.cs b/PROMS/TestImageZip/Properties/Resources.Designer.cs deleted file mode 100644 index d73a7303..00000000 --- a/PROMS/TestImageZip/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4223 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestImageZip.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestImageZip.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestImageZip/Properties/Resources.resx b/PROMS/TestImageZip/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/TestImageZip/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestImageZip/Properties/Settings.Designer.cs b/PROMS/TestImageZip/Properties/Settings.Designer.cs deleted file mode 100644 index 7198c729..00000000 --- a/PROMS/TestImageZip/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4223 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestImageZip.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestImageZip/Properties/Settings.settings b/PROMS/TestImageZip/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestImageZip/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestImageZip/TestImageZip.csproj b/PROMS/TestImageZip/TestImageZip.csproj deleted file mode 100644 index 51a52aec..00000000 --- a/PROMS/TestImageZip/TestImageZip.csproj +++ /dev/null @@ -1,89 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {2490E54C-BF6A-414E-9B5A-EE2A486B7027} - WinExe - Properties - TestImageZip - TestImageZip - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - Form - - - Form1.cs - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {9DA591ED-C570-47AC-8E5D-35B039E07973} - Csla - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/TestPSI/Form1.Designer.cs b/PROMS/TestPSI/Form1.Designer.cs deleted file mode 100644 index b7d6664c..00000000 --- a/PROMS/TestPSI/Form1.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -namespace TestPSI -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.buttonX1 = new DevComponents.DotNetBar.ButtonX(); - this.SuspendLayout(); - // - // buttonX1 - // - this.buttonX1.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.buttonX1.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.buttonX1.Location = new System.Drawing.Point(64, 40); - this.buttonX1.Name = "buttonX1"; - this.buttonX1.Size = new System.Drawing.Size(106, 41); - this.buttonX1.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.buttonX1.TabIndex = 0; - this.buttonX1.Text = "Convert PSI to XML"; - this.buttonX1.Click += new System.EventHandler(this.buttonX1_Click); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(282, 257); - this.Controls.Add(this.buttonX1); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - - #endregion - - private DevComponents.DotNetBar.ButtonX buttonX1; - } -} - diff --git a/PROMS/TestPSI/Form1.cs b/PROMS/TestPSI/Form1.cs deleted file mode 100644 index ba5deff6..00000000 --- a/PROMS/TestPSI/Form1.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using fmtxml; - -namespace TestPSI -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void buttonX1_Click(object sender, EventArgs e) - { - PSI psi = new PSI(@"C:\16bit\PROMSNT\FMTFILES\hlp.ini"); - Console.WriteLine(psi.GetXML()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestPSI/Form1.resx b/PROMS/TestPSI/Form1.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestPSI/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestPSI/Program.cs b/PROMS/TestPSI/Program.cs deleted file mode 100644 index 20d7fdbc..00000000 --- a/PROMS/TestPSI/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace TestPSI -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestPSI/Properties/AssemblyInfo.cs b/PROMS/TestPSI/Properties/AssemblyInfo.cs deleted file mode 100644 index 7de31447..00000000 --- a/PROMS/TestPSI/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestPSI")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestPSI")] -[assembly: AssemblyCopyright("Copyright © 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("58dda072-c8c0-4031-a969-b77505b13314")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestPSI/Properties/Resources.Designer.cs b/PROMS/TestPSI/Properties/Resources.Designer.cs deleted file mode 100644 index d657651a..00000000 --- a/PROMS/TestPSI/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4206 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestPSI.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestPSI.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestPSI/Properties/Resources.resx b/PROMS/TestPSI/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/TestPSI/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestPSI/Properties/Settings.Designer.cs b/PROMS/TestPSI/Properties/Settings.Designer.cs deleted file mode 100644 index f31c701e..00000000 --- a/PROMS/TestPSI/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4206 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestPSI.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestPSI/Properties/Settings.settings b/PROMS/TestPSI/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestPSI/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestPSI/TestPSI.csproj b/PROMS/TestPSI/TestPSI.csproj deleted file mode 100644 index 1309f694..00000000 --- a/PROMS/TestPSI/TestPSI.csproj +++ /dev/null @@ -1,85 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {52D1CBD6-A1D4-474C-998D-4AD98C2D36CC} - WinExe - Properties - TestPSI - TestPSI - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Designer - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {66A20362-1B7E-4F9D-BABA-86E29EA60994} - fmtxml - - - - - \ No newline at end of file diff --git a/PROMS/TestWndProc/Delete Links.xlsx b/PROMS/TestWndProc/Delete Links.xlsx deleted file mode 100644 index fdecc76a..00000000 Binary files a/PROMS/TestWndProc/Delete Links.xlsx and /dev/null differ diff --git a/PROMS/TestWndProc/TestWndProc.sln b/PROMS/TestWndProc/TestWndProc.sln deleted file mode 100644 index 1e705e2b..00000000 --- a/PROMS/TestWndProc/TestWndProc.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestWndProc", "TestWndProc\TestWndProc.csproj", "{A672E7A2-94FF-4613-B6AC-52CC6F98EB29}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/TestWndProc/TestWndProc/MyPanel.Designer.cs b/PROMS/TestWndProc/TestWndProc/MyPanel.Designer.cs deleted file mode 100644 index 7fb7e530..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyPanel.Designer.cs +++ /dev/null @@ -1,414 +0,0 @@ -namespace TestWndProc -{ - partial class MyPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.btnBoldOn = new System.Windows.Forms.Button(); - this.btnBoldOff = new System.Windows.Forms.Button(); - this.btnLinkOff = new System.Windows.Forms.Button(); - this.btnLinkOn = new System.Windows.Forms.Button(); - this.tbSelRTF = new System.Windows.Forms.TextBox(); - this.lblFind = new System.Windows.Forms.Label(); - this.nudStart = new System.Windows.Forms.NumericUpDown(); - this.nudLength = new System.Windows.Forms.NumericUpDown(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.btnFindAllLinks = new System.Windows.Forms.Button(); - this.tbSelText = new System.Windows.Forms.TextBox(); - this.btnUpdateSel = new System.Windows.Forms.Button(); - this.cbProcess = new System.Windows.Forms.CheckBox(); - this.lbTbSel = new System.Windows.Forms.Label(); - this.btnRefreshText = new System.Windows.Forms.Button(); - this.btnReplaceSelection = new System.Windows.Forms.Button(); - this.lblWith = new System.Windows.Forms.Label(); - this.tbWith = new System.Windows.Forms.TextBox(); - this.tbSendKeys = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.lblRangeStatus = new System.Windows.Forms.Label(); - this.btnPG = new System.Windows.Forms.Button(); - this.tbRTF = new TestWndProc.MyTextBox(this.components); - this.myRTB1 = new TestWndProc.MyRTB(this.components); - this.btnSelHngIndent = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.nudStart)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudLength)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.SuspendLayout(); - // - // btnBoldOn - // - this.btnBoldOn.Location = new System.Drawing.Point(4, 16); - this.btnBoldOn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnBoldOn.Name = "btnBoldOn"; - this.btnBoldOn.Size = new System.Drawing.Size(81, 28); - this.btnBoldOn.TabIndex = 1; - this.btnBoldOn.Text = "Bold On"; - this.btnBoldOn.UseVisualStyleBackColor = true; - this.btnBoldOn.Click += new System.EventHandler(this.btnBoldOn_Click); - // - // btnBoldOff - // - this.btnBoldOff.Location = new System.Drawing.Point(93, 16); - this.btnBoldOff.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnBoldOff.Name = "btnBoldOff"; - this.btnBoldOff.Size = new System.Drawing.Size(83, 28); - this.btnBoldOff.TabIndex = 2; - this.btnBoldOff.Text = "Bold Off"; - this.btnBoldOff.UseVisualStyleBackColor = true; - this.btnBoldOff.Click += new System.EventHandler(this.btnBoldOff_Click); - // - // btnLinkOff - // - this.btnLinkOff.Location = new System.Drawing.Point(269, 16); - this.btnLinkOff.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnLinkOff.Name = "btnLinkOff"; - this.btnLinkOff.Size = new System.Drawing.Size(71, 28); - this.btnLinkOff.TabIndex = 5; - this.btnLinkOff.Text = "Link Off"; - this.btnLinkOff.UseVisualStyleBackColor = true; - this.btnLinkOff.Click += new System.EventHandler(this.btnLinkOff_Click); - // - // btnLinkOn - // - this.btnLinkOn.Location = new System.Drawing.Point(184, 16); - this.btnLinkOn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnLinkOn.Name = "btnLinkOn"; - this.btnLinkOn.Size = new System.Drawing.Size(77, 28); - this.btnLinkOn.TabIndex = 4; - this.btnLinkOn.Text = "Link On"; - this.btnLinkOn.UseVisualStyleBackColor = true; - this.btnLinkOn.Click += new System.EventHandler(this.btnLinkOn_Click); - // - // tbSelRTF - // - this.tbSelRTF.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSelRTF.Location = new System.Drawing.Point(4, 370); - this.tbSelRTF.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSelRTF.Multiline = true; - this.tbSelRTF.Name = "tbSelRTF"; - this.tbSelRTF.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbSelRTF.Size = new System.Drawing.Size(643, 47); - this.tbSelRTF.TabIndex = 8; - // - // lblFind - // - this.lblFind.AutoSize = true; - this.lblFind.Location = new System.Drawing.Point(344, 178); - this.lblFind.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblFind.Name = "lblFind"; - this.lblFind.Size = new System.Drawing.Size(50, 17); - this.lblFind.TabIndex = 11; - this.lblFind.Text = "Where"; - // - // nudStart - // - this.nudStart.Location = new System.Drawing.Point(416, 176); - this.nudStart.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.nudStart.Maximum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - this.nudStart.Name = "nudStart"; - this.nudStart.Size = new System.Drawing.Size(57, 22); - this.nudStart.TabIndex = 14; - // - // nudLength - // - this.nudLength.Location = new System.Drawing.Point(481, 176); - this.nudLength.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.nudLength.Maximum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - this.nudLength.Name = "nudLength"; - this.nudLength.Size = new System.Drawing.Size(49, 22); - this.nudLength.TabIndex = 15; - // - // dgv - // - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(4, 481); - this.dgv.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.dgv.Name = "dgv"; - this.dgv.RowTemplate.Height = 24; - this.dgv.Size = new System.Drawing.Size(644, 204); - this.dgv.TabIndex = 16; - this.dgv.SelectionChanged += new System.EventHandler(this.dgv_SelectionChanged); - // - // btnFindAllLinks - // - this.btnFindAllLinks.Location = new System.Drawing.Point(17, 174); - this.btnFindAllLinks.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnFindAllLinks.Name = "btnFindAllLinks"; - this.btnFindAllLinks.Size = new System.Drawing.Size(101, 28); - this.btnFindAllLinks.TabIndex = 17; - this.btnFindAllLinks.Text = "Find All Links"; - this.btnFindAllLinks.UseVisualStyleBackColor = true; - this.btnFindAllLinks.Click += new System.EventHandler(this.btnFindAllLinks_Click); - // - // tbSelText - // - this.tbSelText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSelText.Location = new System.Drawing.Point(4, 426); - this.tbSelText.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSelText.Multiline = true; - this.tbSelText.Name = "tbSelText"; - this.tbSelText.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbSelText.Size = new System.Drawing.Size(643, 47); - this.tbSelText.TabIndex = 18; - // - // btnUpdateSel - // - this.btnUpdateSel.Location = new System.Drawing.Point(213, 174); - this.btnUpdateSel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnUpdateSel.Name = "btnUpdateSel"; - this.btnUpdateSel.Size = new System.Drawing.Size(127, 28); - this.btnUpdateSel.TabIndex = 19; - this.btnUpdateSel.Text = "Update Selection"; - this.btnUpdateSel.UseVisualStyleBackColor = true; - this.btnUpdateSel.Click += new System.EventHandler(this.btnUpdateSel_Click); - // - // cbProcess - // - this.cbProcess.AutoSize = true; - this.cbProcess.Checked = true; - this.cbProcess.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbProcess.Location = new System.Drawing.Point(125, 176); - this.cbProcess.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.cbProcess.Name = "cbProcess"; - this.cbProcess.Size = new System.Drawing.Size(81, 21); - this.cbProcess.TabIndex = 20; - this.cbProcess.Text = "Process"; - this.cbProcess.UseVisualStyleBackColor = true; - this.cbProcess.CheckedChanged += new System.EventHandler(this.cbProcess_CheckedChanged); - // - // lbTbSel - // - this.lbTbSel.AutoSize = true; - this.lbTbSel.Location = new System.Drawing.Point(539, 178); - this.lbTbSel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lbTbSel.Name = "lbTbSel"; - this.lbTbSel.Size = new System.Drawing.Size(50, 17); - this.lbTbSel.TabIndex = 21; - this.lbTbSel.Text = "Where"; - // - // btnRefreshText - // - this.btnRefreshText.Location = new System.Drawing.Point(347, 17); - this.btnRefreshText.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnRefreshText.Name = "btnRefreshText"; - this.btnRefreshText.Size = new System.Drawing.Size(111, 26); - this.btnRefreshText.TabIndex = 23; - this.btnRefreshText.Text = "Refresh Text"; - this.btnRefreshText.UseVisualStyleBackColor = true; - this.btnRefreshText.Click += new System.EventHandler(this.btnRefreshText_Click); - // - // btnReplaceSelection - // - this.btnReplaceSelection.Location = new System.Drawing.Point(17, 209); - this.btnReplaceSelection.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnReplaceSelection.Name = "btnReplaceSelection"; - this.btnReplaceSelection.Size = new System.Drawing.Size(137, 28); - this.btnReplaceSelection.TabIndex = 25; - this.btnReplaceSelection.Text = "Replace Selection"; - this.btnReplaceSelection.UseVisualStyleBackColor = true; - this.btnReplaceSelection.Click += new System.EventHandler(this.btnReplaceSelection_Click); - // - // lblWith - // - this.lblWith.AutoSize = true; - this.lblWith.Location = new System.Drawing.Point(163, 215); - this.lblWith.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblWith.Name = "lblWith"; - this.lblWith.Size = new System.Drawing.Size(36, 17); - this.lblWith.TabIndex = 26; - this.lblWith.Text = "With"; - // - // tbWith - // - this.tbWith.Location = new System.Drawing.Point(207, 212); - this.tbWith.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbWith.Name = "tbWith"; - this.tbWith.Size = new System.Drawing.Size(132, 22); - this.tbWith.TabIndex = 27; - this.tbWith.Text = "X"; - // - // tbSendKeys - // - this.tbSendKeys.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSendKeys.Location = new System.Drawing.Point(429, 212); - this.tbSendKeys.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSendKeys.Name = "tbSendKeys"; - this.tbSendKeys.Size = new System.Drawing.Size(213, 22); - this.tbSendKeys.TabIndex = 29; - this.tbSendKeys.Text = "{BS}"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(348, 215); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(72, 17); - this.label1.TabIndex = 28; - this.label1.Text = "SendKeys"; - // - // lblRangeStatus - // - this.lblRangeStatus.AutoSize = true; - this.lblRangeStatus.Location = new System.Drawing.Point(472, 18); - this.lblRangeStatus.Name = "lblRangeStatus"; - this.lblRangeStatus.Size = new System.Drawing.Size(94, 17); - this.lblRangeStatus.TabIndex = 30; - this.lblRangeStatus.Text = "Range Status"; - // - // btnPG - // - this.btnPG.Location = new System.Drawing.Point(572, 15); - this.btnPG.Name = "btnPG"; - this.btnPG.Size = new System.Drawing.Size(39, 23); - this.btnPG.TabIndex = 31; - this.btnPG.Text = "PG"; - this.btnPG.UseVisualStyleBackColor = true; - this.btnPG.Click += new System.EventHandler(this.btnPG_Click); - // - // tbRTF - // - this.tbRTF.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbRTF.Location = new System.Drawing.Point(4, 244); - this.tbRTF.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.tbRTF.Multiline = true; - this.tbRTF.Name = "tbRTF"; - this.tbRTF.Size = new System.Drawing.Size(643, 120); - this.tbRTF.TabIndex = 24; - this.tbRTF.SelectionChange += new System.EventHandler(this.tbRTF_SelectionChange); - this.tbRTF.TextChanged += new System.EventHandler(this.tbRTF_TextChanged); - // - // myRTB1 - // - this.myRTB1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.myRTB1.HideSelection = false; - this.myRTB1.Location = new System.Drawing.Point(4, 52); - this.myRTB1.Margin = new System.Windows.Forms.Padding(4); - this.myRTB1.Name = "myRTB1"; - this.myRTB1.ProcessKeystrokes = true; - this.myRTB1.RTBRangeStatus = TestWndProc.MyRTB.RangeStatus.NoContainedLinks; - this.myRTB1.ShowDebug = true; - this.myRTB1.Size = new System.Drawing.Size(643, 117); - this.myRTB1.TabIndex = 0; - this.myRTB1.Text = ""; - this.myRTB1.Protected += new System.EventHandler(this.myRTB1_Protected); - // - // btnSelHngIndent - // - this.btnSelHngIndent.Location = new System.Drawing.Point(618, 15); - this.btnSelHngIndent.Name = "btnSelHngIndent"; - this.btnSelHngIndent.Size = new System.Drawing.Size(39, 23); - this.btnSelHngIndent.TabIndex = 32; - this.btnSelHngIndent.Text = "SI"; - this.btnSelHngIndent.UseVisualStyleBackColor = true; - this.btnSelHngIndent.Click += new System.EventHandler(this.btnSelHngIndent_Click); - // - // MyPanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.btnSelHngIndent); - this.Controls.Add(this.btnPG); - this.Controls.Add(this.lblRangeStatus); - this.Controls.Add(this.tbSendKeys); - this.Controls.Add(this.label1); - this.Controls.Add(this.tbWith); - this.Controls.Add(this.lblWith); - this.Controls.Add(this.btnReplaceSelection); - this.Controls.Add(this.tbRTF); - this.Controls.Add(this.btnRefreshText); - this.Controls.Add(this.lbTbSel); - this.Controls.Add(this.cbProcess); - this.Controls.Add(this.btnUpdateSel); - this.Controls.Add(this.tbSelText); - this.Controls.Add(this.btnFindAllLinks); - this.Controls.Add(this.dgv); - this.Controls.Add(this.nudLength); - this.Controls.Add(this.nudStart); - this.Controls.Add(this.lblFind); - this.Controls.Add(this.tbSelRTF); - this.Controls.Add(this.btnLinkOff); - this.Controls.Add(this.btnLinkOn); - this.Controls.Add(this.btnBoldOff); - this.Controls.Add(this.btnBoldOn); - this.Controls.Add(this.myRTB1); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "MyPanel"; - this.Size = new System.Drawing.Size(660, 702); - ((System.ComponentModel.ISupportInitialize)(this.nudStart)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudLength)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private MyRTB myRTB1; - private System.Windows.Forms.Button btnBoldOn; - private System.Windows.Forms.Button btnBoldOff; - private System.Windows.Forms.Button btnLinkOff; - private System.Windows.Forms.Button btnLinkOn; - private System.Windows.Forms.TextBox tbSelRTF; - private System.Windows.Forms.Label lblFind; - private System.Windows.Forms.NumericUpDown nudStart; - private System.Windows.Forms.NumericUpDown nudLength; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Button btnFindAllLinks; - private System.Windows.Forms.TextBox tbSelText; - private System.Windows.Forms.Button btnUpdateSel; - private System.Windows.Forms.CheckBox cbProcess; - private System.Windows.Forms.Label lbTbSel; - private System.Windows.Forms.Button btnRefreshText; - private MyTextBox tbRTF; - private System.Windows.Forms.Button btnReplaceSelection; - private System.Windows.Forms.Label lblWith; - private System.Windows.Forms.TextBox tbWith; - private System.Windows.Forms.TextBox tbSendKeys; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label lblRangeStatus; - private System.Windows.Forms.Button btnPG; - private System.Windows.Forms.Button btnSelHngIndent; - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyPanel.cs b/PROMS/TestWndProc/TestWndProc/MyPanel.cs deleted file mode 100644 index b0b896f0..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyPanel.cs +++ /dev/null @@ -1,215 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; - -namespace TestWndProc -{ - public partial class MyPanel : UserControl - { - #region Constructors - public MyPanel() - { - InitializeComponent(); - myRTB1.LinkLocationsChanged += new RTBEvent(myRTB1_LinkLocationsChanged); - myRTB1.RTBSelectionChanged += new RTBEvent(myRTB1_RTBSelectionChanged); - myRTB1.RTBTextChanged += new RTBEvent(myRTB1_RTBTextChanged); - myRTB1.RTBRangeStatusChanged += new RTBEvent(myRTB1_RTBRangeStatusChanged); - SetRtfString(); - } - #endregion - #region Debug - private bool _ShowDebug = true; - public bool ShowDebug - { - get { return _ShowDebug; } - set { _ShowDebug = value; } - } - private void DebugPrint(string where, string format, params object[] myParams) - { - DebugPrint(where + string.Format(format, myParams)); - } - private void DebugPrint(string format, params object[] myParams) - { - if (_ShowDebug) - Console.WriteLine(format, myParams); - } - #endregion - #region RTB Event Handlers - void myRTB1_RTBTextChanged(object sender, EventArgs args) - { - DebugPrint("<=====RTBTextChanged"); - if (_TextChanging == false) - { - _TextChanging = true; - tbRTF.Text = myRTB1.Rtf; - _TextChanging = false; - } - } - void myRTB1_RTBRangeStatusChanged(object sender, EventArgs args) - { - DebugPrint("<=====RTBRangeStatusChanged"); - lblRangeStatus.Text = myRTB1.RTBRangeStatus.ToString(); - } - void myRTB1_RTBSelectionChanged(object sender, EventArgs args) - { - DebugPrint("<=====RTBSelectionChanged"); - ShowSelection(); - UpdateNudsFromSelection(); - } - void myRTB1_LinkLocationsChanged(object sender, EventArgs args) - { - DebugPrint("<\v0 " + - @"Some text \v \v0 " + - @"Add some text before \v \v0 " + - @"\v \v0 " + - @"\v \v0 and some more text after " + - @"\v \v0 " + @"\par}"; - } - #endregion - #region Selection - private void ShowSelection() - { - lblFind.Text = string.Format("{0}-{1}", myRTB1.SelectionStart, myRTB1.SelectionStart + myRTB1.SelectionLength); - tbSelRTF.Text = myRTB1.SelectedRtf; - tbSelText.Text = myRTB1.SelectedText; - UpdateNudsFromSelection(); - } - private void tbRTB_SelectionChanged(object sender, EventArgs e) - { - //lbTbSel.Text = string.Format("{0}, {1}", tbRTF.SelectionStart, tbRTF.SelectionLength); - } - private void tbRTF_SelectionChange(object sender, EventArgs e) - { - lbTbSel.Text = string.Format("{0}, {1}", tbRTF.SelectionStart, tbRTF.SelectionLength); - } - private void btnReplaceSelection_Click(object sender, EventArgs e) - { - myRTB1.SelectedText = tbWith.Text; - if (tbSendKeys.Text != "") SendKeys.Send(tbSendKeys.Text); - } - private void dgv_SelectionChanged(object sender, EventArgs e) - { - if (dgv.SelectedRows.Count == 1) - { - LinkLocation ll = myRTB1.LinkLocations[dgv.SelectedRows[0].Index]; - myRTB1.SetSelection(ll); - } - } - #endregion - #region Numeric Up/Down - private void UpdateNudsFromSelection() - { - nudStart.Value = myRTB1.SelectionStart; - nudLength.Value = myRTB1.SelectionLength; - } - private void UpdateNuds(int start, int length) - { - nudStart.Value = start; - nudLength.Value = length; - } - private void UpdateSelectionFromNuds() - { - myRTB1.SetSelection((int)(nudStart.Value), (int)(nudLength.Value)); - } - private void btnUpdateSel_Click(object sender, EventArgs e) - { - UpdateSelectionFromNuds(); - myRTB1.Focus(); - } - #endregion - #region Protection - private void myRTB1_Protected(object sender, EventArgs e) - { - MessageBox.Show("Cannot change protected text that way!"); - } - private void btnProtectOn_Click(object sender, EventArgs e) - { - RTBAPI.Protect(myRTB1); - } - private void btnProtectOff_Click(object sender, EventArgs e) - { - RTBAPI.UnProtect(myRTB1); - } - #endregion - #region Button Handlers - private void btnBoldOn_Click(object sender, EventArgs e) - { - RTBAPI.ToggleBold(true, myRTB1, RTBAPI.RTBSelection.SCF_SELECTION); - } - private void btnBoldOff_Click(object sender, EventArgs e) - { - RTBAPI.ToggleBold(false, myRTB1, RTBAPI.RTBSelection.SCF_SELECTION); - } - private void btnLinkOn_Click(object sender, EventArgs e) - { - RTBAPI.Link(myRTB1); - } - private void btnLinkOff_Click(object sender, EventArgs e) - { - RTBAPI.UnLink(myRTB1); - } - private void btnFindAllLinks_Click(object sender, EventArgs e) - { - myRTB1.FindAllLinks(); - } - #endregion - #region Text Change - private bool _TextChanging = false; - private void tbRTF_TextChanged(object sender, EventArgs e) - { - if (_TextChanging == false) - { - _TextChanging = true; - myRTB1.Rtf = tbRTF.Text; - _TextChanging = false; - } - } - #endregion - #region Process Check Box - private void cbProcess_CheckedChanged(object sender, EventArgs e) - { - myRTB1.ProcessKeystrokes = cbProcess.Checked; - } - #endregion - - private void btnPG_Click(object sender, EventArgs e) - { - frmPG myFrmPG = new frmPG(myRTB1); - myFrmPG.Show(); - } - int hngIndent = 25; - private void btnSelHngIndent_Click(object sender, EventArgs e) - { - //myRTB1.SelectionHangingIndent = hngIndent; - //hngIndent += 25; - myRTB1.SelectAll(); - myRTB1.SelectionHangingIndent = 0; - int indchar = 0; - while ((indchar = myRTB1.Find("@", indchar, RichTextBoxFinds.None)) >= 0) - { - Point indent = myRTB1.GetPositionFromCharIndex(indchar); - myRTB1.SelectionHangingIndent = indent.X; - indchar++; - } - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyPanel.resx b/PROMS/TestWndProc/TestWndProc/MyPanel.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyPanel.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestWndProc/TestWndProc/MyRTB.Designer.cs b/PROMS/TestWndProc/TestWndProc/MyRTB.Designer.cs deleted file mode 100644 index 723a7ddb..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyRTB.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace TestWndProc -{ - partial class MyRTB - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyRTB.cs b/PROMS/TestWndProc/TestWndProc/MyRTB.cs deleted file mode 100644 index d0fbf1d7..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyRTB.cs +++ /dev/null @@ -1,881 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; - -namespace TestWndProc -{ - public delegate void RTBEvent(object sender, EventArgs args); - public partial class MyRTB : RichTextBox - { - #region Events - public event RTBEvent RTBSelectionChanged; - private void OnRTBSelectionChanged(object sender, EventArgs args) - { - if (RTBSelectionChanged != null) RTBSelectionChanged(sender, args); - } - public event RTBEvent LinkLocationsChanged; - private void OnLinkLocationChanged(object sender, EventArgs args) - { - if(LinkLocationsChanged != null) LinkLocationsChanged(sender, args); - } - public event RTBEvent RTBRangeStatusChanged; - private void OnRTBRangeStatusChanged(object sender, EventArgs args) - { - if (RTBRangeStatusChanged != null) RTBRangeStatusChanged(sender, args); - } - /// - /// This event is not raised during all the in-between changes for link deletions - /// - public event RTBEvent RTBTextChanged; - private void OnRTBTextChanged(object sender, EventArgs args) - { - if (RTBTextChanged != null) RTBTextChanged(sender, args); - } - #endregion - #region public properties - private bool _ProcessKeystrokes = true; - public bool ProcessKeystrokes - { - get { return _ProcessKeystrokes; } - set { _ProcessKeystrokes = value; } - } - #endregion - #region CaretPosition - //[DllImport("user32")] - //private static extern IntPtr SendMessage(HandleRef hWnd, int msg, int wParam, int lParam); - [DllImport("user32")] - private static extern int GetCaretPos(ref Point lpPoint); - [DllImport("user32")] - private static extern bool SetCaretPos(int X, int Y); - //private int EM_LINEINDEX = 0xbb; - //private int EM_LINEFROMCHAR = 0xc9; - //private int EM_GETSEL = 0xb0; - - /// - /// Gets the caret current (X, Y) position. - /// - /// - /// Point struct - /// - public Point CaretXYPosition - { - get - { - Point pt = Point.Empty; - // get a Point struct with the caret current (X, Y) - // position - GetCaretPos(ref pt); - // return the Point struct with the caret current - // (X, Y) position - return pt; - } - } - public int CaretIndex - { - get { return GetCharIndexFromPosition(CaretXYPosition); } - } - public void SetCaretPostoSelectionStart() - { - Point pt = GetPositionFromCharIndex(SelectionStart); - //bool result = SetCaretPos(pt.X,pt.Y); - bool result = SetCaretPos(-1, pt.Y); - DebugPrint("SetCaretPos({0},{1}) = {2}", pt.X, pt.Y, result); - } - #endregion - #region Constructors - public MyRTB() - { - InitializeComponent(); - SetupEventHandlers(); - } - public MyRTB(IContainer container) - { - container.Add(this); - InitializeComponent(); - SetupEventHandlers(); - } - private void SetupEventHandlers() - { - this.MouseDown += new MouseEventHandler(MyRTB_MouseDown); - this.MouseUp += new MouseEventHandler(MyRTB_MouseUp); - this.KeyDown += new KeyEventHandler(MyRTB_KeyDown); - this.KeyPress += new KeyPressEventHandler(MyRTB_KeyPress); - this.TextChanged += new EventHandler(MyRTB_TextChanged); - this.SelectionChanged += new EventHandler(MyRTB_SelectionChanged); - } -#endregion - #region Keyboard Handlers - void MyRTB_KeyPress(object sender, KeyPressEventArgs e) - { - DebugPrint("KeyPress: {0},{1}", e.KeyChar, (int)e.KeyChar); - if (e.KeyChar >= ' ') - { - LinkLocation ll = FindBetweenLinks(); - if (ll != null && SelectionLength == 0) // SelectionLength = 0 means insert - { - InsertCharBetweenLinks(ll, e.KeyChar); - e.Handled = true; - } - else if (ll != null) // Otherwise it is an overstrike or a delete followed by inserting a character - { - DeleteStartBetweenLinks(); - } - else if (SelectedText.EndsWith(@"[END>AdjustingSelection is true in Keydown"); - if (_ProcessingKeys > 0) - DebugPrint("Key down: {0} Shift {1} processing keys = {2}", e.KeyCode, e.Shift, _ProcessingKeys); - if (!ProcessKeystrokes) return; - switch (e.KeyCode) - { - case Keys.Left: - DebugPrint("Key down: {0} Shift {1} processing keys = {2}", e.KeyCode, e.Shift, _ProcessingKeys); - DebugSelection("Left"); - if (e.Shift) return; - LinkLocation ll = FindLinkSelected(); - if (ll != null) - { - _AdjustingSelection = true; - if (ll.StartsBetween || ll.Start == 7) - SetSelection(ll.Start, 0); - else - SetSelection(ll.Start - 7, 0); - _AdjustingSelection = false; - e.SuppressKeyPress = true; - } - break; - case Keys.Back: - if (_SendBackSpace) - { - _SendBackSpace = false; - return; - } - _CheckSelection = true; - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _linkLocations) - { - if (SelectionStart > lls.Start - 7 && SelectionStart <= lls.End) - { - //RtbSendKeys("{Left}");// This should select the ll - SetSelection(lls); - break; - } - } - } - if (SelectionLength > 0) HandleDeleteKeyWithSelectedText(e); - break; - case Keys.Delete: - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _linkLocations) - { - if (SelectionStart >= lls.Start - 7 && SelectionStart < lls.End) - { - SetSelection(lls);// Select the link to the right - HandleDeleteKeyWithSelectedText(e); - e.SuppressKeyPress = true; - return; - } - } - if (SelectionStart != TextLength) - { - SelectionStart++;// A Delete can be accomplished with a right arrow followed by a backspace. - RtbSendKeys("{BS}"); // This is done due to a glitch in the RichTextBox that sometimes causes a beep rather than a delete - e.SuppressKeyPress = true; - } - } - else - HandleDeleteKeyWithSelectedText(e); - break; - } - } - #endregion - #region Mouse Handlers - void MyRTB_MouseUp(object sender, MouseEventArgs e) - { - _MouseDown = false; - HandleSelectionChange(); - } - void MyRTB_MouseDown(object sender, MouseEventArgs e) - { - _MouseDown = true; - } - #endregion - #region Event Handlers - void MyRTB_SelectionChanged(object sender, EventArgs e) - { - HandleSelectionChange(); - } - private bool _ProcessingDelete; - void MyRTB_TextChanged(object sender, EventArgs e) - { - if(!_IdentifyingLinks) - FindAllLinks(); - if (!_ProcessingDelete && !_IdentifyingLinks) - { - OnRTBTextChanged(this, new EventArgs()); - } - } - #endregion - #region SelectionStack - Stack _SelectionStack = new Stack(); - public void PushSelection() - { - _SelectionStack.Push(new SelectionData(this)); - } - public void PopSelection() - { - SelectionData selection = _SelectionStack.Pop(); - Select(selection.SelectionStart, selection.SelectionLength); - } - public class SelectionData - { - int _SelectionStart; - public int SelectionStart - { - get { return _SelectionStart; } - set { _SelectionStart = value; } - } - int _SelectionLength; - public int SelectionLength - { - get { return _SelectionLength; } - set { _SelectionLength = value; } - } - public SelectionData(RichTextBox richTextBox) - { - _SelectionStart = richTextBox.SelectionStart; - _SelectionLength = richTextBox.SelectionLength; - } - } - #endregion - #region Link Support - bool _AdjustingSelection = false; - private bool _CheckSelection = false; - int _ProcessingKeys = 0; - private bool _MouseDown = false; - - List _linkLocations; - public List LinkLocations - { - get { return _linkLocations; } - } - private int _FALLevel = 0; - private bool _IdentifyingLinks = false; - public void FindAllLinks() - { - if (_ProcessingDelete) return; - DebugPrint("FAL{0}vvvvvvvvvvvvvvvvvvvvvvvvv>>",++_FALLevel); - _AdjustingSelection = true; - PushSelection(); - FindLinks(); - IdentifyLinks(); - PopSelection(); - LinkLocation llx = FindLinkLocation(); - if (_CheckSelection) - { - if (llx != null) SetSelection(llx.End, 0); - _CheckSelection = false; - } - _AdjustingSelection = false; - if(!_ProcessingDelete) - OnLinkLocationChanged(this, new EventArgs()); - DebugPrint("FAL{0}^^^^^^^^^^^^^^^^^^^^^^^^^>>", _FALLevel--); - - } - private void FindLinks() - { - string str = Text; - _linkLocations = new List(); - MatchCollection matches = Regex.Matches(str, ""); - MatchCollection matchesRtf = Regex.Matches(Rtf, ""); - LinkLocation thisLink = null; - for (int i = 0; i < matches.Count; i++) //each (Match match in matches) - { //KBR - Match match = matches[i]; - Match matchrtf = matchesRtf[i]; - thisLink = new LinkLocation(match.Index + 7, // If the [END> is immediately followed by "); - foreach (LinkLocation ll in _linkLocations) - if (ll.Start == start && ll.StartsBetween) - return ll; - return null; - } - private LinkLocation FindLinkSelected() - { - DebugPrint("FL----------------Selected>"); - if (_linkLocations == null) return null; - foreach (LinkLocation ll in _linkLocations) - if (ll.Start == SelectionStart && ll.Length == SelectionLength) return ll; - return null; - } - private LinkLocation FindLinkLocation() - { - return FindLinkLocation(SelectionStart); - } - private LinkLocation FindLinkLocation(int sel) - { - DebugPrint("FL----------------Location>"); - if (_linkLocations == null) return null; - foreach (LinkLocation ll in _linkLocations) - { - // Moving right: - // if less than, allows stopping between two links - if (ll.Start < sel && ll.End > sel) - { - DebugPrint("Greater Than {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - // if less than or equal, does not stop between two links - if ((!ll.StartsBetween) && ll.Start <= sel && ll.End > sel) - { - DebugPrint("Greater Than or Equal {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - } - return null; - } - public void SetSelection(LinkLocation ll) - { - SetSelection(ll.Start, ll.Length); - } - public void SetSelection(int locStart, int locLength) - { - //Application.DoEvents(); // Not needed since SendKeys is always done last. - if(_IdentifyingLinks) - DebugPrint("SS------------------------> {0} {1}", locStart, locLength); - else - DebugPrint("SS========================> {0} {1}", locStart, locLength); - Select(locStart, locLength); - } - #endregion - #region Selection Handlers - private void HandleSelectionChange() - { - bool startingValue = _AdjustingSelection; - if (_IdentifyingLinks || _ProcessingDelete) return; - if (ProcessKeystrokes) - { - if (!_MouseDown && !_AdjustingSelection) - { - if (_linkLocations != null) - { - _AdjustingSelection = true; - LinkLocation ll = FindLinkLocation(); - LinkLocation llend = null; - if (SelectionLength != 0) - llend = FindLinkLocation(SelectionStart + SelectionLength - 1); - if (ll != null) - { - if (SelectionStart == ll.Start && SelectionLength == 0) - { - if (SelectionStart >= 7) - { - DebugPrint("HSC===================>ll Insert: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SelectionStart = ll.Start - 7; - } - } - else if (SelectionStart + SelectionLength > ll.End) // Beyond the end of the starting link - { - int end = SelectionStart + SelectionLength; - if (llend != null) end = llend.End; // If it extends into another link extend the end to the end of that link - DebugPrint("HSC===================>ll After: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll.Start, end - ll.Start); - } - else if (SelectionStart >= ll.Start || SelectionLength > 0)// Within the starting link - { - DebugPrint("HSC===================>ll: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll); - } - } - else if (llend != null) - { - DebugPrint("HSC===================>llend: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, llend.Start, llend.Length); - // Check to see if the beginning starts before the Removing ending Removing starting _AdjustingSelection problem"); - DebugPrint("RS------ SelectionChange > {0}", FindRangeStatus()); - OnRTBSelectionChanged(this, new EventArgs()); - } -#endregion - #region Delete Handlers - private void HandleDeleteKeyWithSelectedText(KeyEventArgs e) - { - _ProcessingDelete = true; - FindRangeStatus(); - DebugPrint("RS---------------- Delete > {0}", _RTBRangeStatus); - switch (_RTBRangeStatus) - { - case RangeStatus.NoContainedLinks: - case RangeStatus.Before_After: - case RangeStatus.Before_EndLink: - case RangeStatus.Before_EndBox: - default: - DeleteCurrentSelection(); - e.SuppressKeyPress = true; - break; - case RangeStatus.Before_Between: //myRTB1.SelectedText.EndsWith(@"[END> - /// This inserts a space in between two links. - /// It actually inserts "\v0 {space}\v " between the END tag and the START tag - /// - /// - /// - /// - private void InsertCharBetweenLinks(LinkLocation ll, char charToAdd, bool setSelect) - { - //_InsertingSpaceBetweenLinks = true; - DebugPrint("ICBLvvvvvvvvvvvvvvv>>>"); - Rtf = Rtf.Substring(0, ll.StartRtf) + @"\v0 " + charToAdd.ToString() + @"\v " + Rtf.Substring(ll.StartRtf); - //_InsertingSpaceBetweenLinks = false; - if (setSelect) - SelectionStart = ll.Start - 6; // account for >>"); - } - private void ExpandSelectionToIncludeStart() - { - //_AdjustingSelection = true; - SetSelection(SelectionStart - 7, SelectionLength + 7); // Expand selection to include start - //_AdjustingSelection = false; - } - private void DeleteBetweenBetweenLinks() - { - DebugSelection("DeleteBetweenBetweenLinks"); - int selStart = SelectionStart - 7; - int selLength = SelectionLength + 2; // Include the two added spaces - InsertCharBetweenLinks(_RangeEndLink.NextLink); // Add a space at the end link - InsertCharBetweenLinks(_RangeStartLink); // Add a space a the start link - SetSelection(selStart, selLength);// Select everything including the spaces - DeleteCurrentSelection();// Delete Selection - } - /// - /// This is added to handle a glitch in richtextbox. Depending on - /// which direction that selection is made (left -> right or right -> left) - /// a replacement or delete may not work, you'll just get a 'beep'. - /// This approach consistently works. - /// - private void DeleteCurrentSelection() - { - DebugPrint("vvvvvvvvvvvvxxxxxxxxxxxx>"); - DebugSelection("Before X"); - SelectedText = "X"; // replace text with X - DebugSelection("After X"); - DebugPrint("------------xxxxxxxxxxxx>"); - _SendBackSpace = true; - RtbSendKeys("{BS}"); // remove X - Application.DoEvents(); - DebugSelection("After BS"); - DebugPrint("^^^^^^^^^^^^xxxxxxxxxxxx>"); - } - private void DeleteSelection(int start, int length) - { - SetSelection(start, length); - DeleteCurrentSelection(); - } - private void DeleteEndBetweenLinks() - { - _ProcessingKeys++; - DebugSelection("DeleteEndBetweenLinks"); - int sstart = SelectionStart; - int slen = SelectionLength + 1 - 7; - // This puts a space at the link that starts at the end of the selection - InsertCharBetweenLinks(_RangeEndLink.NextLink); - //_AdjustingSelection = true; - DeleteSelection(sstart, slen); - //_AdjustingSelection = false; - _ProcessingKeys--; - } - private void DeleteStartBetweenLinks() - { - _ProcessingKeys++; - DebugSelection("DeleteStartBetweenLinks"); - int slen = SelectionLength + 8; - int sstart = SelectionStart - 7; - //LinkLocation ll = FindBetweenLinks(SelectionStart); - InsertCharBetweenLinks(_RangeStartLink); - DeleteSelection(sstart, slen); - _ProcessingKeys--; - } - private void DeleteFromStartOfBox() - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBox"); - int slen = SelectionLength; - SetSelection(0, 0); - //RtbSendKeys(" "); // open for space between links which separates END/START tokens - SelectedText = " "; - DeleteSelection(0, slen + 8); - _ProcessingKeys--; - } - private void DeleteFromStartOfBoxEndBetweenLinks() - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBoxEndBetweenLinks"); - // This puts a space at the link that starts at the end of the selection - int sLen = SelectionStart + SelectionLength - 7 + 2;// -7 for = start && ll.Start < end) || (ll.End >= start && ll.End < end))) - foundLink = ll; - if (_RangeStartLink == null && start >= ll.Start - 7 && start < ll.End) - _RangeStartLink = ll; - if (_RangeEndLink == null && end >= ll.Start && end <= ll.End) - _RangeEndLink = ll; - } - //DebugPrint("SelectionStart {0}, SelectionEnd {1}, TextLength {2}", - // SelectionStart, SelectionStart + SelectionLength, - // TextLength); - //if (startLink != null) - // startLink.Show("startLink"); - //if (endLink != null) - // endLink.Show("endLink"); - //if (foundLink != null) - // foundLink.Show("foundLink"); - - if (foundLink == null) - return RTBRangeStatus = RangeStatus.NoContainedLinks; - - StartStatus myStartStatus = StartStatus.Before; - EndStatus myEndStatus = EndStatus.After; - if (_RangeStartLink != null) - { - if (_RangeStartLink.Start == 7) - myStartStatus = StartStatus.StartBox; - else if (_RangeStartLink.StartsBetween) - myStartStatus = StartStatus.Between; - else - myStartStatus = StartStatus.StartLink; - } - if (_RangeEndLink != null) - { - if (_RangeEndLink.End == TextLength) - myEndStatus = EndStatus.EndBox; - else if (_RangeEndLink.NextStart == _RangeEndLink.End) - myEndStatus = EndStatus.Between; - else if (end == _RangeEndLink.Start) - myEndStatus = EndStatus.StartLink; // Should not happen because of code in HandleSelectionChange - else //if (end == endLink.End) - myEndStatus = EndStatus.EndLink; - } - return RTBRangeStatus = (RangeStatus)((int)myStartStatus + (int)myEndStatus); - } - #endregion - } - #region LinkLocation - public class LinkLocation - { - private int _Start; - public int Start - { - get { return _Start; } - set { _Start = value; } - } - private int _Length; - public int Length - { - get { return _Length; } - set { _Length = value; } - } - public int End - { - get { return _Length + _Start; } - } - private int _StartRtf; - public int StartRtf - { - get { return _StartRtf; } - set { _StartRtf = value; } - } - private int _LengthRtf; - public int LengthRtf - { - get { return _LengthRtf; } - set { _LengthRtf = value; } - } - public int EndRtf - { - get { return _LengthRtf + _StartRtf; } - } - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - private LinkLocation _PreviousLink = null; - public LinkLocation PreviousLink - { - get { return _PreviousLink; } - set - { - _PreviousLink = value; - value.NextLink = this; - } - } - private LinkLocation _NextLink = null; - public LinkLocation NextLink - { - get { return _NextLink; } - set { _NextLink = value; } - } - public int PreviousEnd - { - get { return PreviousLink == null ? -1 : PreviousLink.End; } - } - public bool StartsBetween - { - get { return PreviousEnd == Start; } - } - public int NextStart - { - get { return NextLink == null ? -1 : NextLink.Start; } - } - public bool EndsBetween - { - get { return NextStart == End; } - } - public LinkLocation(int start, int length, string text, int startRtf, int lengthRtf, LinkLocation previousLink) - { - _Start = start; - _Length = length; - _Text = text; - _StartRtf = startRtf; - _LengthRtf = lengthRtf; - if (previousLink != null) PreviousLink = previousLink; - } - public override string ToString() - { - return (string.Format("{0}, {1}", Start, End)); - } - public void Show(string str) - { - if (PreviousLink != null) - Console.WriteLine("LinkLocation: {0}.PreviousLink {1}", str, PreviousLink); - Console.WriteLine("LinkLocation: {0} {1}", str, this); - if (NextLink != null) - Console.WriteLine("LinkLocation: {0}.NextLink {1}", str, NextLink); - } - - } - #endregion -} diff --git a/PROMS/TestWndProc/TestWndProc/MyTextBox.Designer.cs b/PROMS/TestWndProc/TestWndProc/MyTextBox.Designer.cs deleted file mode 100644 index d0e7303a..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyTextBox.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace TestWndProc -{ - partial class MyTextBox - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyTextBox.cs b/PROMS/TestWndProc/TestWndProc/MyTextBox.cs deleted file mode 100644 index fb981ed0..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyTextBox.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Windows.Forms; -using System.Drawing; -using System.Data; -using System.Text; -using System.Runtime.InteropServices; - -namespace TestWndProc -{ - public partial class MyTextBox : TextBox - { - public event EventHandler SelectionChange; - public MyTextBox() - { - InitializeComponent(); - } - public MyTextBox(IContainer container) - { - container.Add(this); - InitializeComponent(); - } - private void OnSelectionChange() - { - if (SelectionChange != null) - SelectionChange(this, new EventArgs()); - } - const int WM_IME_NOTIFY = 0x282; - const int IMN_SETCOMPOSITIONWINDOW = 11; - /// - /// Allow SelectionChange - /// - /// - protected override void WndProc(ref Message m) - { - // Watch for SelectionChange Message - if (m.Msg == WM_IME_NOTIFY && m.WParam.ToInt32() == IMN_SETCOMPOSITIONWINDOW) - OnSelectionChange(); - base.WndProc(ref m); - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/Program.cs b/PROMS/TestWndProc/TestWndProc/Program.cs deleted file mode 100644 index 8acc8e82..00000000 --- a/PROMS/TestWndProc/TestWndProc/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace TestWndProc -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmWndProcTest()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/Properties/AssemblyInfo.cs b/PROMS/TestWndProc/TestWndProc/Properties/AssemblyInfo.cs deleted file mode 100644 index 750c5013..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestWndProc")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestWndProc")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5f8a440e-83ef-405a-99b0-51d2cd0d1037")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestWndProc/TestWndProc/Properties/Resources.Designer.cs b/PROMS/TestWndProc/TestWndProc/Properties/Resources.Designer.cs deleted file mode 100644 index 16c5d02b..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestWndProc.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestWndProc.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/Properties/Resources.resx b/PROMS/TestWndProc/TestWndProc/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestWndProc/TestWndProc/Properties/Settings.Designer.cs b/PROMS/TestWndProc/TestWndProc/Properties/Settings.Designer.cs deleted file mode 100644 index c87c1938..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestWndProc.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/Properties/Settings.settings b/PROMS/TestWndProc/TestWndProc/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestWndProc/TestWndProc/RTBAPI.cs b/PROMS/TestWndProc/TestWndProc/RTBAPI.cs deleted file mode 100644 index f7a1f070..00000000 --- a/PROMS/TestWndProc/TestWndProc/RTBAPI.cs +++ /dev/null @@ -1,1005 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Runtime.InteropServices; -using System.ComponentModel; -using System.Drawing.Design; -using System.Windows.Forms.Design; - -namespace TestWndProc -{ - public static class RTBAPI - { - #region SendMessage - [DllImport("user32.dll", SetLastError = true)] - private static extern int SendMessage(HandleRef hWndlock, Messages wMsg, Int32 wParam, ref Point pt); - [DllImport("user32.dll", SetLastError = true)] - private static extern int SendMessage(HandleRef hWndlock, Messages wMsg, Int32 wParam, int lParam); - [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] - public static extern int SendMessage(HandleRef hWndlock, Messages wMsg, RTBSelection wParam, ref CharFormat2 cf2); - [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] - public static extern int SendMessage(HandleRef hWndlock, Messages wMsg, int wParam, ref ParaFormat2 pf2); - #region RTB Messages - // EM_AUTOURLDETECT - An EM_AUTOURLDETECT message enables or disables automatic detection of URLs by a rich edit control. - // EM_CANPASTE - The EM_CANPASTE message determines whether a rich edit control can paste a specified clipboard format. - // EM_CANREDO - The EM_CANREDO message determines whether there are any actions in the control redo queue. - // EM_DISPLAYBAND - The EM_DISPLAYBAND message displays a portion of the contents of a rich edit control, as previously formatted for a device using the EM_FORMATRANGE message. - // EM_EXGETSEL - The EM_EXGETSEL message retrieves the starting and ending character positions of the selection in a rich edit control. - // EM_EXLIMITTEXT - The EM_EXLIMITTEXT message sets an upper limit to the amount of text the user can type or paste into a rich edit control. - // EM_EXLINEFROMCHAR - The EM_EXLINEFROMCHAR message determines which line contains the specified character in a rich edit control. - // EM_EXSETSEL - The EM_EXSETSEL message selects a range of characters or COM objects in a Rich Edit control. - // EM_FINDTEXT - The EM_FINDTEXT message finds text within a rich edit control. - // EM_FINDTEXTEX - The EM_FINDTEXTEX message finds text within a rich edit control. - // EM_FINDTEXTEXW - The EM_FINDTEXTEXW message finds Unicode text within a rich edit control. - // EM_FINDTEXTW - The EM_FINDTEXTW message finds Unicode text within a rich edit control. - // EM_FINDWORDBREAK - The EM_FINDWORDBREAK message finds the next word break before or after the specified character position or retrieves information about the character at that position. - // EM_FORMATRANGE - The EM_FORMATRANGE message formats a range of text in a rich edit control for a specific device. - // EM_GETAUTOURLDETECT - The EM_GETAUTOURLDETECT message indicates whether the auto URL detection is turned on in the rich edit control. - // EM_GETBIDIOPTIONS - The EM_GETBIDIOPTIONS message indicates the current state of the bidirectional options in the rich edit control. - // EM_GETCHARFORMAT - The EM_GETCHARFORMAT message determines the character formatting in a rich edit control. - // EM_GETCTFMODEBIAS - An application sends a EM_GETCTFMODEBIAS message to get the Text Services Framework mode bias values for a Rich Edit control. - // EM_GETCTFOPENSTATUS - An application sends an EM_GETCTFOPENSTATUS message to determine if the Text Services Framework (TSF) keyboard is open or closed. - // EM_GETEDITSTYLE - The EM_GETEDITSTYLE message retrieves the current edit style flags. - // EM_GETEVENTMASK - The EM_GETEVENTMASK message retrieves the event mask for a rich edit control. The event mask specifies which notification messages the control sends to its parent window. - // EM_GETHYPHENATEINFO - An application sends an EM_GETHYPHENATEINFO message to get information about hyphenation for a Rich Edit control. - // EM_GETIMECOLOR - The EM_GETIMECOLOR message retrieves the Input Method Editor (IME) composition color. This message is available only in Asian-language versions of the operating system. - // EM_GETIMECOMPMODE - An application sends an EM_GETIMECOMPMODE message to get the current IME mode for a rich edit control. - // EM_GETIMECOMPTEXT - An application sends an EM_GETIMECOMPTEXT message to get the IME composition text. - // EM_GETIMEMODEBIAS - An application sends an EM_GETIMEMODEBIAS message to get the IME mode bias for a Rich Edit control. - // EM_GETIMEOPTIONS - The EM_GETIMEOPTIONS message retrieves the current IME options. This message is available only in Asian-language versions of the operating system. - // EM_GETIMEPROPERTY - An application sends a EM_GETIMEPROPERTY message to get the property and capabilities of the IME associated with the current input locale. - // EM_GETLANGOPTIONS - An application sends an EM_GETLANGOPTIONS message to get a rich edit control's option settings for IME and Asian language support. - // EM_GETOLEINTERFACE - The EM_GETOLEINTERFACE message retrieves an IRichEditOle object that a client can use to access a rich edit control's COM functionality. - // EM_GETOPTIONS - The EM_GETOPTIONS message retrieves rich edit control options. - // EM_GETPAGEROTATE - Deprecated. An application sends an EM_GETPAGEROTATE message to get the text layout for a Rich Edit control. - // EM_GETPARAFORMAT - The EM_GETPARAFORMAT message retrieves the paragraph formatting of the current selection in a rich edit control. - // EM_GETPUNCTUATION - The EM_GETPUNCTUATION message gets the current punctuation characters for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_GETREDONAME - An application sends an EM_GETREDONAME message to a rich edit control to retrieve the type of the next action, if any, in the control's redo queue. - // EM_GETSCROLLPOS - An application sends an EM_GETSCROLLPOS message to obtain the current scroll position of the edit control. - // EM_GETSELTEXT - The EM_GETSELTEXT message retrieves the currently selected text in a rich edit control. - // EM_GETTEXTEX - The EM_GETTEXTEX message allows you to get all of the text from the rich edit control in any particular code base you want. - // EM_GETTEXTLENGTHEX - The EM_GETTEXTLENGTHEX message calculates text length in various ways. It is usually called before creating a buffer to receive the text from the control. - // EM_GETTEXTMODE - An application sends an EM_GETTEXTMODE message to get the current text mode and undo level of a rich edit control. - // EM_GETTEXTRANGE - The EM_GETTEXTRANGE message retrieves a specified range of characters from a rich edit control. - // EM_GETTYPOGRAPHYOPTIONS - The EM_GETTYPOGRAPHYOPTIONS message returns the current state of the typography options of a rich edit control. - // EM_GETUNDONAME - Rich Edit 2.0 and later: An application sends an EM_GETUNDONAME message to a rich edit control to retrieve the type of the next undo action, if any. - // EM_GETWORDBREAKPROCEX - The EM_GETWORDBREAKPROCEX message retrieves the address of the currently registered extended word-break procedure. - // EM_GETWORDWRAPMODE - The EM_GETWORDWRAPMODE message gets the current word wrap and word-break options for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_GETZOOM - The EM_GETZOOM message gets the current zoom ratio, which is always between 1/64 and 64. - // EM_HIDESELECTION - The EM_HIDESELECTION message hides or shows the selection in a rich edit control. - // EM_ISIME - An application sends a EM_ISIME message to determine if current input locale is an East Asian locale. - // EM_PASTESPECIAL - The EM_PASTESPECIAL message pastes a specific clipboard format in a rich edit control. - // EM_RECONVERSION - The EM_RECONVERSION message invokes the IME reconversion dialog box. - // EM_REDO - Send an EM_REDO message to a rich edit control to redo the next action in the control's redo queue. - // EM_REQUESTRESIZE - The EM_REQUESTRESIZE message forces a rich edit control to send an EN_REQUESTRESIZE notification message to its parent window. - // EM_SELECTIONTYPE - The EM_SELECTIONTYPE message determines the selection type for a rich edit control. - // EM_SETBIDIOPTIONS - The EM_SETBIDIOPTIONS message sets the current state of the bidirectional options in the rich edit control. - // EM_SETBKGNDCOLOR - The EM_SETBKGNDCOLOR message sets the background color for a rich edit control. - // EM_SETCHARFORMAT - The EM_SETCHARFORMAT message sets character formatting in a rich edit control. - // EM_SETCTFMODEBIAS - An application sends an EM_SETCTFMODEBIAS message to set the Text Services Framework (TSF) mode bias for a Rich Edit control. - // EM_SETCTFOPENSTATUS - An application sends an EM_SETCTFOPENSTATUS message to open or close the Text Services Framework (TSF) keyboard. - // EM_SETEDITSTYLE - The EM_SETEDITSTYLE message sets the current edit style flags. - // EM_SETEVENTMASK - The EM_SETEVENTMASK message sets the event mask for a rich edit control. The event mask specifies which notification messages the control sends to its parent window. - // EM_SETFONTSIZE - The EM_SETFONTSIZE message sets the font size for the selected text. - // EM_SETHYPHENATEINFO - An application sends an EM_SETHYPHENATEINFO message to set the way a Rich Edit control does hyphenation. - // EM_SETIMECOLOR - The EM_SETIMECOLOR message sets the IME composition color. This message is available only in Asian-language versions of the operating system. - // EM_SETIMEMODEBIAS - An application sends an EM_SETIMEMODEBIAS message to set the IME mode bias for a Rich Edit control. - // EM_SETIMEOPTIONS - The EM_SETIMEOPTIONS message sets the IME options. This message is available only in Asian-language versions of the operating system. - // EM_SETLANGOPTIONS - An application sends an EM_SETLANGOPTIONS message to set options for IME and Asian language support in a rich edit control. - // EM_SETOLECALLBACK - The EM_SETOLECALLBACK message gives a rich edit control an IRichEditOleCallback object that the control uses to get OLE-related resources and information from the client. - // EM_SETOPTIONS - The EM_SETOPTIONS message sets the options for a rich edit control. - // EM_SETPAGEROTATE - Deprecated. An application sends an EM_SETPAGEROTATE message to set the text layout for a Rich Edit control. - // EM_SETPALETTE - An application sends an EM_SETPALETTE message to change the palette that rich edit uses for its display window. - // EM_SETPARAFORMAT - The EM_SETPARAFORMAT message sets the paragraph formatting for the current selection in a rich edit control. - // EM_SETPUNCTUATION - The EM_SETPUNCTUATION message sets the punctuation characters for a rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_SETSCROLLPOS - An application sends an EM_SETSCROLLPOS message to tell the rich edit control to scroll to a particular point. - // EM_SETTARGETDEVICE - The EM_SETTARGETDEVICE message sets the target device and line width used for "what you see is what you get" (WYSIWYG) formatting in a rich edit control. - // EM_SETTEXTEX - The EM_SETTEXTEX message combines the functionality of WM_SETTEXT and EM_REPLACESEL and adds the ability to set text using a code page and to use either rich text or plain text. - // EM_SETTEXTMODE - An application sends an EM_SETTEXTMODE message to set the text mode or undo level of a rich edit control. The message fails if the control contains any text. - // EM_SETTYPOGRAPHYOPTIONS - The EM_SETTYPOGRAPHYOPTIONS message sets the current state of the typography options of a rich edit control. - // EM_SETUNDOLIMIT - An application sends an EM_SETUNDOLIMIT message to a rich edit control to set the maximum number of actions that can stored in the undo queue. - // EM_SETWORDBREAKPROCEX - The EM_SETWORDBREAKPROCEX message sets the extended word-break procedure. - // EM_SETWORDWRAPMODE - The EM_SETWORDWRAPMODE message sets the word-wrapping and word-breaking options for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_SETZOOM - The EM_SETZOOM message sets the zoom ratio anywhere between 1/64 and 64. - // EM_SHOWSCROLLBAR - The EM_SHOWSCROLLBAR message shows or hides one of the scroll bars in the Text Host window. - // EM_STOPGROUPTYPING - An application sends an EM_STOPGROUPTYPING message to a rich edit control to stop the control from collecting additional typing actions into the current undo action. The control stores the next typing action, if any, into a new action in the undo queue. - // EM_STREAMIN - The EM_STREAMIN message replaces the contents of a rich edit control with a stream of data provided by an application defined - // EM_STREAMOUT - The EM_STREAMOUT message causes a rich edit control to pass its contents to an application - #endregion - #endregion - public struct ParaFormat2 - { - public int cbSize; - public int dwMask; - public ushort wNumbering; - public short wEffects; - public int dxStartIndent; - public int dxRightIndent; - public int dxOffset; - public short wAlignment; - public short cTabCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] - public int[] rgxTabs; - public int dySpaceBefore; - public int dySpaceAfter; - public int dyLineSpacing; - public short sStyle; - public byte bLineSpacingRule; - public byte bOutlineLevel; - public short wShadingWeight; - public short wShadingStyle; - public short wNumberingStart; - public short wNumberingStyle; - public short wNumberingTab; - public short wBorderSpace; - public short wBorderWidth; - public short wBorders; - } - public class ParaFormatTwo - { - private ParaFormat2 _ParaFormat2; - public ParaFormatTwo(ParaFormat2 pf) - { - _ParaFormat2 = pf; - } - public ParaFormat2 ParaFormat2 - { - get { return _ParaFormat2; } - } - public int cbSize - { - get { return _ParaFormat2.cbSize; } - set { _ParaFormat2.cbSize = value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public ParaFormatMasks dwMask - { - get { return (ParaFormatMasks)_ParaFormat2.dwMask; } - set { _ParaFormat2.dwMask = (int)value; } - } - public ParaNumbering wNumbering - { - get { return (ParaNumbering)_ParaFormat2.wNumbering; } - set { _ParaFormat2.wNumbering = (ushort)value; } - } - public ParaFormatEffects wEffects - { - get { return (ParaFormatEffects)_ParaFormat2.wEffects; } - set { _ParaFormat2.wEffects = (short)value; } - } - public int dxStartIndent - { - get { return _ParaFormat2.dxStartIndent; } - set { _ParaFormat2.dxStartIndent = value; } - } - public int dxRightIndent - { - get { return _ParaFormat2.dxRightIndent; } - set { _ParaFormat2.dxRightIndent = value; } - } - public int dxOffset - { - get { return _ParaFormat2.dxOffset; } - set { _ParaFormat2.dxOffset = value; } - } - public ParaAlignment wAlignment - { - get { return (ParaAlignment)_ParaFormat2.wAlignment; } - set { _ParaFormat2.wAlignment = (short)value; } - } - public short cTabCount - { - get { return _ParaFormat2.cTabCount; } - set { _ParaFormat2.cTabCount = value; } - } - public int[] rgxTabs - { - get { return _ParaFormat2.rgxTabs; } - set { _ParaFormat2.rgxTabs = value; } - } - public int dySpaceBefore - { - get { return _ParaFormat2.dySpaceBefore; } - set { _ParaFormat2.dySpaceBefore = value; } - } - public int dySpaceAfter - { - get { return _ParaFormat2.dySpaceAfter; } - set { _ParaFormat2.dySpaceAfter = value; } - } - public int dyLineSpacing - { - get { return _ParaFormat2.dyLineSpacing; } - set { _ParaFormat2.dyLineSpacing = value; } - } - public short sStyle - { - get { return _ParaFormat2.sStyle; } - set { _ParaFormat2.sStyle = value; } - } - public ParaSpacing bLineSpacingRule - { - get { return (ParaSpacing)_ParaFormat2.bLineSpacingRule; } - set { _ParaFormat2.bLineSpacingRule = (byte)value; } - } - public byte bOutlineLevel - { - get { return _ParaFormat2.bOutlineLevel; } - set { _ParaFormat2.bOutlineLevel = value; } - } - public short wShadingWeight - { - get { return _ParaFormat2.wShadingWeight; } - set { _ParaFormat2.wShadingWeight = value; } - } - public short wShadingStyle - { - get { return _ParaFormat2.wShadingStyle; } - set { _ParaFormat2.wShadingStyle = value; } - } - public short wNumberingStart - { - get { return _ParaFormat2.wNumberingStart; } - set { _ParaFormat2.wNumberingStart = value; } - } - public short wNumberingStyle - { - get { return _ParaFormat2.wNumberingStyle; } - set { _ParaFormat2.wNumberingStyle = value; } - } - public short wNumberingTab - { - get { return _ParaFormat2.wNumberingTab; } - set { _ParaFormat2.wNumberingTab = value; } - } - public short wBorderSpace - { - get { return _ParaFormat2.wBorderSpace; } - set { _ParaFormat2.wBorderSpace = value; } - } - public short wBorderWidth - { - get { return _ParaFormat2.wBorderWidth; } - set { _ParaFormat2.wBorderWidth = value; } - } - public short wBorders - { - get { return _ParaFormat2.wBorders; } - set { _ParaFormat2.wBorders = value; } - } - } - - const int WM_USER = 0x0400; - public enum Messages : int - { - EM_AUTOURLDETECT = WM_USER + 91, - EM_CANPASTE = WM_USER + 50, - EM_CANREDO = WM_USER + 85, - EM_DISPLAYBAND = WM_USER + 51, - EM_EXGETSEL = WM_USER + 52, - EM_EXLIMITTEXT = WM_USER + 53, - EM_EXLINEFROMCHAR = WM_USER + 54, - EM_EXSETSEL = WM_USER + 55, - EM_FINDTEXT = WM_USER + 56, - EM_FINDTEXTEX = WM_USER + 79, - EM_FINDTEXTEXW = WM_USER + 124, - EM_FINDTEXTW = WM_USER + 123, - EM_FINDWORDBREAK = WM_USER + 76, - EM_FORMATRANGE = WM_USER + 57, - EM_GETAUTOURLDETECT = WM_USER + 92, - EM_GETBIDIOPTIONS = WM_USER + 201, - EM_GETCHARFORMAT = WM_USER + 58, - EM_GETCTFMODEBIAS = WM_USER + 237, - EM_GETCTFOPENSTATUS = WM_USER + 240, - EM_GETEDITSTYLE = WM_USER + 205, - EM_GETEVENTMASK = WM_USER + 59, - EM_GETHYPHENATEINFO = WM_USER + 230, - EM_GETIMECOLOR = WM_USER + 105, - EM_GETIMECOMPMODE = WM_USER + 122, - EM_GETIMECOMPTEXT = WM_USER + 242, - EM_GETIMEMODEBIAS = WM_USER + 127, - EM_GETIMEOPTIONS = WM_USER + 107, - EM_GETIMEPROPERTY = WM_USER + 244, - EM_GETLANGOPTIONS = WM_USER + 121, - EM_GETOLEINTERFACE = WM_USER + 60, - EM_GETOPTIONS = WM_USER + 78, - EM_GETPAGEROTATE = WM_USER + 235, - EM_GETPARAFORMAT = WM_USER + 61, - EM_GETPUNCTUATION = WM_USER + 101, - EM_GETREDONAME = WM_USER + 87, - EM_GETSCROLLPOS = WM_USER + 221, - EM_GETSELTEXT = WM_USER + 62, - EM_GETTEXTEX = WM_USER + 94, - EM_GETTEXTLENGTHEX = WM_USER + 95, - EM_GETTEXTMODE = WM_USER + 90, - EM_GETTEXTRANGE = WM_USER + 75, - EM_GETTYPOGRAPHYOPTIONS = WM_USER + 203, - EM_GETUNDONAME = WM_USER + 86, - EM_GETWORDBREAKPROCEX = WM_USER + 80, - EM_GETWORDWRAPMODE = WM_USER + 103, - EM_GETZOOM = WM_USER + 224, - EM_HIDESELECTION = WM_USER + 63, - EM_ISIME = WM_USER + 243, - EM_PASTESPECIAL = WM_USER + 64, - EM_RECONVERSION = WM_USER + 125, - EM_REDO = WM_USER + 84, - EM_REQUESTRESIZE = WM_USER + 65, - EM_SELECTIONTYPE = WM_USER + 66, - EM_SETBIDIOPTIONS = WM_USER + 200, - EM_SETBKGNDCOLOR = WM_USER + 67, - EM_SETCHARFORMAT = WM_USER + 68, - EM_SETCTFMODEBIAS = WM_USER + 238, - EM_SETCTFOPENSTATUS = WM_USER + 241, - EM_SETEDITSTYLE = WM_USER + 204, - EM_SETEVENTMASK = WM_USER + 69, - EM_SETFONTSIZE = WM_USER + 223, - EM_SETHYPHENATEINFO = WM_USER + 231, - EM_SETIMECOLOR = WM_USER + 104, - EM_SETIMEMODEBIAS = WM_USER + 126, - EM_SETIMEOPTIONS = WM_USER + 106, - EM_SETLANGOPTIONS = WM_USER + 120, - EM_SETOLECALLBACK = WM_USER + 70, - EM_SETOPTIONS = WM_USER + 77, - EM_SETPAGEROTATE = WM_USER + 236, - EM_SETPALETTE = WM_USER + 93, - EM_SETPARAFORMAT = WM_USER + 71, - EM_SETPUNCTUATION = WM_USER + 100, - EM_SETSCROLLPOS = WM_USER + 222, - EM_SETTARGETDEVICE = WM_USER + 72, - EM_SETTEXTEX = WM_USER + 97, - EM_SETTEXTMODE = WM_USER + 89, - EM_SETTYPOGRAPHYOPTIONS = WM_USER + 202, - EM_SETUNDOLIMIT = WM_USER + 82, - EM_SETWORDBREAKPROCEX = WM_USER + 81, - EM_SETWORDWRAPMODE = WM_USER + 102, - EM_SETZOOM = WM_USER + 225, - EM_SHOWSCROLLBAR = WM_USER + 96, - EM_STOPGROUPTYPING = WM_USER + 88, - EM_STREAMIN = WM_USER + 73, - EM_STREAMOUT = WM_USER + 74 - }; - const int ENM_PROTECTED = 0x00200000; - - public static void SetNotifyProtect(RichTextBox richTextBox) - { - //int oldEventMask = SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_GETEVENTMASK,0, 0); - int oldEventMask = SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETEVENTMASK, 0, 0); - int newEventMask = oldEventMask | ENM_PROTECTED; - int result = SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETEVENTMASK, 0, newEventMask); - } - public static CharFormatTwo GetCharFormat(RichTextBox richTextBox, RTBSelection selection) - { - CharFormat2 cf = new CharFormat2(); - cf.cbSize = Marshal.SizeOf(cf); - if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_GETCHARFORMAT, selection, ref cf) == 0) - throw new Win32Exception(); - return new CharFormatTwo(cf); - } - public static void SetCharFormat(RichTextBox richTextBox, RTBSelection selection, CharFormatTwo cft) - { - try - { - CharFormat2 cf2 = cft.CharFormat2; - if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETCHARFORMAT, selection, ref cf2) == 0) - throw new Win32Exception(); - } - catch (Exception ex) - { - Console.WriteLine("Error on SetCharFormat {0}", ex.Message); - } - - } - - public static void ToggleBold(bool bSet, RichTextBox richTextBox, RTBSelection selection) - { - CharFormatTwo cft = GetCharFormat(richTextBox, selection); - if (bSet) - { - cft.dwEffects |= CharFormatEffects.CFE_BOLD; - cft.dwMask |= CharFormatMasks.CFM_BOLD; - } - else - { - cft.dwEffects &= ~RTBAPI.CharFormatEffects.CFE_BOLD; - } - SetCharFormat(richTextBox, selection, cft); - } - public static void UnProtect(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_PROTECTED; - cft.dwEffects = CharFormatEffects.CFE_NONE; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - public static void Protect(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_PROTECTED; - cft.dwEffects = CharFormatEffects.CFE_PROTECTED; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - public static void UnLink(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_LINK; - cft.dwEffects = CharFormatEffects.CFE_NONE; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - public static void Link(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_LINK; - cft.dwEffects = CharFormatEffects.CFE_LINK; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - - public enum RTBSelection : int - { - SCF_DEFAULT = 0x0000, - SCF_SELECTION = 0x0001, - SCF_WORD = 0x0002, - SCF_ALL = 0x0004, - SCF_USEUIRULES = 0x0008 - } - public class CharFormatTwo - { - public CharFormatTwo(CharFormat2 cf) - { - _CharFormat2 = cf; - } - private CharFormat2 _CharFormat2; - [Browsable(false)] - public CharFormat2 CharFormat2 - { - get { return _CharFormat2; } - } - [Browsable(false)] - public int cbSize - { - get { return _CharFormat2.cbSize; } - set { _CharFormat2.cbSize = value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public CharFormatMasks dwMask - { - get { return (CharFormatMasks)_CharFormat2.dwMask; } - set { _CharFormat2.dwMask = (uint)value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public CharFormatEffects dwEffects - { - get { return (CharFormatEffects)_CharFormat2.dwEffects; } - set { _CharFormat2.dwEffects = (uint)value; } - } - public int yHeight - { - get { return _CharFormat2.yHeight; } - set { _CharFormat2.yHeight = value; } - } - public int yOffset - { - get { return _CharFormat2.yOffset; } - set { _CharFormat2.yOffset = value; } - } - private Color Int2Color(int color) - { - return Color.FromArgb(color % 256, (color / 256) % 256, color / (256 * 256)); - } - private int Color2Int(Color color) - { - return color.R + (color.G * 256) + (color.B * 256 * 256); - } - public Color crTextColor - { - get { return Int2Color(_CharFormat2.crTextColor); } - set { _CharFormat2.crTextColor = Color2Int(value); } - } - public byte bCharSet - { - get { return _CharFormat2.bCharSet; } - set { _CharFormat2.bCharSet = value; } - } - public byte bPitchAndFamily - { - get { return _CharFormat2.bPitchAndFamily; } - set { _CharFormat2.bPitchAndFamily = value; } - } - public string szFaceName - { - get { return _CharFormat2.szFaceName; } - set { _CharFormat2.szFaceName = value; } - } - public short wWeight - { - get { return _CharFormat2.wWeight; } - set { _CharFormat2.wWeight = value; } - } - public short sSpacing - { - get { return _CharFormat2.sSpacing; } - set { _CharFormat2.sSpacing = value; } - } - public Color crBackColor - { - get { return Int2Color(_CharFormat2.crBackColor); } - set { _CharFormat2.crBackColor = Color2Int(value); } - } - public int lcid - { - get { return _CharFormat2.lcid; } - set { _CharFormat2.lcid = value; } - } - public int dwReserved - { - get { return _CharFormat2.dwReserved; } - set { _CharFormat2.dwReserved = value; } - } - public short sStyle - { - get { return _CharFormat2.sStyle; } - set { _CharFormat2.sStyle = value; } - } - public short wKerning - { - get { return _CharFormat2.wKerning; } - set { _CharFormat2.wKerning = value; } - } - public CharUnderline bUnderlineType - { - get { return (CharUnderline)_CharFormat2.bUnderlineType; } - set { _CharFormat2.bUnderlineType = (byte)value; } - } - public byte bAnimation - { - get { return _CharFormat2.bAnimation; } - set { _CharFormat2.bAnimation = value; } - } - public byte bRevAuthor - { - get { return _CharFormat2.bRevAuthor; } - set { _CharFormat2.bRevAuthor = value; } - } - public byte bReserved1 - { - get { return _CharFormat2.bReserved1; } - set { _CharFormat2.bReserved1 = value; } - } - } - public struct CharFormat2 - { - public int cbSize; - public uint dwMask; - public uint dwEffects; - public int yHeight; - public int yOffset; - public int crTextColor; - public byte bCharSet; - public byte bPitchAndFamily; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string szFaceName; - public short wWeight; - public short sSpacing; - public int crBackColor; - public int lcid; - public int dwReserved; - public short sStyle; - public short wKerning; - public byte bUnderlineType; - public byte bAnimation; - public byte bRevAuthor; - public byte bReserved1; - } - public enum CharFormatMasks : uint - { - CFM_NONE = 0, - CFM_BOLD = 0x00000001, - CFM_ITALIC = 0x00000002, - CFM_UNDERLINE = 0x00000004, - CFM_STRIKEOUT = 0x00000008, - CFM_PROTECTED = 0x00000010, - CFM_LINK = 0x00000020, // Exchange hyperlink extension - CFM_SIZE = 0x80000000, - CFM_COLOR = 0x40000000, - CFM_FACE = 0x20000000, - CFM_OFFSET = 0x10000000, - CFM_CHARSET = 0x08000000, - CFM_SMALLCAPS = 0x0040, - CFM_ALLCAPS = 0x0080, - CFM_HIDDEN = 0x0100, - CFM_OUTLINE = 0x0200, - CFM_SHADOW = 0x0400, - CFM_EMBOSS = 0x0800, - CFM_IMPRINT = 0x1000, - CFM_DISABLED = 0x2000, - CFM_REVISED = 0x4000, - CFM_BACKCOLOR = 0x04000000, - CFM_LCID = 0x02000000, - CFM_UNDERLINETYPE = 0x00800000, - CFM_WEIGHT = 0x00400000, - CFM_SPACING = 0x00200000, - CFM_KERNING = 0x00100000, - CFM_STYLE = 0x00080000, - CFM_ANIMATION = 0x00040000, - CFM_REVAUTHOR = 0x00008000, - CFM_SUBSCRIPT = 0x00010000, - CFM_SUPERSCRIPT = 0x00020000 - // CFM_SUBorSUPERSCRIPT = 0x00030000 - } - public enum CharFormatEffects : uint - { - CFE_NONE = 0, - CFE_BOLD = 0x0001, - CFE_ITALIC = 0x0002, - CFE_UNDERLINE = 0x0004, - CFE_STRIKEOUT = 0x0008, - CFE_PROTECTED = 0x0010, - CFE_LINK = 0x0020, - CFE_AUTOBACKCOLOR = 0x04000000, // NOTE: this corresponds to CFM_BACKCOLOR, which controls it - CFE_AUTOCOLOR = 0x40000000, // NOTE: this corresponds to CFM_COLOR, which controls it - CFE_SUBSCRIPT = 0x00010000, // Superscript and subscript are - CFE_SUPERSCRIPT = 0x00020000, // mutually exclusive - CFE_SMALLCAPS = 0x0040, - CFE_ALLCAPS = 0x0080, - CFE_HIDDEN = 0x0100, - CFE_OUTLINE = 0x0200, - CFE_SHADOW = 0x0400, - CFE_EMBOSS = 0x0800, - CFE_IMPRINT = 0x1000, - CFE_DISABLED = 0x2000, - CFE_REVISED = 0x4000 - } - public enum CharUnderline : byte - { - CFU_UNDERLINENONE = 0, - CFU_UNDERLINE = 1, - CFU_UNDERLINEWORD = 2, // displayed as ordinary underline - CFU_UNDERLINEDOUBLE = 3, // displayed as ordinary underline - CFU_UNDERLINEDOTTED = 4, - CFU_UNDERLINEDASH = 5, - CFU_UNDERLINEDASHDOT = 6, - CFU_UNDERLINEDASHDOTDOT = 7, - CFU_UNDERLINEWAVE = 8, - CFU_UNDERLINETHICK = 9, - CFU_INVERT = 0xFE // For IME composition fake a selection. - } - public enum ParaFormatMasks : uint - { - PFM_NONE = 0, - PFM_STARTINDENT = 0x00000001, - PFM_RIGHTINDENT = 0x00000002, - PFM_OFFSET = 0x00000004, - PFM_ALIGNMENT = 0x00000008, - PFM_TABSTOPS = 0x00000010, - PFM_NUMBERING = 0x00000020, - PFM_SPACEBEFORE = 0x00000040, - PFM_SPACEAFTER = 0x00000080, - PFM_LINESPACING = 0x00000100, - PFM_RESERVED = 0x00000200, - PFM_STYLE = 0x00000400, - PFM_BORDER = 0x00000800, - PFM_SHADING = 0x00001000, - PFM_NUMBERINGSTYLE = 0x00002000, - PFM_NUMBERINGTAB = 0x00004000, - PFM_NUMBERINGSTART = 0x00008000, - // PFM_DIR = 0x00010000, - PFM_RTLPARA = 0x00010000, - PFM_KEEP = 0x00020000, - PFM_KEEPNEXT = 0x00040000, - PFM_PAGEBREAKBEFORE = 0x00080000, - PFM_NOLINENUMBER = 0x00100000, - PFM_NOWIDOWCONTROL = 0x00200000, - PFM_DONOTHYPHEN = 0x00400000, - PFM_SIDEBYSIDE = 0x00800000, - PFM_TABLEROWDELIMITER = 0x10000000, - PFM_TEXTWRAPPINGBREAK = 0x20000000, - PFM_TABLE = 0x40000000, - PFM_OFFSETINDENT = 0x80000000 - } - public enum ParaFormatEffects : ushort - { - PFE_RTLPARA = 0x0001, - PFE_KEEP = 0x0002, - PFE_KEEPNEXT = 0x0004, - PFE_PAGEBREAKBEFORE = 0x0008, - PFE_NOLINENUMBER = 0x0010, - PFE_NOWIDOWCONTROL = 0x0020, - PFE_DONOTHYPHEN = 0x0040, - PFE_SIDEBYSIDE = 0x0080, - PFE_TABLEROW = 0xc000, /* These 3 options are mutually */ - PFE_TABLECELLEND = 0x8000, /* exclusive and each imply */ - PFE_TABLECELL = 0x4000, /* that para is part of a table*/ - } - public enum ParaAlignment : ushort - { - PFA_LEFT = 1, - PFA_RIGHT = 2, - PFA_CENTER = 3, - PFA_JUSTIFY = 4, - PFA_FULL_INTERWORD = 5 - } - public enum ParaNumbering : ushort - { - PFN_NONE = 0, - PFN_BULLET = 1, - PFN_ARABIC = 2, - PFN_LOWER = 3, - PFN_UPPER = 4, - PFN_LOWERROMAN = 5, - PFN_UPPERROMAN = 6, - PFN_UNI = 7 - } - public enum ParaSpacing : byte - { - PFS_SINGLE = 0, - PFS_ONEANDONEHALF = 1, - PFS_DOUBLE = 2, - PFS_EXACTSINGLEMIN = 3, - PFS_EXACT = 4, - PFS_EXACT20 = 5 - } - - } - public class FlagEnumUIEditor : UITypeEditor - { - // The checklistbox - private FlagCheckedListBox flagEnumCB; - - public FlagEnumUIEditor() - { - flagEnumCB = new FlagCheckedListBox(); - flagEnumCB.BorderStyle = BorderStyle.None; - } - - public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) - { - if (context != null - && context.Instance != null - && provider != null) - { - - IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); - - if (edSvc != null) - { - - Enum e = (Enum)Convert.ChangeType(value, context.PropertyDescriptor.PropertyType); - flagEnumCB.EnumValue = e; - edSvc.DropDownControl(flagEnumCB); - return flagEnumCB.EnumValue; - - } - } - return null; - } - - public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) - { - return UITypeEditorEditStyle.DropDown; - } - - - } - public class FlagCheckedListBox : CheckedListBox - { - private System.ComponentModel.Container components = null; - - public FlagCheckedListBox() - { - // This call is required by the Windows.Forms Form Designer. - InitializeComponent(); - - // TODO: Add any initialization after the InitForm call - - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - private void InitializeComponent() - { - // - // FlaggedCheckedListBox - // - this.CheckOnClick = true; - - } - #endregion - - // Adds an integer value and its associated description - public FlagCheckedListBoxItem Add(uint v, string c) - { - FlagCheckedListBoxItem item = new FlagCheckedListBoxItem(v, c); - Items.Add(item); - return item; - } - - public FlagCheckedListBoxItem Add(FlagCheckedListBoxItem item) - { - Items.Add(item); - return item; - } - - protected override void OnItemCheck(ItemCheckEventArgs e) - { - base.OnItemCheck(e); - - if (isUpdatingCheckStates) - return; - - // Get the checked/unchecked item - FlagCheckedListBoxItem item = Items[e.Index] as FlagCheckedListBoxItem; - // Update other items - UpdateCheckedItems(item, e.NewValue); - } - - // Checks/Unchecks items depending on the give bitvalue - protected void UpdateCheckedItems(uint value) - { - - isUpdatingCheckStates = true; - - // Iterate over all items - for (int i = 0; i < Items.Count; i++) - { - FlagCheckedListBoxItem item = Items[i] as FlagCheckedListBoxItem; - - if (item.value == 0) - { - SetItemChecked(i, value == 0); - } - else - { - - // If the bit for the current item is on in the bitvalue, check it - if ((item.value & value) == item.value && item.value != 0) - SetItemChecked(i, true); - // Otherwise uncheck it - else - SetItemChecked(i, false); - } - } - - isUpdatingCheckStates = false; - - } - - // Updates items in the checklistbox - // composite = The item that was checked/unchecked - // cs = The check state of that item - protected void UpdateCheckedItems(FlagCheckedListBoxItem composite, CheckState cs) - { - - // If the value of the item is 0, call directly. - if (composite.value == 0) - UpdateCheckedItems(0); - - - // Get the total value of all checked items - uint sum = 0; - for (int i = 0; i < Items.Count; i++) - { - FlagCheckedListBoxItem item = Items[i] as FlagCheckedListBoxItem; - - // If item is checked, add its value to the sum. - if (GetItemChecked(i)) - sum |= item.value; - } - - // If the item has been unchecked, remove its bits from the sum - if (cs == CheckState.Unchecked) - sum = sum & (~composite.value); - // If the item has been checked, combine its bits with the sum - else - sum |= composite.value; - - // Update all items in the checklistbox based on the final bit value - UpdateCheckedItems(sum); - - } - - private bool isUpdatingCheckStates = false; - - // Gets the current bit value corresponding to all checked items - public uint GetCurrentValue() - { - uint sum = 0; - - for (int i = 0; i < Items.Count; i++) - { - FlagCheckedListBoxItem item = Items[i] as FlagCheckedListBoxItem; - - if (GetItemChecked(i)) - sum |= item.value; - } - - return sum; - } - - Type enumType; - Enum enumValue; - - // Adds items to the checklistbox based on the members of the enum - private void FillEnumMembers() - { - foreach (string name in Enum.GetNames(enumType)) - { - object val = Enum.Parse(enumType, name); - uint intVal = (uint)Convert.ChangeType(val, typeof(uint)); - - Add(intVal, name); - } - } - - // Checks/unchecks items based on the current value of the enum variable - private void ApplyEnumValue() - { - uint intVal = (uint)Convert.ChangeType(enumValue, typeof(uint)); - UpdateCheckedItems(intVal); - - } - - [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Hidden)] - public Enum EnumValue - { - get - { - object e = Enum.ToObject(enumType, GetCurrentValue()); - return (Enum)e; - } - set - { - - Items.Clear(); - enumValue = value; // Store the current enum value - enumType = value.GetType(); // Store enum type - FillEnumMembers(); // Add items for enum members - ApplyEnumValue(); // Check/uncheck items depending on enum value - - } - } - - - } - public class FlagCheckedListBoxItem - { - public FlagCheckedListBoxItem(uint v, string c) - { - value = v; - caption = c; - } - - public override string ToString() - { - return caption; - } - - // Returns true if the value corresponds to a single bit being set - public bool IsFlag - { - get - { - return ((value & (value - 1)) == 0); - } - } - - // Returns true if this value is a member of the composite bit value - public bool IsMemberFlag(FlagCheckedListBoxItem composite) - { - return (IsFlag && ((value & composite.value) == value)); - } - - public uint value; - public string caption; - } - -} diff --git a/PROMS/TestWndProc/TestWndProc/TestWndProc.csproj b/PROMS/TestWndProc/TestWndProc/TestWndProc.csproj deleted file mode 100644 index 7f7385b0..00000000 --- a/PROMS/TestWndProc/TestWndProc/TestWndProc.csproj +++ /dev/null @@ -1,113 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29} - WinExe - Properties - TestWndProc - TestWndProc - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmPG.cs - - - Form - - - frmWndProcTest.cs - - - UserControl - - - MyPanel.cs - - - Component - - - MyRTB.cs - - - Component - - - MyTextBox.cs - - - - - Designer - frmPG.cs - - - Designer - frmWndProcTest.cs - - - Designer - MyPanel.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - Component - - - - - \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmPG.Designer.cs b/PROMS/TestWndProc/TestWndProc/frmPG.Designer.cs deleted file mode 100644 index a43267e0..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmPG.Designer.cs +++ /dev/null @@ -1,59 +0,0 @@ -namespace TestWndProc -{ - partial class frmPG - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.pg = new System.Windows.Forms.PropertyGrid(); - this.SuspendLayout(); - // - // pg - // - this.pg.Dock = System.Windows.Forms.DockStyle.Fill; - this.pg.Location = new System.Drawing.Point(0, 0); - this.pg.Name = "pg"; - this.pg.Size = new System.Drawing.Size(498, 382); - this.pg.TabIndex = 0; - // - // frmPG - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(498, 382); - this.Controls.Add(this.pg); - this.Name = "frmPG"; - this.Text = "frmPG"; - this.Load += new System.EventHandler(this.frmPG_Load); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.PropertyGrid pg; - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmPG.cs b/PROMS/TestWndProc/TestWndProc/frmPG.cs deleted file mode 100644 index c02b24a7..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmPG.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace TestWndProc -{ - public partial class frmPG : Form - { - private Object _MyObject = null; - public Object MyObject - { - get { return _MyObject; } - set { _MyObject = value; pg.SelectedObject = _MyObject; } - } - public frmPG(Object myObject) - { - InitializeComponent(); - _MyObject=myObject; - } - - private void frmPG_Load(object sender, EventArgs e) - { - MyObject = _MyObject; - } - - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmPG.resx b/PROMS/TestWndProc/TestWndProc/frmPG.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmPG.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/TestWndProc/TestWndProc/frmWndProcTest.Designer.cs b/PROMS/TestWndProc/TestWndProc/frmWndProcTest.Designer.cs deleted file mode 100644 index 128bbe86..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.Designer.cs +++ /dev/null @@ -1,74 +0,0 @@ -namespace TestWndProc -{ - partial class frmWndProcTest - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.myPanel1 = new TestWndProc.MyPanel(); - this.richTextBox1 = new System.Windows.Forms.RichTextBox(); - this.SuspendLayout(); - // - // myPanel1 - // - this.myPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.myPanel1.Location = new System.Drawing.Point(0, 0); - this.myPanel1.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); - this.myPanel1.Name = "myPanel1"; - this.myPanel1.ShowDebug = true; - this.myPanel1.Size = new System.Drawing.Size(650, 594); - this.myPanel1.TabIndex = 0; - // - // richTextBox1 - // - this.richTextBox1.Location = new System.Drawing.Point(9, 487); - this.richTextBox1.Name = "richTextBox1"; - this.richTextBox1.Size = new System.Drawing.Size(471, 84); - this.richTextBox1.TabIndex = 1; - this.richTextBox1.Text = ""; - // - // frmWndProcTest - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(650, 594); - this.Controls.Add(this.richTextBox1); - this.Controls.Add(this.myPanel1); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "frmWndProcTest"; - this.Text = "WndProcTest"; - this.ResumeLayout(false); - - } - - #endregion - - private MyPanel myPanel1; - private System.Windows.Forms.RichTextBox richTextBox1; - } -} - diff --git a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.cs b/PROMS/TestWndProc/TestWndProc/frmWndProcTest.cs deleted file mode 100644 index b3b03846..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace TestWndProc -{ - public partial class frmWndProcTest : Form - { - public frmWndProcTest() - { - InitializeComponent(); - richTextBox1.Text = "I am going to type some text that should wrap. I am going to type some text that should wrap. I am going to type some text that should wrap. I am going to type some text that should wrap."; - } - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.resx b/PROMS/TestWndProc/TestWndProc/frmWndProcTest.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessBase.cs deleted file mode 100644 index 303ff2f4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessBase.cs +++ /dev/null @@ -1,253 +0,0 @@ -using System; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the base class from which most business objects - /// will be derived. - /// - /// - /// - /// This class is the core of the CSLA .NET framework. To create - /// a business object, inherit from this class. - /// - /// Please refer to 'Expert C# 2005 Business Objects' for - /// full details on the use of this base class to create business - /// objects. - /// - /// - /// Type of the business object being defined. - [Serializable()] - public abstract class BusinessBase : - Core.BusinessBase, Core.ISavable where T : BusinessBase - { - - #region Object ID Value - - /// - /// Override this method to return a unique identifying - /// value for this object. - /// - /// - /// If you can not provide a unique identifying value, it - /// is best if you can generate such a unique value (even - /// temporarily). If you can not do that, then return - /// and then manually override the - /// , and - /// methods in your business object. - /// - protected abstract object GetIdValue(); - - #endregion - - #region System.Object Overrides - - /// - /// Compares this object for equality with another object, using - /// the results of to determine - /// equality. - /// - /// The object to be compared. - public override bool Equals(object obj) - { - if (obj is T) - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.Equals(((T)obj).GetIdValue()); - } - else - return false; - } - - /// - /// Returns a hash code value for this object, based on - /// the results of . - /// - public override int GetHashCode() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.GetHashCode(); - } - - /// - /// Returns a text representation of this object by - /// returning the value - /// in text form. - /// - public override string ToString() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.ToString(); - } - - #endregion - - #region Clone - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - public T Clone() - { - return (T)GetClone(); - } - - #endregion - - #region Data Access - - /// - /// Saves the object to the database. - /// - /// - /// - /// Calling this method starts the save operation, causing the object - /// to be inserted, updated or deleted within the database based on the - /// object's current state. - /// - /// If is - /// the object will be deleted. Otherwise, if - /// is the object will be inserted. - /// Otherwise the object's data will be updated in the database. - /// - /// All this is contingent on . If - /// this value is , no data operation occurs. - /// It is also contingent on . - /// If this value is an - /// exception will be thrown to indicate that the UI attempted to save an - /// invalid object. - /// - /// It is important to note that this method returns a new version of the - /// business object that contains any data updated during the save operation. - /// You MUST update all object references to use this new version of the - /// business object in order to have access to the correct object data. - /// - /// You can override this method to add your own custom behaviors to the save - /// operation. For instance, you may add some security checks to make sure - /// the user can save the object. If all security checks pass, you would then - /// invoke the base Save method via base.Save(). - /// - /// - /// A new object containing the saved values. - public virtual T Save() - { - T result; - if (this.IsChild) - throw new NotSupportedException(Resources.NoSaveChildException); - if (EditLevel > 0) - throw new Validation.ValidationException(Resources.NoSaveEditingException); - if (!IsValid) - throw new Validation.ValidationException(Resources.NoSaveInvalidException); - if (IsDirty) - result = (T)DataPortal.Update(this); - else - result = (T)this; - OnSaved(result); - return result; - } - - /// - /// Saves the object to the database, forcing - /// IsNew to and IsDirty to True. - /// - /// - /// If , triggers overriding IsNew and IsDirty. - /// If then it is the same as calling Save(). - /// - /// A new object containing the saved values. - /// - /// This overload is designed for use in web applications - /// when implementing the Update method in your - /// data wrapper object. - /// - public T Save(bool forceUpdate) - { - if (forceUpdate && IsNew) - { - // mark the object as old - which makes it - // not dirty - MarkOld(); - // now mark the object as dirty so it can save - MarkDirty(true); - } - return this.Save(); - } - - #endregion - - #region ISavable Members - - object Csla.Core.ISavable.Save() - { - return Save(); - } - - - [NonSerialized] - [NotUndoable] - private EventHandler _nonSerializableSavedHandlers; - [NotUndoable] - private EventHandler _serializableSavedHandlers; - - /// - /// Event raised when an object has been saved. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", - "CA1062:ValidateArgumentsOfPublicMethods")] - public event EventHandler Saved - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_nonSerializableSavedHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_nonSerializableSavedHandlers, value); - } - } - - /// - /// Raises the Saved event, indicating that the - /// object has been saved, and providing a reference - /// to the new object instance. - /// - /// The new object instance. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void OnSaved(T newObject) - { - Csla.Core.SavedEventArgs args = new Csla.Core.SavedEventArgs(newObject); - if (_nonSerializableSavedHandlers != null) - _nonSerializableSavedHandlers.Invoke(this, args); - if (_serializableSavedHandlers != null) - _serializableSavedHandlers.Invoke(this, args); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessListBase.cs deleted file mode 100644 index 5e6cbe3e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessListBase.cs +++ /dev/null @@ -1,762 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Runtime.Serialization; -using Csla.Properties; - -namespace Csla -{ - /// - /// This is the base class from which most business collections - /// or lists will be derived. - /// - /// Type of the business object being defined. - /// Type of the child objects contained in the list. - [System.Diagnostics.CodeAnalysis.SuppressMessage( - "Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class BusinessListBase : - Core.ExtendedBindingList, - Core.IEditableCollection, ICloneable, Core.ISavable, Core.IParent - where T : BusinessListBase - where C : Core.IEditableBusinessObject - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected BusinessListBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region IsDirty, IsValid - - /// - /// Gets a value indicating whether this object's data has been changed. - /// - public bool IsDirty - { - get - { - // any non-new deletions make us dirty - foreach (C item in DeletedList) - if (!item.IsNew) - return true; - - // run through all the child objects - // and if any are dirty then then - // collection is dirty - foreach (C child in this) - if (child.IsDirty) - return true; - return false; - } - } - - /// - /// Gets a value indicating whether this object is currently in - /// a valid state (has no broken validation rules). - /// - public virtual bool IsValid - { - get - { - // run through all the child objects - // and if any are invalid then the - // collection is invalid - foreach (C child in this) - if (!child.IsValid) - return false; - return true; - } - } - - #endregion - - #region Begin/Cancel/ApplyEdit - - /// - /// Starts a nested edit on the object. - /// - /// - /// - /// When this method is called the object takes a snapshot of - /// its current state (the values of its variables). This snapshot - /// can be restored by calling - /// or committed by calling . - /// - /// This is a nested operation. Each call to BeginEdit adds a new - /// snapshot of the object's state to a stack. You should ensure that - /// for each call to BeginEdit there is a corresponding call to either - /// CancelEdit or ApplyEdit to remove that snapshot from the stack. - /// - /// See Chapters 2 and 3 for details on n-level undo and state stacking. - /// - /// This method triggers the copying of all child object states. - /// - /// - public void BeginEdit() - { - if (this.IsChild) - throw new NotSupportedException(Resources.NoBeginEditChildException); - - CopyState(); - } - - /// - /// Cancels the current edit process, restoring the object's state to - /// its previous values. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be restored. This resets the object's values - /// to the point of the last - /// call. - /// - /// This method triggers an undo in all child objects. - /// - /// - public void CancelEdit() - { - if (this.IsChild) - throw new NotSupportedException(Resources.NoCancelEditChildException); - - UndoChanges(); - } - - /// - /// Commits the current edit process. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be discarded, thus committing any changes made - /// to the object's state since the last - /// call. - /// - /// This method triggers an - /// in all child objects. - /// - /// - public void ApplyEdit() - { - if (this.IsChild) - throw new NotSupportedException(Resources.NoApplyEditChildException); - - AcceptChanges(); - } - - void Core.IParent.ApplyEditChild(Core.IEditableBusinessObject child) - { - EditChildComplete(child); - } - - /// - /// Override this method to be notified when a child object's - /// method has - /// completed. - /// - /// The child object that was edited. - protected virtual void EditChildComplete(Core.IEditableBusinessObject child) - { - - // do nothing, we don't really care - // when a child has its edits applied - } - - #endregion - - #region N-level undo - - void Core.IUndoableObject.CopyState() - { - CopyState(); - } - - void Core.IUndoableObject.UndoChanges() - { - UndoChanges(); - } - - void Core.IUndoableObject.AcceptChanges() - { - AcceptChanges(); - } - - private void CopyState() - { - // we are going a level deeper in editing - _editLevel += 1; - - // cascade the call to all child objects - foreach (C child in this) - child.CopyState(); - - // cascade the call to all deleted child objects - foreach (C child in DeletedList) - child.CopyState(); - } - - private void UndoChanges() - { - C child; - - // we are coming up one edit level - _editLevel -= 1; - if (_editLevel < 0) _editLevel = 0; - - // Cancel edit on all current items - for (int index = Count - 1; index >= 0; index--) - { - child = this[index]; - child.UndoChanges(); - // if item is below its point of addition, remove - if (child.EditLevelAdded > _editLevel) - { - bool oldAllowRemove = this.AllowRemove; - try - { - this.AllowRemove = true; - RemoveAt(index); - } - finally - { - this.AllowRemove = oldAllowRemove; - } - } - } - - // cancel edit on all deleted items - for (int index = DeletedList.Count - 1; index >= 0; index--) - { - child = DeletedList[index]; - child.UndoChanges(); - if (child.EditLevelAdded > _editLevel) - { - // if item is below its point of addition, remove - DeletedList.RemoveAt(index); - } - else - { - // if item is no longer deleted move back to main list - if (!child.IsDeleted) UnDeleteChild(child); - } - } - } - - private void AcceptChanges() - { - // we are coming up one edit level - _editLevel -= 1; - if (_editLevel < 0) _editLevel = 0; - - // cascade the call to all child objects - foreach (C child in this) - { - child.AcceptChanges(); - // if item is below its point of addition, lower point of addition - if (child.EditLevelAdded > _editLevel) child.EditLevelAdded = _editLevel; - } - - // cascade the call to all deleted child objects - for (int index = DeletedList.Count - 1; index >= 0; index--) - { - C child = DeletedList[index]; - child.AcceptChanges(); - // if item is below its point of addition, remove - if (child.EditLevelAdded > _editLevel) - DeletedList.RemoveAt(index); - } - } - - #endregion - - #region Delete and Undelete child - - private List _deletedList; - - /// - /// A collection containing all child objects marked - /// for deletion. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage( - "Microsoft.Design", "CA1002:DoNotExposeGenericLists")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected List DeletedList - { - get - { - if (_deletedList == null) - _deletedList = new List(); - return _deletedList; - } - } - - private void DeleteChild(C child) - { - // mark the object as deleted - child.DeleteChild(); - // and add it to the deleted collection for storage - DeletedList.Add(child); - } - - private void UnDeleteChild(C child) - { - // we are inserting an _existing_ object so - // we need to preserve the object's editleveladded value - // because it will be changed by the normal add process - int saveLevel = child.EditLevelAdded; - Add(child); - child.EditLevelAdded = saveLevel; - - // since the object is no longer deleted, remove it from - // the deleted collection - DeletedList.Remove(child); - } - - /// - /// Returns if the internal deleted list - /// contains the specified child object. - /// - /// Child object to check. - [EditorBrowsable(EditorBrowsableState.Advanced)] - public bool ContainsDeleted(C item) - { - return DeletedList.Contains(item); - } - - #endregion - - #region Insert, Remove, Clear - - /// - /// This method is called by a child object when it - /// wants to be removed from the collection. - /// - /// The child object to remove. - void Core.IEditableCollection.RemoveChild(Csla.Core.IEditableBusinessObject child) - { - Remove((C)child); - } - - /// - /// This method is called by a child object when it - /// wants to be removed from the collection. - /// - /// The child object to remove. - void Core.IParent.RemoveChild(Csla.Core.IEditableBusinessObject child) - { - Remove((C)child); - } - - /// - /// Sets the edit level of the child object as it is added. - /// - /// Index of the item to insert. - /// Item to insert. - protected override void InsertItem(int index, C item) - { - // when an object is inserted we assume it is - // a new object and so the edit level when it was - // added must be set - item.EditLevelAdded = _editLevel; - item.SetParent(this); - base.InsertItem(index, item); - } - - /// - /// Marks the child object for deletion and moves it to - /// the collection of deleted objects. - /// - /// Index of the item to remove. - protected override void RemoveItem(int index) - { - // when an object is 'removed' it is really - // being deleted, so do the deletion work - C child = this[index]; - base.RemoveItem(index); - CopyToDeletedList(child); - } - - private void CopyToDeletedList(C child) - { - DeleteChild(child); - INotifyPropertyChanged c = child as INotifyPropertyChanged; - if (c != null) - c.PropertyChanged -= new PropertyChangedEventHandler(Child_PropertyChanged); - } - - /// - /// Clears the collection, moving all active - /// items to the deleted list. - /// - protected override void ClearItems() - { - while (base.Count > 0) RemoveItem(0); - base.ClearItems(); - } - - /// - /// Replaces the item at the specified index with - /// the specified item, first moving the original - /// item to the deleted list. - /// - /// The zero-based index of the item to replace. - /// - /// The new value for the item at the specified index. - /// The value can be null for reference types. - /// - /// - protected override void SetItem(int index, C item) - { - // copy the original object to the deleted list, - // marking as deleted, etc. - C child = default(C); - if (!ReferenceEquals(this[index], item)) - child = this[index]; - // replace the original object with this new - // object - base.SetItem(index, item); - if (child != null) - CopyToDeletedList(child); - } - - #endregion - - #region Edit level tracking - - // keep track of how many edit levels we have - private int _editLevel; - - /// - /// Returns the current edit level of the object. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected int EditLevel - { - get { return _editLevel; } - } - - #endregion - - #region IsChild - - [NotUndoable()] - private bool _isChild = false; - - /// - /// Indicates whether this collection object is a child object. - /// - /// True if this is a child object. - protected bool IsChild - { - get { return _isChild; } - } - - /// - /// Marks the object as being a child object. - /// - /// - /// - /// By default all business objects are 'parent' objects. This means - /// that they can be directly retrieved and updated into the database. - /// - /// We often also need child objects. These are objects which are contained - /// within other objects. For instance, a parent Invoice object will contain - /// child LineItem objects. - /// - /// To create a child object, the MarkAsChild method must be called as the - /// object is created. Please see Chapter 7 for details on the use of the - /// MarkAsChild method. - /// - /// - protected void MarkAsChild() - { - _isChild = true; - } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - public T Clone() - { - return (T)GetClone(); - } - - #endregion - - #region Cascade Child events - - private void Child_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - for (int index = 0; index < Count; index++) - { - if (ReferenceEquals(this[index], sender)) - { - OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, index)); - return; - } - } - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - OnDeserialized(context); - foreach (Core.IEditableBusinessObject child in this) - { - child.SetParent(this); - INotifyPropertyChanged c = child as INotifyPropertyChanged; - if (c != null) - c.PropertyChanged += new PropertyChangedEventHandler(Child_PropertyChanged); - } - foreach (Core.IEditableBusinessObject child in DeletedList) - child.SetParent(this); - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - // do nothing - this is here so a subclass - // could override if needed - } - - #endregion - - #region Data Access - - /// - /// Saves the object to the database. - /// - /// - /// - /// Calling this method starts the save operation, causing the all child - /// objects to be inserted, updated or deleted within the database based on the - /// each object's current state. - /// - /// All this is contingent on . If - /// this value is , no data operation occurs. - /// It is also contingent on . If this value is - /// an exception will be thrown to - /// indicate that the UI attempted to save an invalid object. - /// - /// It is important to note that this method returns a new version of the - /// business collection that contains any data updated during the save operation. - /// You MUST update all object references to use this new version of the - /// business collection in order to have access to the correct object data. - /// - /// You can override this method to add your own custom behaviors to the save - /// operation. For instance, you may add some security checks to make sure - /// the user can save the object. If all security checks pass, you would then - /// invoke the base Save method via MyBase.Save(). - /// - /// - /// A new object containing the saved values. - public virtual T Save() - { - T result; - if (this.IsChild) - throw new NotSupportedException(Resources.NoSaveChildException); - - if (_editLevel > 0) - throw new Validation.ValidationException(Resources.NoSaveEditingException); - - if (!IsValid) - throw new Validation.ValidationException(Resources.NoSaveInvalidException); - - if (IsDirty) - result = (T)DataPortal.Update(this); - else - result = (T)this; - OnSaved(result); - return result; - } - - /// - /// Override this method to load a new business object with default - /// values from the database. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Create() - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - /// - /// Override this method to allow update of a business - /// object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - /// - /// Override this method to allow immediate deletion of a business object. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - #region ISavable Members - - object Csla.Core.ISavable.Save() - { - return Save(); - } - - [NonSerialized()] - [NotUndoable] - private EventHandler _nonSerializableSavedHandlers; - [NotUndoable] - private EventHandler _serializableSavedHandlers; - - /// - /// Event raised when an object has been saved. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", - "CA1062:ValidateArgumentsOfPublicMethods")] - public event EventHandler Saved - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_nonSerializableSavedHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_nonSerializableSavedHandlers, value); - } - } - - /// - /// Raises the event, indicating that the - /// object has been saved, and providing a reference - /// to the new object instance. - /// - /// The new object instance. - [System.ComponentModel.EditorBrowsable(EditorBrowsableState.Advanced)] - protected void OnSaved(T newObject) - { - Csla.Core.SavedEventArgs args = new Csla.Core.SavedEventArgs(newObject); - if (_nonSerializableSavedHandlers != null) - _nonSerializableSavedHandlers.Invoke(this, args); - if (_serializableSavedHandlers != null) - _serializableSavedHandlers.Invoke(this, args); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CommandBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CommandBase.cs deleted file mode 100644 index a551807f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CommandBase.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the base class from which command - /// objects will be derived. - /// - /// - /// - /// Command objects allow the execution of arbitrary server-side - /// functionality. Most often, this involves the invocation of - /// a stored procedure in the database, but can involve any other - /// type of stateless, atomic call to the server instead. - /// - /// To implement a command object, inherit from CommandBase and - /// override the DataPortal_Execute method. In this method you can - /// implement any server-side code as required. - /// - /// To pass data to/from the server, use instance variables within - /// the command object itself. The command object is instantiated on - /// the client, and is passed by value to the server where the - /// DataPortal_Execute method is invoked. The command object is then - /// returned to the client by value. - /// - /// - [Serializable()] - public abstract class CommandBase : Core.ICommandObject - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected CommandBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Override this method to implement any server-side code - /// that is to be run when the command is executed. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Execute() - { - throw new NotSupportedException(Resources.ExecuteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during server-side processing. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during processing. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BindableBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BindableBase.cs deleted file mode 100644 index ac5b0503..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BindableBase.cs +++ /dev/null @@ -1,107 +0,0 @@ -using System; -using System.ComponentModel; -using System.Reflection; - -namespace Csla.Core -{ - /// - /// This class implements INotifyPropertyChanged - /// in a serialization-safe manner. - /// - [Serializable()] - public abstract class BindableBase : System.ComponentModel.INotifyPropertyChanged - { - [NonSerialized()] - private PropertyChangedEventHandler _nonSerializableHandlers; - private PropertyChangedEventHandler _serializableHandlers; - - /// - /// Creates an instance of the object. - /// - protected BindableBase() - { - - } - - /// - /// Implements a serialization-safe PropertyChanged event. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", - "CA1062:ValidateArgumentsOfPublicMethods")] - public event PropertyChangedEventHandler PropertyChanged - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Combine(_serializableHandlers, value); - else - _nonSerializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Combine(_nonSerializableHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Remove(_serializableHandlers, value); - else - _nonSerializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Remove(_nonSerializableHandlers, value); - } - } - - /// - /// Call this method to raise the PropertyChanged event - /// for all object properties. - /// - /// - /// This method is for backward compatibility with - /// CSLA .NET 1.x. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnIsDirtyChanged() - { - OnUnknownPropertyChanged(); - } - - /// - /// Call this method to raise the PropertyChanged event - /// for all object properties. - /// - /// - /// This method is automatically called by MarkDirty. It - /// actually raises PropertyChanged for an empty string, - /// which tells data binding to refresh all properties. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnUnknownPropertyChanged() - { - OnPropertyChanged(string.Empty); - } - - /// - /// Call this method to raise the PropertyChanged event - /// for a specific property. - /// - /// Name of the property that - /// has changed. - /// - /// This method may be called by properties in the business - /// class to indicate the change in a specific property. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnPropertyChanged(string propertyName) - { - if (_nonSerializableHandlers != null) - _nonSerializableHandlers.Invoke(this, - new PropertyChangedEventArgs(propertyName)); - if (_serializableHandlers != null) - _serializableHandlers.Invoke(this, - new PropertyChangedEventArgs(propertyName)); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BusinessBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BusinessBase.cs deleted file mode 100644 index ed8f7079..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BusinessBase.cs +++ /dev/null @@ -1,1200 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.ComponentModel; -using System.Runtime.Serialization; -using Csla.Properties; - -namespace Csla.Core -{ - - /// - /// This is the non-generic base class from which most - /// business objects will be derived. - /// - /// - /// See Chapter 3 for details. - /// - [Serializable()] - public abstract class BusinessBase : - Csla.Core.UndoableBase, IEditableBusinessObject, - System.ComponentModel.IEditableObject, System.ComponentModel.IDataErrorInfo, - ICloneable, Csla.Security.IAuthorizeReadWrite - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected BusinessBase() - { - Initialize(); - AddInstanceBusinessRules(); - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - AddBusinessRules(); - } - } - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region IsNew, IsDeleted, IsDirty, IsSavable - - // keep track of whether we are new, deleted or dirty - private bool _isNew = true; - private bool _isDeleted; - private bool _isDirty = true; - - /// - /// Returns if this is a new object, - /// if it is a pre-existing object. - /// - /// - /// An object is considered to be new if its primary identifying (key) value - /// doesn't correspond to data in the database. In other words, - /// if the data values in this particular - /// object have not yet been saved to the database the object is considered to - /// be new. Likewise, if the object's data has been deleted from the database - /// then the object is considered to be new. - /// - /// A value indicating if this object is new. - [Browsable(false)] - public bool IsNew - { - get { return _isNew; } - } - - /// - /// Returns if this object is marked for deletion. - /// - /// - /// CSLA .NET supports both immediate and deferred deletion of objects. This - /// property is part of the support for deferred deletion, where an object - /// can be marked for deletion, but isn't actually deleted until the object - /// is saved to the database. This property indicates whether or not the - /// current object has been marked for deletion. If it is - /// , the object will - /// be deleted when it is saved to the database, otherwise it will be inserted - /// or updated by the save operation. - /// - /// A value indicating if this object is marked for deletion. - [Browsable(false)] - public bool IsDeleted - { - get { return _isDeleted; } - } - - /// - /// Returns if this object's data has been changed. - /// - /// - /// - /// When an object's data is changed, CSLA .NET makes note of that change - /// and considers the object to be 'dirty' or changed. This value is used to - /// optimize data updates, since an unchanged object does not need to be - /// updated into the database. All new objects are considered dirty. All objects - /// marked for deletion are considered dirty. - /// - /// Once an object's data has been saved to the database (inserted or updated) - /// the dirty flag is cleared and the object is considered unchanged. Objects - /// newly loaded from the database are also considered unchanged. - /// - /// - /// A value indicating if this object's data has been changed. - [Browsable(false)] - public virtual bool IsDirty - { - get { -// Console.WriteLine("IsDirty = {0} , Type = {1}", _isDirty, GetType().Name); - return _isDirty; - } - } - - /// - /// Marks the object as being a new object. This also marks the object - /// as being dirty and ensures that it is not marked for deletion. - /// - /// - /// - /// Newly created objects are marked new by default. You should call - /// this method in the implementation of DataPortal_Update when the - /// object is deleted (due to being marked for deletion) to indicate - /// that the object no longer reflects data in the database. - /// - /// If you override this method, make sure to call the base - /// implementation after executing your new code. - /// - /// - protected virtual void MarkNew() - { - _isNew = true; - _isDeleted = false; - MarkDirty(); - } - - /// - /// Marks the object as being an old (not new) object. This also - /// marks the object as being unchanged (not dirty). - /// - /// - /// - /// You should call this method in the implementation of - /// DataPortal_Fetch to indicate that an existing object has been - /// successfully retrieved from the database. - /// - /// You should call this method in the implementation of - /// DataPortal_Update to indicate that a new object has been successfully - /// inserted into the database. - /// - /// If you override this method, make sure to call the base - /// implementation after executing your new code. - /// - /// - protected virtual void MarkOld() - { - _isNew = false; - MarkClean(); - } - - /// - /// Marks an object for deletion. This also marks the object - /// as being dirty. - /// - /// - /// You should call this method in your business logic in the - /// case that you want to have the object deleted when it is - /// saved to the database. - /// - protected void MarkDeleted() - { - _isDeleted = true; - MarkDirty(); - } - - /// - /// Marks an object as being dirty, or changed. - /// - /// - /// - /// You should call this method in your business logic any time - /// the object's internal data changes. Any time any instance - /// variable changes within the object, this method should be called - /// to tell CSLA .NET that the object's data has been changed. - /// - /// Marking an object as dirty does two things. First it ensures - /// that CSLA .NET will properly save the object as appropriate. Second, - /// it causes CSLA .NET to tell Windows Forms data binding that the - /// object's data has changed so any bound controls will update to - /// reflect the new values. - /// - /// - protected void MarkDirty() - { - MarkDirty(false); - } - - /// - /// Marks an object as being dirty, or changed. - /// - /// - /// to supress the PropertyChanged event that is otherwise - /// raised to indicate that the object's state has changed. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void MarkDirty(bool suppressEvent) - { - _isDirty = true; - if (!suppressEvent) - OnUnknownPropertyChanged(); - } - - /// - /// Performs processing required when the current - /// property has changed. - /// - /// - /// - /// This method calls CheckRules(propertyName), MarkDirty and - /// OnPropertyChanged(propertyName). MarkDirty is called such - /// that no event is raised for IsDirty, so only the specific - /// property changed event for the current property is raised. - /// - /// This implementation uses System.Diagnostics.StackTrace to - /// determine the name of the current property, and so must be called - /// directly from the property to be checked. - /// - /// - [System.Runtime.CompilerServices.MethodImpl( - System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - protected void PropertyHasChanged() - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - PropertyHasChanged(propertyName); - } - - /// - /// Performs processing required when a property - /// has changed. - /// - /// Name of the property that - /// has changed. - /// - /// This method calls CheckRules(propertyName), MarkDirty and - /// OnPropertyChanged(propertyName). MarkDirty is called such - /// that no event is raised for IsDirty, so only the specific - /// property changed event for the current property is raised. - /// - protected virtual void PropertyHasChanged(string propertyName) - { - ValidationRules.CheckRules(propertyName); - MarkDirty(true); - OnPropertyChanged(propertyName); - } - - /// - /// Forces the object's IsDirty flag to . - /// - /// - /// This method is normally called automatically and is - /// not intended to be called manually. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void MarkClean() - { - _isDirty = false; - OnUnknownPropertyChanged(); - } - - /// - /// Returns if this object is both dirty and valid. - /// - /// - /// An object is considered dirty (changed) if - /// returns . It is - /// considered valid if IsValid - /// returns . The IsSavable property is - /// a combination of these two properties. - /// - /// A value indicating if this object is both dirty and valid. - [Browsable(false)] - public virtual bool IsSavable - { - get { return (IsDirty && IsValid); } - } - - #endregion - - #region Authorization - - [NotUndoable()] - [NonSerialized()] - private Dictionary _readResultCache; - [NotUndoable()] - [NonSerialized()] - private Dictionary _writeResultCache; - [NotUndoable()] - [NonSerialized()] - private System.Security.Principal.IPrincipal _lastPrincipal; - - [NotUndoable()] - [NonSerialized()] - private Security.AuthorizationRules _authorizationRules; - - /// - /// Override this method to add authorization - /// rules for your object's properties. - /// - /// - /// AddInstanceAuthorizationRules is automatically called by CSLA .NET - /// when your object should associate per-instance authorization roles - /// with its properties. - /// - protected virtual void AddInstanceAuthorizationRules() - { - - } - - /// - /// Override this method to add per-type - /// authorization rules for your type's properties. - /// - /// - /// AddAuthorizationRules is automatically called by CSLA .NET - /// when your object should associate per-type authorization roles - /// with its properties. - /// - protected virtual void AddAuthorizationRules() - { - - } - - /// - /// Provides access to the AuthorizationRules object for this - /// object. - /// - /// - /// Use this object to add a list of allowed and denied roles for - /// reading and writing properties of the object. Typically these - /// values are added once when the business object is instantiated. - /// - protected Security.AuthorizationRules AuthorizationRules - { - get - { - if (_authorizationRules == null) - _authorizationRules = new Security.AuthorizationRules(this.GetType()); - return _authorizationRules; - } - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Indicates whether a negative - /// result should cause an exception. - [System.Runtime.CompilerServices.MethodImpl( - System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanReadProperty(bool throwOnFalse) - { - string propertyName = - new System.Diagnostics.StackTrace(). - GetFrame(1).GetMethod().Name.Substring(4); - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Name of the property to read. - /// Indicates whether a negative - /// result should cause an exception. - public bool CanReadProperty(string propertyName, bool throwOnFalse) - { - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanReadProperty() - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - return CanReadProperty(propertyName); - } - - /// - /// Returns if the user is allowed to read the - /// specified property. - /// - /// Name of the property to read. - /// if read is allowed. - /// - /// - /// If a list of allowed roles is provided then only users in those - /// roles can read. If no list of allowed roles is provided then - /// the list of denied roles is checked. - /// - /// If a list of denied roles is provided then users in the denied - /// roles are denied read access. All other users are allowed. - /// - /// If neither a list of allowed nor denied roles is provided then - /// all users will have read access. - /// - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual bool CanReadProperty(string propertyName) - { - bool result = true; - - VerifyAuthorizationCache(); - - if (_readResultCache.ContainsKey(propertyName)) - { - // cache contains value - get cached value - result = _readResultCache[propertyName]; - } - else - { - if (AuthorizationRules.HasReadAllowedRoles(propertyName)) - { - // some users are explicitly granted read access - // in which case all other users are denied - if (!AuthorizationRules.IsReadAllowed(propertyName)) - result = false; - } - else if (AuthorizationRules.HasReadDeniedRoles(propertyName)) - { - // some users are explicitly denied read access - if (AuthorizationRules.IsReadDenied(propertyName)) - result = false; - } - // store value in cache - _readResultCache[propertyName] = result; - } - return result; - } - - /// - /// Returns if the user is allowed to write the - /// calling property. - /// - /// if write is allowed. - /// Indicates whether a negative - /// result should cause an exception. - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanWriteProperty(bool throwOnFalse) - { - string propertyName = new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - bool result = CanWriteProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", Resources.PropertySetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to write the - /// calling property. - /// - /// if write is allowed. - /// Name of the property to write. - /// Indicates whether a negative - /// result should cause an exception. - public bool CanWriteProperty(string propertyName, bool throwOnFalse) - { - bool result = CanWriteProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", Resources.PropertySetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to write the - /// calling property. - /// - /// if write is allowed. - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanWriteProperty() - { - string propertyName = new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - return CanWriteProperty(propertyName); - } - - /// - /// Returns if the user is allowed to write the - /// specified property. - /// - /// Name of the property to write. - /// if write is allowed. - /// - /// - /// If a list of allowed roles is provided then only users in those - /// roles can write. If no list of allowed roles is provided then - /// the list of denied roles is checked. - /// - /// If a list of denied roles is provided then users in the denied - /// roles are denied write access. All other users are allowed. - /// - /// If neither a list of allowed nor denied roles is provided then - /// all users will have write access. - /// - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual bool CanWriteProperty(string propertyName) - { - bool result = true; - - VerifyAuthorizationCache(); - - if (_writeResultCache.ContainsKey(propertyName)) - { - // cache contains value - get cached value - result = _writeResultCache[propertyName]; - } - else - { - if (this.AuthorizationRules.HasWriteAllowedRoles(propertyName)) - { - // some users are explicitly granted write access - // in which case all other users are denied - if (!AuthorizationRules.IsWriteAllowed(propertyName)) - result = false; - } - else if (AuthorizationRules.HasWriteDeniedRoles(propertyName)) - { - // some users are explicitly denied write access - if (AuthorizationRules.IsWriteDenied(propertyName)) - result = false; - } - _writeResultCache[propertyName] = result; - } - return result; - } - - private void VerifyAuthorizationCache() - { - if (_readResultCache == null) - _readResultCache = new Dictionary(); - if (_writeResultCache == null) - _writeResultCache = new Dictionary(); - if (!ReferenceEquals(Csla.ApplicationContext.User, _lastPrincipal)) - { - // the principal has changed - reset the cache - _readResultCache.Clear(); - _writeResultCache.Clear(); - _lastPrincipal = Csla.ApplicationContext.User; - } - } - - #endregion - - #region Parent/Child link - - [NotUndoable()] - [NonSerialized()] - private Core.IParent _parent; - - /// - /// Provide access to the parent reference for use - /// in child object code. - /// - /// - /// This value will be Nothing for root objects. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected Core.IParent Parent - { - get { return _parent; } - } - - /// - /// Used by BusinessListBase as a child object is - /// created to tell the child object about its - /// parent. - /// - /// A reference to the parent collection object. - internal void SetParent(Core.IParent parent) - { - _parent = parent; - } - - #endregion - - #region System.ComponentModel.IEditableObject - - [NotUndoable()] - private bool _bindingEdit; - private bool _neverCommitted = true; - - /// - /// Allow data binding to start a nested edit on the object. - /// - /// - /// Data binding may call this method many times. Only the first - /// call should be honored, so we have extra code to detect this - /// and do nothing for subsquent calls. - /// - void System.ComponentModel.IEditableObject.BeginEdit() - { - if (!_bindingEdit) - BeginEdit(); - } - - /// - /// Allow data binding to cancel the current edit. - /// - /// - /// Data binding may call this method many times. Only the first - /// call to either IEditableObject.CancelEdit or - /// IEditableObject.EndEdit - /// should be honored. We include extra code to detect this and do - /// nothing for subsequent calls. - /// - void System.ComponentModel.IEditableObject.CancelEdit() - { - if (_bindingEdit) - { - CancelEdit(); - if (IsNew && _neverCommitted && EditLevel <= EditLevelAdded) - { - // we're new and no EndEdit or ApplyEdit has ever been - // called on us, and now we've been cancelled back to - // where we were added so we should have ourselves - // removed from the parent collection - if (Parent != null) - Parent.RemoveChild(this); - } - } - } - - /// - /// Allow data binding to apply the current edit. - /// - /// - /// Data binding may call this method many times. Only the first - /// call to either IEditableObject.EndEdit or - /// IEditableObject.CancelEdit - /// should be honored. We include extra code to detect this and do - /// nothing for subsequent calls. - /// - void System.ComponentModel.IEditableObject.EndEdit() - { - if (_bindingEdit) - ApplyEdit(); - } - - #endregion - - #region Begin/Cancel/ApplyEdit - - /// - /// Starts a nested edit on the object. - /// - /// - /// - /// When this method is called the object takes a snapshot of - /// its current state (the values of its variables). This snapshot - /// can be restored by calling CancelEdit - /// or committed by calling ApplyEdit. - /// - /// This is a nested operation. Each call to BeginEdit adds a new - /// snapshot of the object's state to a stack. You should ensure that - /// for each call to BeginEdit there is a corresponding call to either - /// CancelEdit or ApplyEdit to remove that snapshot from the stack. - /// - /// See Chapters 2 and 3 for details on n-level undo and state stacking. - /// - /// - public void BeginEdit() - { - _bindingEdit = true; - CopyState(); - } - - /// - /// Cancels the current edit process, restoring the object's state to - /// its previous values. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be restored. This resets the object's values - /// to the point of the last BeginEdit call. - /// - public void CancelEdit() - { - UndoChanges(); - } - - /// - /// Called when an undo operation has completed. - /// - /// - /// This method resets the object as a result of - /// deserialization and raises PropertyChanged events - /// to notify data binding that the object has changed. - /// - protected override void UndoChangesComplete() - { - _bindingEdit = false; - ValidationRules.SetTarget(this); - AddInstanceBusinessRules(); - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - AddBusinessRules(); - } - } - OnUnknownPropertyChanged(); - base.UndoChangesComplete(); - } - - /// - /// Commits the current edit process. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be discarded, thus committing any changes made - /// to the object's state since the last BeginEdit call. - /// - public void ApplyEdit() - { - _bindingEdit = false; - _neverCommitted = false; - AcceptChanges(); - } - - /// - /// Notifies the parent object (if any) that this - /// child object's edits have been accepted. - /// - protected override void AcceptChangesComplete() - { - if (Parent != null) - Parent.ApplyEditChild(this); - base.AcceptChangesComplete(); - } - - #endregion - - #region IsChild - - [NotUndoable()] - private bool _isChild; - - /// - /// Returns if this is a child (non-root) object. - /// - protected internal bool IsChild - { - get { return _isChild; } - } - - /// - /// Marks the object as being a child object. - /// - protected void MarkAsChild() - { - _isChild = true; - } - - #endregion - - #region Delete - - /// - /// Marks the object for deletion. The object will be deleted as part of the - /// next save operation. - /// - /// - /// - /// CSLA .NET supports both immediate and deferred deletion of objects. This - /// method is part of the support for deferred deletion, where an object - /// can be marked for deletion, but isn't actually deleted until the object - /// is saved to the database. This method is called by the UI developer to - /// mark the object for deletion. - /// - /// To 'undelete' an object, use n-level undo as discussed in Chapters 2 and 3. - /// - /// - public virtual void Delete() - { - if (this.IsChild) - throw new NotSupportedException(Resources.ChildDeleteException); - - MarkDeleted(); - } - - /// - /// Called by a parent object to mark the child - /// for deferred deletion. - /// - internal void DeleteChild() - { - if (!this.IsChild) - throw new NotSupportedException(Resources.NoDeleteRootException); - - MarkDeleted(); - } - - #endregion - - #region Edit Level Tracking (child only) - - // we need to keep track of the edit - // level when we weere added so if the user - // cancels below that level we can be destroyed - private int _editLevelAdded; - - /// - /// Gets or sets the current edit level of the - /// object. - /// - /// - /// Allow the collection object to use the - /// edit level as needed. - /// - internal int EditLevelAdded - { - get { return _editLevelAdded; } - set { _editLevelAdded = value; } - } - - int IEditableBusinessObject.EditLevel - { - get - { - return this.EditLevel; - } - } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return ObjectCloner.Clone(this); - } - - #endregion - - #region ValidationRules, IsValid - - private Validation.ValidationRules _validationRules; - - /// - /// Provides access to the broken rules functionality. - /// - /// - /// This property is used within your business logic so you can - /// easily call the AddRule() method to associate validation - /// rules with your object's properties. - /// - protected Validation.ValidationRules ValidationRules - { - get - { - if (_validationRules == null) - _validationRules = new Csla.Validation.ValidationRules(this); - return _validationRules; - } - } - - /// - /// Override this method in your business class to - /// be notified when you need to set up business - /// rules. - /// - /// - /// This method is automatically called by CSLA .NET - /// when your object should associate per-instance - /// validation rules with its properties. - /// - protected virtual void AddInstanceBusinessRules() - { - - } - - /// - /// Override this method in your business class to - /// be notified when you need to set up shared - /// business rules. - /// - /// - /// This method is automatically called by CSLA .NET - /// when your object should associate per-type - /// validation rules with its properties. - /// - protected virtual void AddBusinessRules() - { - - } - - /// - /// Returns if the object is currently valid, if the - /// object has broken rules or is otherwise invalid. - /// - /// - /// - /// By default this property relies on the underling ValidationRules - /// object to track whether any business rules are currently broken for this object. - /// - /// You can override this property to provide more sophisticated - /// implementations of the behavior. For instance, you should always override - /// this method if your object has child objects, since the validity of this object - /// is affected by the validity of all child objects. - /// - /// - /// A value indicating if the object is currently valid. - [Browsable(false)] - public virtual bool IsValid - { - get { return ValidationRules.IsValid; } - } - - - /// - /// Provides access to the readonly collection of broken business rules - /// for this object. - /// - /// A Csla.Validation.RulesCollection object. - [Browsable(false)] - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual Validation.BrokenRulesCollection BrokenRulesCollection - { - get { return ValidationRules.GetBrokenRules(); } - } - - #endregion - - #region Data Access - - /// - /// Override this method to load a new business object with default - /// values from the database. - /// - /// - /// Normally you will overload this method to accept a strongly-typed - /// criteria parameter, rather than overriding the method with a - /// loosely-typed criteria parameter. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Create() - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// - /// Normally you will overload this method to accept a strongly-typed - /// criteria parameter, rather than overriding the method with a - /// loosely-typed criteria parameter. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - /// - /// Override this method to allow insertion of a business - /// object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Insert() - { - throw new NotSupportedException(Resources.InsertNotSupportedException); - } - - /// - /// Override this method to allow update of a business - /// object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - /// - /// Override this method to allow deferred deletion of a business object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_DeleteSelf() - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Override this method to allow immediate deletion of a business object. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - #region IDataErrorInfo - - string IDataErrorInfo.Error - { - get - { - if (!IsValid) - return ValidationRules.GetBrokenRules().ToString( - Csla.Validation.RuleSeverity.Error); - else - return String.Empty; - } - } - - string IDataErrorInfo.this[string columnName] - { - get - { - string result = string.Empty; - if (!IsValid) - { - Validation.BrokenRule rule = - ValidationRules.GetBrokenRules().GetFirstBrokenRule(columnName); - if (rule != null) - result = rule.Description; - } - return result; - } - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - OnDeserialized(context); - ValidationRules.SetTarget(this); - AddInstanceBusinessRules(); - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - AddBusinessRules(); - } - } - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - /// Serialization context object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - // do nothing - this is here so a subclass - // could override if needed - } - - #endregion - - #region IEditableBusinessObject Members - - int IEditableBusinessObject.EditLevelAdded - { - get - { - return this.EditLevelAdded; - } - set - { - this.EditLevelAdded = value; - } - } - - void IEditableBusinessObject.DeleteChild() - { - this.DeleteChild(); - } - - void IEditableBusinessObject.SetParent(IParent parent) - { - this.SetParent(parent); - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ExtendedBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ExtendedBindingList.cs deleted file mode 100644 index 69e3ff5c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ExtendedBindingList.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; - -namespace Csla.Core -{ - /// - /// Extends BindingList of T by adding extra - /// events. - /// - /// Type of item contained in list. - [Serializable] - public class ExtendedBindingList : BindingList, IExtendedBindingList - { - #region RemovingItem event - - [NonSerialized()] - private EventHandler _nonSerializableHandlers; - private EventHandler _serializableHandlers; - - /// - /// Implements a serialization-safe RemovingItem event. - /// - public event EventHandler RemovingItem - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (EventHandler) - System.Delegate.Combine(_serializableHandlers, value); - else - _nonSerializableHandlers = (EventHandler) - System.Delegate.Combine(_nonSerializableHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (EventHandler) - System.Delegate.Remove(_serializableHandlers, value); - else - _nonSerializableHandlers = (EventHandler) - System.Delegate.Remove(_nonSerializableHandlers, value); - } - } - - /// - /// Raise the RemovingItem event. - /// - /// - /// A reference to the item that - /// is being removed. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void OnRemovingItem(T removedItem) - { - if (_nonSerializableHandlers != null) - _nonSerializableHandlers.Invoke(this, - new RemovingItemEventArgs(removedItem)); - if (_serializableHandlers != null) - _serializableHandlers.Invoke(this, - new RemovingItemEventArgs(removedItem)); - } - - #endregion - - /// - /// Remove the item at the - /// specified index. - /// - /// - /// The zero-based index of the item - /// to remove. - /// - protected override void RemoveItem(int index) - { - OnRemovingItem(this[index]); - base.RemoveItem(index); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IBusinessObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IBusinessObject.cs deleted file mode 100644 index 85d34d50..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IBusinessObject.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Csla.Core -{ - /// - /// This is the core interface implemented - /// by all CSLA .NET base classes. - /// - public interface IBusinessObject - { - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ICommandObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ICommandObject.cs deleted file mode 100644 index a18f0538..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ICommandObject.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// This interface is implemented by all - /// Command objects. - /// - interface ICommandObject : IBusinessObject - { - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableBusinessObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableBusinessObject.cs deleted file mode 100644 index 3416574c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableBusinessObject.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Defines the common methods required by all - /// editable CSLA single objects. - /// - /// - /// It is strongly recommended that the implementations - /// of the methods in this interface be made Private - /// so as to not clutter up the native interface of - /// the collection objects. - /// - public interface IEditableBusinessObject : IUndoableObject - { - /// - /// Returns if this object's data has been changed. - /// - /// - /// - /// When an object's data is changed, CSLA .NET makes note of that change - /// and considers the object to be 'dirty' or changed. This value is used to - /// optimize data updates, since an unchanged object does not need to be - /// updated into the database. All new objects are considered dirty. All objects - /// marked for deletion are considered dirty. - /// - /// Once an object's data has been saved to the database (inserted or updated) - /// the dirty flag is cleared and the object is considered unchanged. Objects - /// newly loaded from the database are also considered unchanged. - /// - /// - /// A value indicating if this object's data has been changed. - bool IsDirty { get;} - /// - /// Returns if the object is currently valid, if the - /// object has broken rules or is otherwise invalid. - /// - /// - /// - /// By default this property relies on the underling ValidationRules - /// object to track whether any business rules are currently broken for this object. - /// - /// You can override this property to provide more sophisticated - /// implementations of the behavior. For instance, you should always override - /// this method if your object has child objects, since the validity of this object - /// is affected by the validity of all child objects. - /// - /// - /// A value indicating if the object is currently valid. - bool IsValid { get;} - /// - /// Returns if this object is marked for deletion. - /// - /// - /// CSLA .NET supports both immediate and deferred deletion of objects. This - /// property is part of the support for deferred deletion, where an object - /// can be marked for deletion, but isn't actually deleted until the object - /// is saved to the database. This property indicates whether or not the - /// current object has been marked for deletion. If it is - /// , the object will - /// be deleted when it is saved to the database, otherwise it will be inserted - /// or updated by the save operation. - /// - /// A value indicating if this object is marked for deletion. - bool IsDeleted { get;} - /// - /// Returns if this is a new object, - /// if it is a pre-existing object. - /// - /// - /// An object is considered to be new if its primary identifying (key) value - /// doesn't correspond to data in the database. In other words, - /// if the data values in this particular - /// object have not yet been saved to the database the object is considered to - /// be new. Likewise, if the object's data has been deleted from the database - /// then the object is considered to be new. - /// - /// A value indicating if this object is new. - bool IsNew { get;} - /// - /// Returns if this object is both dirty and valid. - /// - /// - /// An object is considered dirty (changed) if - /// returns . It is - /// considered valid if IsValid - /// returns . The IsSavable property is - /// a combination of these two properties. - /// - /// A value indicating if this object is both dirty and valid. - bool IsSavable { get;} - /// - /// For internal use only!! - /// - /// - /// Altering this value will almost certainly - /// break your code. This property is for use - /// by the parent collection only! - /// - int EditLevelAdded { get; set;} - /// - /// Gets the current edit level of the object. - /// - int EditLevel { get; } - /// - /// Called by a parent object to mark the child - /// for deferred deletion. - /// - void DeleteChild(); - /// - /// Used by BusinessListBase as a child object is - /// created to tell the child object about its - /// parent. - /// - /// A reference to the parent collection object. - void SetParent(IParent parent); - /// - /// Marks the object for deletion. The object will be deleted as part of the - /// next save operation. - /// - void Delete(); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableCollection.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableCollection.cs deleted file mode 100644 index 8bf76611..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableCollection.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Csla.Core -{ - /// - /// Defines the common methods required by all - /// editable CSLA collection objects. - /// - /// - /// It is strongly recommended that the implementations - /// of the methods in this interface be made Private - /// so as to not clutter up the native interface of - /// the collection objects. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", - "CA1711:IdentifiersShouldNotHaveIncorrectSuffix")] - public interface IEditableCollection : IUndoableObject - { - /// - /// Removes the specified child from the parent - /// collection. - /// - /// Child object to be removed. - void RemoveChild(Core.IEditableBusinessObject child); - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IExtendedBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IExtendedBindingList.cs deleted file mode 100644 index d769538a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IExtendedBindingList.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.ComponentModel; - -namespace Csla.Core -{ - /// - /// Extends by adding extra - /// events. - /// - public interface IExtendedBindingList : IBindingList - { - /// - /// Event indicating that an item is being - /// removed from the list. - /// - event EventHandler RemovingItem; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IParent.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IParent.cs deleted file mode 100644 index f8963982..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IParent.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; - -namespace Csla.Core -{ - /// - /// Defines the interface that must be implemented - /// by any business object that contains child - /// objects. - /// - public interface IParent - { - /// - /// This method is called by a child object when it - /// wants to be removed from the collection. - /// - /// The child object to remove. - void RemoveChild(Core.IEditableBusinessObject child); - /// - /// Override this method to be notified when a child object's - /// method has - /// completed. - /// - /// The child object that was edited. - void ApplyEditChild(Core.IEditableBusinessObject child); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyCollection.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyCollection.cs deleted file mode 100644 index ca9e0e55..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyCollection.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Interface implemented by all read-only collection - /// classes. - /// - public interface IReadOnlyCollection : IBusinessObject - { - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyObject.cs deleted file mode 100644 index a4d2b606..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyObject.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Csla.Core -{ - /// - /// Specifies that the object is a readonly - /// business object. - /// - public interface IReadOnlyObject : IBusinessObject - { - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// Name of the property to read. - bool CanReadProperty(string propertyName); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReportTotalRowCount.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReportTotalRowCount.cs deleted file mode 100644 index c88a15a8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReportTotalRowCount.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Implement this interface in a collection - /// to report a total row count to - /// , where that - /// row count is different from the collection's - /// normal Count property value. - /// - /// - /// This interface is used to provide paging - /// support for web data binding through - /// . You should - /// implement this interface in your business - /// collection class, along with windowed - /// data loading, to provide efficient paging - /// support. - /// - public interface IReportTotalRowCount - { - /// - /// The total number of rows of available - /// data. - /// - int TotalRowCount { get;} - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ISavable.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ISavable.cs deleted file mode 100644 index fe29a438..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ISavable.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Specifies that the object can save - /// itself. - /// - public interface ISavable - { - /// - /// Saves the object to the database. - /// - /// A new object containing the saved values. - object Save(); - /// - /// Event raised when an object has been saved. - /// - event EventHandler Saved; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IUndoableObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IUndoableObject.cs deleted file mode 100644 index ce7c6588..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IUndoableObject.cs +++ /dev/null @@ -1,40 +0,0 @@ -namespace Csla.Core -{ - /// - /// Defines the methods required to participate - /// in n-level undo within the CSLA .NET framework. - /// - /// - /// This interface is used by Csla.Core.UndoableBase - /// to initiate begin, cancel and apply edit operations. - /// - public interface IUndoableObject : IBusinessObject - { - /// - /// Copies the state of the object and places the copy - /// onto the state stack. - /// - void CopyState(); - /// - /// Restores the object's state to the most recently - /// copied values from the state stack. - /// - /// - /// Restores the state of the object to its - /// previous value by taking the data out of - /// the stack and restoring it into the fields - /// of the object. - /// - void UndoChanges(); - /// - /// Accepts any changes made to the object since the last - /// state copy was made. - /// - /// - /// The most recent state copy is removed from the state - /// stack and discarded, thus committing any changes made - /// to the object's state. - /// - void AcceptChanges(); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ObjectCloner.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ObjectCloner.cs deleted file mode 100644 index 398d5611..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ObjectCloner.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; - -namespace Csla.Core -{ - internal static class ObjectCloner - { - /// - /// Clones an object by using the - /// . - /// - /// The object to clone. - /// - /// The object to be cloned must be serializable. - /// - public static object Clone(object obj) - { - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, obj); - buffer.Position = 0; - object temp = formatter.Deserialize(buffer); - return temp; - } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ReadOnlyBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ReadOnlyBindingList.cs deleted file mode 100644 index fb506e3f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ReadOnlyBindingList.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using Csla.Properties; - -namespace Csla.Core -{ - /// - /// A readonly version of BindingList(Of T) - /// - /// Type of item contained in the list. - /// - /// This is a subclass of BindingList(Of T) that implements - /// a readonly list, preventing adding and removing of items - /// from the list. Use the IsReadOnly property - /// to unlock the list for loading/unloading data. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", - "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class ReadOnlyBindingList : - Core.ExtendedBindingList, Core.IBusinessObject - { - private bool _isReadOnly = true; - - /// - /// Gets or sets a value indicating whether the list is readonly. - /// - /// - /// Subclasses can set this value to unlock the collection - /// in order to alter the collection's data. - /// - /// True indicates that the list is readonly. - public bool IsReadOnly - { - get { return _isReadOnly; } - protected set { _isReadOnly = value; } - } - - /// - /// Creates an instance of the object. - /// - protected ReadOnlyBindingList() - { - this.RaiseListChangedEvents = false; - AllowEdit = false; - AllowRemove = false; - AllowNew = false; - this.RaiseListChangedEvents = true; - } - - /// - /// Prevents clearing the collection. - /// - protected override void ClearItems() - { - if (!IsReadOnly) - { - bool oldValue = AllowRemove; - AllowRemove = true; - base.ClearItems(); - AllowRemove = oldValue; - } - else - throw new NotSupportedException(Resources.ClearInvalidException); - } - - /// - /// Prevents insertion of items into the collection. - /// - protected override object AddNewCore() - { - if (!IsReadOnly) - return base.AddNewCore(); - else - throw new NotSupportedException(Resources.InsertInvalidException); - } - - /// - /// Prevents insertion of items into the collection. - /// - /// Index at which to insert the item. - /// Item to insert. - protected override void InsertItem(int index, C item) - { - if (!IsReadOnly) - base.InsertItem(index, item); - else - throw new NotSupportedException(Resources.InsertInvalidException); - } - - /// - /// Removes the item at the specified index if the collection is - /// not in readonly mode. - /// - /// Index of the item to remove. - protected override void RemoveItem(int index) - { - if (!IsReadOnly) - { - bool oldValue = AllowRemove; - AllowRemove = true; - base.RemoveItem(index); - AllowRemove = oldValue; - } - else - throw new NotSupportedException(Resources.RemoveInvalidException); - } - - /// - /// Replaces the item at the specified index with the - /// specified item if the collection is not in - /// readonly mode. - /// - /// Index of the item to replace. - /// New item for the list. - protected override void SetItem(int index, C item) - { - if (!IsReadOnly) - base.SetItem(index, item); - else - throw new NotSupportedException(Resources.ChangeInvalidException); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/RemovingItemEventArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/RemovingItemEventArgs.cs deleted file mode 100644 index 497bcb90..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/RemovingItemEventArgs.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Contains event data for the RemovingItem - /// event. - /// - public class RemovingItemEventArgs : EventArgs - { - private object _removingItem; - - /// - /// Gets a reference to the item that was - /// removed from the list. - /// - public object RemovingItem - { - get { return _removingItem; } - } - - /// - /// Create an instance of the object. - /// - /// - /// A reference to the item that was - /// removed from the list. - /// - public RemovingItemEventArgs(object removingItem) - { - _removingItem = removingItem; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/SavedEventArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/SavedEventArgs.cs deleted file mode 100644 index e3898611..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/SavedEventArgs.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Event arguments containing a reference - /// to the new object that was returned - /// as a result of the Save() operation. - /// - public class SavedEventArgs : EventArgs - { - private object _newObject; - /// - /// Gets the object that was returned - /// as a result of the Save() operation. - /// - public object NewObject - { - get { return _newObject; } - } - - /// - /// Creates an instance of the object. - /// - /// - /// The object that was returned as a - /// result of the Save() operation. - /// - public SavedEventArgs(object newObject) - { - _newObject = newObject; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/UndoableBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/UndoableBase.cs deleted file mode 100644 index bc3ff61a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/UndoableBase.cs +++ /dev/null @@ -1,296 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Reflection; -using System.IO; -using System.Runtime.Serialization; -using System.Runtime.Serialization.Formatters.Binary; -using System.ComponentModel; - -namespace Csla.Core -{ - /// - /// Implements n-level undo capabilities as - /// described in Chapters 2 and 3. - /// - [Serializable()] - public abstract class UndoableBase : Csla.Core.BindableBase, Csla.Core.IUndoableObject - { - // keep a stack of object state values. - [NotUndoable()] - private Stack _stateStack = new Stack(); - - /// - /// Creates an instance of the object. - /// - protected UndoableBase() - { - - } - - /// - /// Returns the current edit level of the object. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected int EditLevel - { - get { return _stateStack.Count; } - } - - void IUndoableObject.CopyState() - { - CopyState(); - } - - void IUndoableObject.UndoChanges() - { - UndoChanges(); - } - - void IUndoableObject.AcceptChanges() - { - AcceptChanges(); - } - - /// - /// This method is invoked after the CopyState - /// operation is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void CopyStateComplete() - { - } - - /// - /// Copies the state of the object and places the copy - /// onto the state stack. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected internal void CopyState() - { - Type currentType = this.GetType(); - HybridDictionary state = new HybridDictionary(); - FieldInfo[] fields; - - do - { - // get the list of fields in this type - fields = currentType.GetFields( - BindingFlags.NonPublic | - BindingFlags.Instance | - BindingFlags.Public); - - foreach (FieldInfo field in fields) - { - // make sure we process only our variables - if (field.DeclaringType == currentType) - { - // see if this field is marked as not undoable - if (!NotUndoableField(field)) - { - // the field is undoable, so it needs to be processed. - object value = field.GetValue(this); - - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(field.FieldType)) - { - // make sure the variable has a value - if (value == null) - { - // variable has no value - store that fact - state.Add(GetFieldName(field), null); - } - else - { - // this is a child object, cascade the call - ((Core.IUndoableObject)value).CopyState(); - } - } - else - { - // this is a normal field, simply trap the value - state.Add(GetFieldName(field), value); - } - } - } - } - currentType = currentType.BaseType; - } while (currentType != typeof(UndoableBase)); - - // serialize the state and stack it - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, state); - _stateStack.Push(buffer.ToArray()); - } - CopyStateComplete(); - } - - /// - /// This method is invoked after the UndoChanges - /// operation is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void UndoChangesComplete() - { - } - - /// - /// Restores the object's state to the most recently - /// copied values from the state stack. - /// - /// - /// Restores the state of the object to its - /// previous value by taking the data out of - /// the stack and restoring it into the fields - /// of the object. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected internal void UndoChanges() - { - // if we are a child object we might be asked to - // undo below the level where stacked states, - // so just do nothing in that case - if (EditLevel > 0) - { - HybridDictionary state; - using (MemoryStream buffer = new MemoryStream(_stateStack.Pop())) - { - buffer.Position = 0; - BinaryFormatter formatter = new BinaryFormatter(); - state = (HybridDictionary)formatter.Deserialize(buffer); - } - - Type currentType = this.GetType(); - FieldInfo[] fields; - - do - { - // get the list of fields in this type - fields = currentType.GetFields( - BindingFlags.NonPublic | - BindingFlags.Instance | - BindingFlags.Public); - foreach (FieldInfo field in fields) - { - // make sure we process only our variables - if (field.DeclaringType == currentType) - { - // see if the field is undoable or not - if (!NotUndoableField(field)) - { - // the field is undoable, so restore its value - object value = field.GetValue(this); - - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(field.FieldType)) - { - // this is a child object - // see if the previous value was empty - if (state.Contains(GetFieldName(field))) - { - // previous value was empty - restore to empty - field.SetValue(this, null); - } - else - { - // make sure the variable has a value - if (value != null) - { - // this is a child object, cascade the call. - ((Core.IUndoableObject)value).UndoChanges(); - } - } - } - else - { - // this is a regular field, restore its value - field.SetValue(this, state[GetFieldName(field)]); - } - } - } - } - currentType = currentType.BaseType; - } while (currentType != typeof(UndoableBase)); - } - UndoChangesComplete(); - } - - /// - /// This method is invoked after the AcceptChanges - /// operation is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void AcceptChangesComplete() - { - } - - /// - /// Accepts any changes made to the object since the last - /// state copy was made. - /// - /// - /// The most recent state copy is removed from the state - /// stack and discarded, thus committing any changes made - /// to the object's state. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected internal void AcceptChanges() - { - if (EditLevel > 0) - { - _stateStack.Pop(); - Type currentType = this.GetType(); - FieldInfo[] fields; - - do - { - // get the list of fields in this type - fields = currentType.GetFields( - BindingFlags.NonPublic | - BindingFlags.Instance | - BindingFlags.Public); - foreach (FieldInfo field in fields) - { - // make sure we process only our variables - if (field.DeclaringType == currentType) - { - // see if the field is undoable or not - if (!NotUndoableField(field)) - { - // the field is undoable so see if it is a child object - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(field.FieldType)) - { - object value = field.GetValue(this); - // make sure the variable has a value - if (value != null) - { - // it is a child object so cascade the call - ((Core.IUndoableObject)value).AcceptChanges(); - } - } - } - } - } - currentType = currentType.BaseType; - } while (currentType != typeof(UndoableBase)); - } - AcceptChangesComplete(); - } - - #region Helper Functions - - private static bool NotUndoableField(FieldInfo field) - { - return Attribute.IsDefined(field, typeof(NotUndoableAttribute)); - } - - private static string GetFieldName(FieldInfo field) - { - return field.DeclaringType.Name + "!" + field.Name; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Csla.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Csla.csproj deleted file mode 100644 index b5d150be..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Csla.csproj +++ /dev/null @@ -1,293 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {9DA591ED-C570-47AC-8E5D-35B039E07973} - Library - Properties - Csla - Csla - true - CslaKey.snk - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - bin\Debug\Csla.XML - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Component - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Resources.resx - - - True - True - Settings.settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Reference.map - - - - - - Form - - - CslaDataSourceConfiguration.cs - - - - - - - - - - - Component - - - Component - - - - - - - - - - - - - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - ResXFileCodeGenerator - Resources.Designer.cs - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - CslaDataSourceConfiguration.cs - - - - - - - - Dynamic - Web References\WebServiceHost\ - http://localhost:4804/WSPortalcs/Service.asmx - - - - - Settings - Csla_WebServiceHost_WebServicePortal - - - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - MSDiscoCodeGenerator - Reference.cs - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CslaKey.snk b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CslaKey.snk deleted file mode 100644 index a67ad193..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CslaKey.snk and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/DataMapper.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/DataMapper.cs deleted file mode 100644 index 468f5e17..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/DataMapper.cs +++ /dev/null @@ -1,230 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla.Data -{ - /// - /// Map data from a source into a target object - /// by copying public property values. - /// - /// - public static class DataMapper - { - - #region Map from IDictionary - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// A name/value dictionary containing the source values. - /// An object with properties to be set from the dictionary. - /// - /// The key names in the dictionary must match the property names on the target - /// object. Target properties may not be readonly or indexed. - /// - public static void Map(System.Collections.IDictionary source, object target) - { - Map(source, target, false); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// A name/value dictionary containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// - /// The key names in the dictionary must match the property names on the target - /// object. Target properties may not be readonly or indexed. - /// - public static void Map(System.Collections.IDictionary source, object target, params string[] ignoreList) - { - Map(source, target, false, ignoreList); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// A name/value dictionary containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// If , any exceptions will be supressed. - /// - /// The key names in the dictionary must match the property names on the target - /// object. Target properties may not be readonly or indexed. - /// - public static void Map( - System.Collections.IDictionary source, - object target, bool suppressExceptions, - params string[] ignoreList) - { - List ignore = new List(ignoreList); - foreach (string propertyName in source.Keys) - { - if (!ignore.Contains(propertyName)) - { - try - { - SetPropertyValue(target, propertyName, source[propertyName]); - } - catch (Exception ex) - { - if (!suppressExceptions) - throw new ArgumentException( - String.Format("{0} ({1})", - Resources.PropertyCopyFailed, propertyName), ex); - } - } - } - } - - #endregion - - #region Map from Object - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// An object containing the source values. - /// An object with properties to be set from the dictionary. - /// - /// The property names and types of the source object must match the property names and types - /// on the target object. Source properties may not be indexed. - /// Target properties may not be readonly or indexed. - /// - public static void Map(object source, object target) - { - Map(source, target, false); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// An object containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// - /// The property names and types of the source object must match the property names and types - /// on the target object. Source properties may not be indexed. - /// Target properties may not be readonly or indexed. - /// - public static void Map(object source, object target, params string[] ignoreList) - { - Map(source, target, false, ignoreList); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// An object containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// If , any exceptions will be supressed. - /// - /// - /// The property names and types of the source object must match the property names and types - /// on the target object. Source properties may not be indexed. - /// Target properties may not be readonly or indexed. - /// - /// Properties to copy are determined based on the source object. Any properties - /// on the source object marked with the equal - /// to false are ignored. - /// - /// - public static void Map( - object source, object target, - bool suppressExceptions, - params string[] ignoreList) - { - List ignore = new List(ignoreList); - PropertyInfo[] sourceProperties = - GetSourceProperties(source.GetType()); - foreach (PropertyInfo sourceProperty in sourceProperties) - { - string propertyName = sourceProperty.Name; - if (!ignore.Contains(propertyName)) - { - try - { - SetPropertyValue( - target, propertyName, - sourceProperty.GetValue(source, null)); - } - catch (Exception ex) - { - if (!suppressExceptions) - throw new ArgumentException( - String.Format("{0} ({1})", - Resources.PropertyCopyFailed, propertyName), ex); - } - } - } - } - - private static PropertyInfo[] GetSourceProperties(Type sourceType) - { - List result = new List(); - PropertyDescriptorCollection props = - TypeDescriptor.GetProperties(sourceType); - foreach (PropertyDescriptor item in props) - if (item.IsBrowsable) - result.Add(sourceType.GetProperty(item.Name)); - return result.ToArray(); - } - - #endregion - - /// - /// Sets an object's property with the specified value, - /// coercing that value to the appropriate type if possible. - /// - /// Object containing the property to set. - /// Name of the property to set. - /// Value to set into the property. - public static void SetPropertyValue( - object target, string propertyName, object value) - { - PropertyInfo propertyInfo = - target.GetType().GetProperty(propertyName); - if (value == null) - propertyInfo.SetValue(target, value, null); - else - { - Type pType = - Utilities.GetPropertyType(propertyInfo.PropertyType); - Type vType = - Utilities.GetPropertyType(value.GetType()); - if (pType.Equals(vType)) - { - // types match, just copy value - propertyInfo.SetValue(target, value, null); - } - else - { - // types don't match, try to coerce - if (pType.Equals(typeof(Guid))) - propertyInfo.SetValue( - target, new Guid(value.ToString()), null); - else if (pType.IsEnum && vType.Equals(typeof(string))) - propertyInfo.SetValue(target, Enum.Parse(pType, value.ToString()), null); - else - propertyInfo.SetValue( - target, Convert.ChangeType(value, pType), null); - } - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/ObjectAdapter.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/ObjectAdapter.cs deleted file mode 100644 index 362b2883..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/ObjectAdapter.cs +++ /dev/null @@ -1,267 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Data; -using System.ComponentModel; -using System.Reflection; -using Csla.Properties; - -namespace Csla.Data -{ - - /// - /// An ObjectAdapter is used to convert data in an object - /// or collection into a DataTable. - /// - public class ObjectAdapter - { - /// - /// Fills the DataSet with data from an object or collection. - /// - /// - /// The name of the DataTable being filled is will be the class name of - /// the object acting as the data source. The - /// DataTable will be inserted if it doesn't already exist in the DataSet. - /// - /// A reference to the DataSet to be filled. - /// A reference to the object or collection acting as a data source. - public void Fill(DataSet ds, object source) - { - string className = source.GetType().Name; - Fill(ds, className, source); - } - - /// - /// Fills the DataSet with data from an object or collection. - /// - /// - /// The name of the DataTable being filled is specified as a parameter. The - /// DataTable will be inserted if it doesn't already exist in the DataSet. - /// - /// A reference to the DataSet to be filled. - /// - /// A reference to the object or collection acting as a data source. - public void Fill(DataSet ds, string tableName, object source) - { - DataTable dt; - bool exists; - - dt = ds.Tables[tableName]; - exists = (dt != null); - - if (!exists) - dt = new DataTable(tableName); - - Fill(dt, source); - - if (!exists) - ds.Tables.Add(dt); - } - - /// - /// Fills a DataTable with data values from an object or collection. - /// - /// A reference to the DataTable to be filled. - /// A reference to the object or collection acting as a data source. - public void Fill(DataTable dt, object source) - { - if (source == null) - throw new ArgumentException(Resources.NothingNotValid); - - // get the list of columns from the source - List columns = GetColumns(source); - if (columns.Count < 1) return; - - // create columns in DataTable if needed - foreach (string column in columns) - if (!dt.Columns.Contains(column)) - dt.Columns.Add(column); - - // get an IList and copy the data - CopyData(dt, GetIList(source), columns); - } - - #region DataCopyIList - - private IList GetIList(object source) - { - if (source is IListSource) - return ((IListSource)source).GetList(); - else if (source is IList) - return source as IList; - else - { - // this is a regular object - create a list - ArrayList col = new ArrayList(); - col.Add(source); - return col; - } - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")] - private void CopyData( - DataTable dt, IList ds, List columns) - { - // load the data into the DataTable - dt.BeginLoadData(); - for (int index = 0; index < ds.Count; index++) - { - DataRow dr = dt.NewRow(); - foreach (string column in columns) - { - try - { - dr[column] = GetField(ds[index], column); - } - catch (Exception ex) - { - dr[column] = ex.Message; - } - } - dt.Rows.Add(dr); - } - dt.EndLoadData(); - } - - #endregion - - #region GetColumns - - private List GetColumns(object source) - { - List result; - // first handle DataSet/DataTable - object innerSource; - IListSource iListSource = source as IListSource; - if (iListSource != null) - innerSource = iListSource.GetList(); - else - innerSource = source; - - DataView dataView = innerSource as DataView; - if (dataView != null) - result = ScanDataView(dataView); - else - { - // now handle lists/arrays/collections - IEnumerable iEnumerable = innerSource as IEnumerable; - if (iEnumerable != null) - { - Type childType = Utilities.GetChildItemType( - innerSource.GetType()); - result = ScanObject(childType); - } - else - { - // the source is a regular object - result = ScanObject(innerSource.GetType()); - } - } - return result; - } - - private List ScanDataView(DataView ds) - { - List result = new List(); - for (int field = 0; field < ds.Table.Columns.Count; field++) - result.Add(ds.Table.Columns[field].ColumnName); - return result; - } - - private List ScanObject(Type sourceType) - { - List result = new List(); - - if (sourceType != null) - { - // retrieve a list of all public properties - PropertyInfo[] props = sourceType.GetProperties(); - if (props.Length >= 0) - for (int column = 0; column < props.Length; column++) - if (props[column].CanRead) - result.Add(props[column].Name); - - // retrieve a list of all public fields - FieldInfo[] fields = sourceType.GetFields(); - if (fields.Length >= 0) - for (int column = 0; column < fields.Length; column++) - result.Add(fields[column].Name); - } - return result; - } - - #endregion - - #region GetField - - private static string GetField(object obj, string fieldName) - { - string result; - DataRowView dataRowView = obj as DataRowView; - if (dataRowView != null) - { - // this is a DataRowView from a DataView - result = dataRowView[fieldName].ToString(); - } - else if (obj is ValueType && obj.GetType().IsPrimitive) - { - // this is a primitive value type - result = obj.ToString(); - } - else - { - string tmp = obj as string; - if (tmp != null) - { - // this is a simple string - result = (string)obj; - } - else - { - // this is an object or Structure - try - { - Type sourceType = obj.GetType(); - - // see if the field is a property - PropertyInfo prop = sourceType.GetProperty(fieldName); - - if ((prop == null) || (!prop.CanRead)) - { - // no readable property of that name exists - - // check for a field - FieldInfo field = sourceType.GetField(fieldName); - if (field == null) - { - // no field exists either, throw an exception - throw new DataException( - Resources.NoSuchValueExistsException + - " " + fieldName); - } - else - { - // got a field, return its value - result = field.GetValue(obj).ToString(); - } - } - else - { - // found a property, return its value - result = prop.GetValue(obj, null).ToString(); - } - } - catch (Exception ex) - { - throw new DataException( - Resources.ErrorReadingValueException + - " " + fieldName, ex); - } - } - } - return result; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/SafeDataReader.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/SafeDataReader.cs deleted file mode 100644 index 7eea0605..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/SafeDataReader.cs +++ /dev/null @@ -1,761 +0,0 @@ -using System; -using System.Data; - -namespace Csla.Data -{ - /// - /// This is a DataReader that 'fixes' any null values before - /// they are returned to our business code. - /// - public class SafeDataReader : IDataReader - { - private IDataReader _dataReader; - - /// - /// Get a reference to the underlying data reader - /// object that actually contains the data from - /// the data source. - /// - protected IDataReader DataReader - { - get { return _dataReader; } - } - - /// - /// Initializes the SafeDataReader object to use data from - /// the provided DataReader object. - /// - /// The source DataReader object containing the data. - public SafeDataReader(IDataReader dataReader) - { - _dataReader = dataReader; - } - - /// - /// Gets a string value from the datareader. - /// - /// - /// Returns empty string for null. - /// - /// Name of the column containing the value. - public string GetString(string name) - { - return GetString(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a string value from the datareader. - /// - /// - /// Returns empty string for null. - /// - /// Ordinal column position of the value. - public virtual string GetString(int i) - { - if (_dataReader.IsDBNull(i)) - return string.Empty; - else - return _dataReader.GetString(i); - } - - - /// - /// Gets a value of type from the datareader. - /// - /// Name of the column containing the value. - public object GetValue(string name) - { - return GetValue(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a value of type from the datareader. - /// - /// Ordinal column position of the value. - public virtual object GetValue(int i) - { - if (_dataReader.IsDBNull(i)) - return null; - else - return _dataReader.GetValue(i); - } - - /// - /// Gets an integer from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public int GetInt32(string name) - { - return GetInt32(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets an integer from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual int GetInt32(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetInt32(i); - } - - /// - /// Gets a double from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public double GetDouble(string name) - { - return GetDouble(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a double from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual double GetDouble(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetDouble(i); - } - - /// - /// Gets a from the datareader. - /// - /// - /// A null is converted into min possible date - /// See Chapter 5 for more details on the SmartDate class. - /// - /// Name of the column containing the value. - public Csla.SmartDate GetSmartDate(string name) - { - return GetSmartDate(_dataReader.GetOrdinal(name), true); - } - - /// - /// Gets a from the datareader. - /// - /// - /// A null is converted into the min possible date - /// See Chapter 5 for more details on the SmartDate class. - /// - /// Ordinal column position of the value. - public virtual Csla.SmartDate GetSmartDate(int i) - { - return GetSmartDate(i, true); - } - - /// - /// Gets a from the datareader. - /// - /// - /// A null is converted into either the min or max possible date - /// depending on the MinIsEmpty parameter. See Chapter 5 for more - /// details on the SmartDate class. - /// - /// Name of the column containing the value. - /// - /// A flag indicating whether the min or max - /// value of a data means an empty date. - public Csla.SmartDate GetSmartDate(string name, bool minIsEmpty) - { - return GetSmartDate(_dataReader.GetOrdinal(name), minIsEmpty); - } - - /// - /// Gets a from the datareader. - /// - /// Ordinal column position of the value. - /// - /// A flag indicating whether the min or max - /// value of a data means an empty date. - public virtual Csla.SmartDate GetSmartDate( - int i, bool minIsEmpty) - { - if (_dataReader.IsDBNull(i)) - return new Csla.SmartDate(minIsEmpty); - else - return new Csla.SmartDate( - _dataReader.GetDateTime(i), minIsEmpty); - } - - /// - /// Gets a Guid value from the datareader. - /// - /// - /// Returns Guid.Empty for null. - /// - /// Name of the column containing the value. - public System.Guid GetGuid(string name) - { - return GetGuid(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Guid value from the datareader. - /// - /// - /// Returns Guid.Empty for null. - /// - /// Ordinal column position of the value. - public virtual System.Guid GetGuid(int i) - { - if (_dataReader.IsDBNull(i)) - return Guid.Empty; - else - return _dataReader.GetGuid(i); - } - - /// - /// Reads the next row of data from the datareader. - /// - public bool Read() - { - return _dataReader.Read(); - } - - /// - /// Moves to the next result set in the datareader. - /// - public bool NextResult() - { - return _dataReader.NextResult(); - } - - /// - /// Closes the datareader. - /// - public void Close() - { - _dataReader.Close(); - } - - /// - /// Returns the depth property value from the datareader. - /// - public int Depth - { - get - { - return _dataReader.Depth; - } - } - - /// - /// Returns the FieldCount property from the datareader. - /// - public int FieldCount - { - get - { - return _dataReader.FieldCount; - } - } - - /// - /// Gets a boolean value from the datareader. - /// - /// - /// Returns for null. - /// - /// Name of the column containing the value. - public bool GetBoolean(string name) - { - return GetBoolean(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a boolean value from the datareader. - /// - /// - /// Returns for null. - /// - /// Ordinal column position of the value. - public virtual bool GetBoolean(int i) - { - if (_dataReader.IsDBNull(i)) - return false; - else - return _dataReader.GetBoolean(i); - } - - /// - /// Gets a byte value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public byte GetByte(string name) - { - return GetByte(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a byte value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual byte GetByte(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetByte(i); - } - - /// - /// Invokes the GetBytes method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public Int64 GetBytes(string name, Int64 fieldOffset, - byte[] buffer, int bufferOffset, int length) - { - return GetBytes(_dataReader.GetOrdinal(name), fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Invokes the GetBytes method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public virtual Int64 GetBytes(int i, Int64 fieldOffset, - byte[] buffer, int bufferOffset, int length) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetBytes(i, fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Gets a char value from the datareader. - /// - /// - /// Returns Char.MinValue for null. - /// - /// Name of the column containing the value. - public char GetChar(string name) - { - return GetChar(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a char value from the datareader. - /// - /// - /// Returns Char.MinValue for null. - /// - /// Ordinal column position of the value. - public virtual char GetChar(int i) - { - if (_dataReader.IsDBNull(i)) - return char.MinValue; - else - { - char[] myChar = new char[1]; - _dataReader.GetChars(i, 0, myChar, 0, 1); - return myChar[0]; - } - } - - /// - /// Invokes the GetChars method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public Int64 GetChars(string name, Int64 fieldOffset, - char[] buffer, int bufferOffset, int length) - { - return GetChars(_dataReader.GetOrdinal(name), fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Invokes the GetChars method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public virtual Int64 GetChars(int i, Int64 fieldOffset, - char[] buffer, int bufferOffset, int length) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetChars(i, fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Invokes the GetData method of the underlying datareader. - /// - /// Name of the column containing the value. - public IDataReader GetData(string name) - { - return GetData(_dataReader.GetOrdinal(name)); - } - - /// - /// Invokes the GetData method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual IDataReader GetData(int i) - { - return _dataReader.GetData(i); - } - - /// - /// Invokes the GetDataTypeName method of the underlying datareader. - /// - /// Name of the column containing the value. - public string GetDataTypeName(string name) - { - return GetDataTypeName(_dataReader.GetOrdinal(name)); - } - - /// - /// Invokes the GetDataTypeName method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual string GetDataTypeName(int i) - { - return _dataReader.GetDataTypeName(i); - } - - /// - /// Gets a date value from the datareader. - /// - /// - /// Returns DateTime.MinValue for null. - /// - /// Name of the column containing the value. - public virtual DateTime GetDateTime(string name) - { - return GetDateTime(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a date value from the datareader. - /// - /// - /// Returns DateTime.MinValue for null. - /// - /// Ordinal column position of the value. - public virtual DateTime GetDateTime(int i) - { - if (_dataReader.IsDBNull(i)) - return DateTime.MinValue; - else - return _dataReader.GetDateTime(i); - } - - /// - /// Gets a decimal value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public decimal GetDecimal(string name) - { - return GetDecimal(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a decimal value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual decimal GetDecimal(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetDecimal(i); - } - - /// - /// Invokes the GetFieldType method of the underlying datareader. - /// - /// Name of the column containing the value. - public Type GetFieldType(string name) - { - return GetFieldType(_dataReader.GetOrdinal(name)); - } - - /// - /// Invokes the GetFieldType method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual Type GetFieldType(int i) - { - return _dataReader.GetFieldType(i); - } - - /// - /// Gets a Single value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public float GetFloat(string name) - { - return GetFloat(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Single value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual float GetFloat(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetFloat(i); - } - - /// - /// Gets a Short value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public short GetInt16(string name) - { - return GetInt16(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Short value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual short GetInt16(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetInt16(i); - } - - /// - /// Gets a Long value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public Int64 GetInt64(string name) - { - return GetInt64(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Long value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual Int64 GetInt64(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetInt64(i); - } - - /// - /// Invokes the GetName method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual string GetName(int i) - { - return _dataReader.GetName(i); - } - - /// - /// Gets an ordinal value from the datareader. - /// - /// Name of the column containing the value. - public int GetOrdinal(string name) - { - return _dataReader.GetOrdinal(name); - } - - /// - /// Invokes the GetSchemaTable method of the underlying datareader. - /// - public DataTable GetSchemaTable() - { - return _dataReader.GetSchemaTable(); - } - - - /// - /// Invokes the GetValues method of the underlying datareader. - /// - /// An array of System.Object to - /// copy the values into. - public int GetValues(object[] values) - { - return _dataReader.GetValues(values); - } - - /// - /// Returns the IsClosed property value from the datareader. - /// - public bool IsClosed - { - get - { - return _dataReader.IsClosed; - } - } - - /// - /// Invokes the IsDBNull method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual bool IsDBNull(int i) - { - return _dataReader.IsDBNull(i); - } - - /// - /// Returns a value from the datareader. - /// - /// Name of the column containing the value. - public object this[string name] - { - get - { - object val = _dataReader[name]; - if (DBNull.Value.Equals(val)) - return null; - else - return val; - } - } - - /// - /// Returns a value from the datareader. - /// - /// Ordinal column position of the value. - public virtual object this[int i] - { - get - { - if (_dataReader.IsDBNull(i)) - return null; - else - return _dataReader[i]; - } - } - /// - /// Returns the RecordsAffected property value from the underlying datareader. - /// - public int RecordsAffected - { - get - { - return _dataReader.RecordsAffected; - } - } - - #region IDisposable Support - - private bool _disposedValue; // To detect redundant calls - - /// - /// Disposes the object. - /// - /// True if called by - /// the public Dispose method. - protected virtual void Dispose(bool disposing) - { - if (!_disposedValue) - { - if (disposing) - { - // free unmanaged resources when explicitly called - _dataReader.Dispose(); - } - - // free shared unmanaged resources - } - _disposedValue = true; - } - - /// - /// Disposes the object. - /// - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Object finalizer. - /// - ~SafeDataReader() - { - Dispose(false); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/ApplicationContext.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/ApplicationContext.cs deleted file mode 100644 index 99c49940..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/ApplicationContext.cs +++ /dev/null @@ -1,369 +0,0 @@ -using System; -using System.Threading; -using System.Security.Principal; -using System.Collections.Specialized; -using System.Configuration; -using System.Web; - -namespace Csla -{ - /// - /// Provides consistent context information between the client - /// and server DataPortal objects. - /// - public static class ApplicationContext - { - #region User - - /// - /// Get or set the current - /// object representing the user's identity. - /// - /// - /// This is discussed in Chapter 5. When running - /// under IIS the HttpContext.Current.User value - /// is used, otherwise the current Thread.CurrentPrincipal - /// value is used. - /// - public static IPrincipal User - { - get - { - if (HttpContext.Current == null) - return Thread.CurrentPrincipal; - else - return HttpContext.Current.User; - } - set - { - if (HttpContext.Current != null) - HttpContext.Current.User = value; - Thread.CurrentPrincipal = value; - } - } - - #endregion - - #region LocalContext - - private const string _localContextName = "Csla.LocalContext"; - - /// - /// Returns the application-specific context data that - /// is local to the current AppDomain. - /// - /// - /// - /// The return value is a HybridDictionary. If one does - /// not already exist, and empty one is created and returned. - /// - /// Note that data in this context is NOT transferred to and from - /// the client and server. - /// - /// - public static HybridDictionary LocalContext - { - get - { - HybridDictionary ctx = GetLocalContext(); - if (ctx == null) - { - ctx = new HybridDictionary(); - SetLocalContext(ctx); - } - return ctx; - } - } - - private static HybridDictionary GetLocalContext() - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_localContextName); - return (HybridDictionary)Thread.GetData(slot); - } - else - return (HybridDictionary)HttpContext.Current.Items[_localContextName]; - } - - private static void SetLocalContext(HybridDictionary localContext) - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_localContextName); - Thread.SetData(slot, localContext); - } - else - HttpContext.Current.Items[_localContextName] = localContext; - } - - #endregion - - #region Client/Global Context - - private static object _syncClientContext = new object(); - private const string _clientContextName = "Csla.ClientContext"; - private const string _globalContextName = "Csla.GlobalContext"; - - /// - /// Returns the application-specific context data provided - /// by the client. - /// - /// - /// - /// The return value is a HybridDictionary. If one does - /// not already exist, and empty one is created and returned. - /// - /// Note that data in this context is transferred from - /// the client to the server. No data is transferred from - /// the server to the client. - /// - /// This property is thread safe in a Windows client - /// setting and on an application server. It is not guaranteed - /// to be thread safe within the context of an ASP.NET - /// client setting (i.e. in your ASP.NET UI). - /// - /// - public static HybridDictionary ClientContext - { - get - { - lock (_syncClientContext) - { - HybridDictionary ctx = GetClientContext(); - if (ctx == null) - { - ctx = new HybridDictionary(); - SetClientContext(ctx); - } - return ctx; - } - } - } - - /// - /// Returns the application-specific context data shared - /// on both client and server. - /// - /// - /// - /// The return value is a HybridDictionary. If one does - /// not already exist, and empty one is created and returned. - /// - /// Note that data in this context is transferred to and from - /// the client and server. Any objects or data in this context - /// will be transferred bi-directionally across the network. - /// - /// - public static HybridDictionary GlobalContext - { - get - { - HybridDictionary ctx = GetGlobalContext(); - if (ctx == null) - { - ctx = new HybridDictionary(); - SetGlobalContext(ctx); - } - return ctx; - } - } - - internal static HybridDictionary GetClientContext() - { - if (HttpContext.Current == null) - { - if (ApplicationContext.ExecutionLocation == ExecutionLocations.Client) - lock (_syncClientContext) - return (HybridDictionary)AppDomain.CurrentDomain.GetData(_clientContextName); - else - { - LocalDataStoreSlot slot = - Thread.GetNamedDataSlot(_clientContextName); - return (HybridDictionary)Thread.GetData(slot); - } - } - else - return (HybridDictionary) - HttpContext.Current.Items[_clientContextName]; - } - - internal static HybridDictionary GetGlobalContext() - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_globalContextName); - return (HybridDictionary)Thread.GetData(slot); - } - else - return (HybridDictionary)HttpContext.Current.Items[_globalContextName]; - } - - private static void SetClientContext(HybridDictionary clientContext) - { - if (HttpContext.Current == null) - { - if (ApplicationContext.ExecutionLocation == ExecutionLocations.Client) - lock (_syncClientContext) - AppDomain.CurrentDomain.SetData(_clientContextName, clientContext); - else - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_clientContextName); - Thread.SetData(slot, clientContext); - } - } - else - HttpContext.Current.Items[_clientContextName] = clientContext; - } - - internal static void SetGlobalContext(HybridDictionary globalContext) - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_globalContextName); - Thread.SetData(slot, globalContext); - } - else - HttpContext.Current.Items[_globalContextName] = globalContext; - } - - internal static void SetContext( - HybridDictionary clientContext, - HybridDictionary globalContext) - { - SetClientContext(clientContext); - SetGlobalContext(globalContext); - } - - /// - /// Clears all context collections. - /// - public static void Clear() - { - SetContext(null, null); - SetLocalContext(null); - } - - #endregion - - #region Config Settings - - /// - /// Returns the authentication type being used by the - /// CSLA .NET framework. - /// - /// - /// - /// - /// This value is read from the application configuration - /// file with the key value "CslaAuthentication". The value - /// "Windows" indicates CSLA .NET should use Windows integrated - /// (or AD) security. Any other value indicates the use of - /// custom security derived from BusinessPrincipalBase. - /// - public static string AuthenticationType - { - get { return ConfigurationManager.AppSettings["CslaAuthentication"]; } - } - - /// - /// Returns the channel or network protocol - /// for the DataPortal server. - /// - /// Fully qualified assembly/type name of the proxy class. - /// - /// - /// - /// This value is read from the application configuration - /// file with the key value "CslaDataPortalProxy". - /// - /// The proxy class must implement Csla.Server.IDataPortalServer. - /// - /// The value "Local" is a shortcut to running the DataPortal - /// "server" in the client process. - /// - /// Other built-in values include: - /// - /// - /// Csla,Csla.DataPortalClient.RemotingProxy - /// Use .NET Remoting to communicate with the server - /// - /// - /// Csla,Csla.DataPortalClient.EnterpriseServicesProxy - /// Use Enterprise Services (DCOM) to communicate with the server - /// - /// - /// Csla,Csla.DataPortalClient.WebServicesProxy - /// Use Web Services (asmx) to communicate with the server - /// - /// - /// Each proxy type does require that the DataPortal server be hosted using the appropriate - /// technology. For instance, Web Services and Remoting should be hosted in IIS, while - /// Enterprise Services must be hosted in COM+. - /// - /// - public static string DataPortalProxy - { - get - { - string result = ConfigurationManager.AppSettings["CslaDataPortalProxy"]; - if (string.IsNullOrEmpty(result)) - result = "Local"; - return result; - } - } - - /// - /// Returns the URL for the DataPortal server. - /// - /// - /// - /// - /// This value is read from the application configuration - /// file with the key value "CslaDataPortalUrl". - /// - public static Uri DataPortalUrl - { - get { return new Uri(ConfigurationManager.AppSettings["CslaDataPortalUrl"]); } - } - - /// - /// Enum representing the locations code can execute. - /// - public enum ExecutionLocations - { - /// - /// The code is executing on the client. - /// - Client, - /// - /// The code is executing on the application server. - /// - Server - } - - #endregion - - #region In-Memory Settings - - private static ExecutionLocations _executionLocation = - ExecutionLocations.Client; - - /// - /// Returns a value indicating whether the application code - /// is currently executing on the client or server. - /// - public static ExecutionLocations ExecutionLocation - { - get { return _executionLocation; } - } - - internal static void SetExecutionLocation(ExecutionLocations location) - { - _executionLocation = location; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/DataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/DataPortal.cs deleted file mode 100644 index d0bf28eb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/DataPortal.cs +++ /dev/null @@ -1,448 +0,0 @@ -using System; -using System.Threading; -using System.Reflection; -using System.Runtime.Remoting; -using System.Runtime.Remoting.Channels; -using System.Runtime.Remoting.Channels.Http; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the client-side DataPortal as described in - /// Chapter 4. - /// - public static class DataPortal - { - - #region DataPortal events - - /// - /// Raised by DataPortal prior to calling the - /// requested server-side DataPortal method. - /// - public static event Action DataPortalInvoke; - - /// - /// Raised by DataPortal after the requested - /// server-side DataPortal method call is complete. - /// - public static event Action DataPortalInvokeComplete; - - private static void OnDataPortalInvoke(DataPortalEventArgs e) - { - Action action = DataPortalInvoke; - if (action != null) - action(e); - } - - private static void OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - Action action = DataPortalInvokeComplete; - if (action != null) - action(e); - } - - #endregion - - #region Data Access methods - - private const int EmptyCriteria = 1; - - /// - /// Called by a factory method in a business class to create - /// a new object, which is loaded with default - /// values from the database. - /// - /// Specific type of the business object. - /// Object-specific criteria. - /// A new object, populated with default values. - public static T Create(object criteria) - { - return (T)Create(typeof(T), criteria); - } - - /// - /// Called by a factory method in a business class to create - /// a new object, which is loaded with default - /// values from the database. - /// - /// Specific type of the business object. - /// A new object, populated with default values. - public static T Create() - { - return (T)Create(typeof(T), EmptyCriteria); - } - - /// - /// Called by a factory method in a business class to create - /// a new object, which is loaded with default - /// values from the database. - /// - /// Object-specific criteria. - /// A new object, populated with default values. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")] - public static object Create(object criteria) - { - return Create(MethodCaller.GetObjectType(criteria), criteria); - } - - private static object Create(Type objectType, object criteria) - { - Server.DataPortalResult result; - - MethodInfo method = MethodCaller.GetCreateMethod(objectType, criteria); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = - new Csla.Server.DataPortalContext(GetPrincipal(), proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Create(objectType, criteria, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - string.Format("DataPortal.Create {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - - return result.ReturnObject; - } - - /// - /// Called by a factory method in a business class to retrieve - /// an object, which is loaded with values from the database. - /// - /// Specific type of the business object. - /// Object-specific criteria. - /// An object populated with values from the database. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Fetch(object criteria) - { - return (T)Fetch(typeof(T), criteria); - } - - /// - /// Called by a factory method in a business class to retrieve - /// an object, which is loaded with values from the database. - /// - /// Specific type of the business object. - /// An object populated with values from the database. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Fetch() - { - return (T)Fetch(typeof(T), EmptyCriteria); - } - - /// - /// Called by a factory method in a business class to retrieve - /// an object, which is loaded with values from the database. - /// - /// Object-specific criteria. - /// An object populated with values from the database. - public static object Fetch(object criteria) - { - return Fetch(MethodCaller.GetObjectType(criteria), criteria); - } - - private static object Fetch(Type objectType, object criteria) - { - Server.DataPortalResult result; - - MethodInfo method = MethodCaller.GetFetchMethod(objectType, criteria); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = - new Server.DataPortalContext(GetPrincipal(), - proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Fetch(objectType, criteria, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - String.Format("DataPortal.Fetch {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - - return result.ReturnObject; - } - - /// - /// Called to execute a Command object on the server. - /// - /// - /// - /// To be a Command object, the object must inherit from - /// CommandBase. - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// On the server, the Command object's DataPortal_Execute() method will - /// be invoked. Write any server-side code in that method. - /// - /// - /// Specific type of the Command object. - /// A reference to the Command object to be executed. - /// A reference to the updated Command object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", - MessageId="Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Execute(T obj) where T : CommandBase - { - return (T)Update(obj); - } - - /// - /// Called to execute a Command object on the server. - /// - /// - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// On the server, the Command object's DataPortal_Execute() method will - /// be invoked. Write any server-side code in that method. - /// - /// - /// A reference to the Command object to be executed. - /// A reference to the updated Command object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId="Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static CommandBase Execute(CommandBase obj) - { - return (CommandBase)Update(obj); - } - - /// - /// Called by the business object's Save() method to - /// insert, update or delete an object in the database. - /// - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// Specific type of the business object. - /// A reference to the business object to be updated. - /// A reference to the updated business object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Update(T obj) - { - return (T)Update((object)obj); - } - - /// - /// Called by the business object's Save() method to - /// insert, update or delete an object in the database. - /// - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// A reference to the business object to be updated. - /// A reference to the updated business object. - public static object Update(object obj) - { - Server.DataPortalResult result; - - MethodInfo method; - string methodName; - if (obj is CommandBase) - methodName = "DataPortal_Execute"; - else if (obj is Core.BusinessBase) - { - Core.BusinessBase tmp = (Core.BusinessBase)obj; - if (tmp.IsDeleted) - methodName = "DataPortal_DeleteSelf"; - else - if (tmp.IsNew) - methodName = "DataPortal_Insert"; - else - methodName = "DataPortal_Update"; - } - else - methodName = "DataPortal_Update"; - - method = MethodCaller.GetMethod(obj.GetType(), methodName); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = - new Server.DataPortalContext(GetPrincipal(), proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Update(obj, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - String.Format("DataPortal.Update {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - - return result.ReturnObject; - } - - /// - /// Called by a Shared (static in C#) method in the business class to cause - /// immediate deletion of a specific object from the database. - /// - /// Object-specific criteria. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static void Delete(object criteria) - { - Server.DataPortalResult result; - - MethodInfo method = MethodCaller.GetMethod( - MethodCaller.GetObjectType(criteria), "DataPortal_Delete", criteria); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = new Server.DataPortalContext(GetPrincipal(), proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Delete(criteria, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - String.Format("DataPortal.Delete {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - } - - #endregion - - #region DataPortal Proxy - - private static DataPortalClient.IDataPortalProxy _localPortal; - private static DataPortalClient.IDataPortalProxy _portal; - - private static DataPortalClient.IDataPortalProxy GetDataPortalProxy(bool forceLocal) - { - if (forceLocal) - { - if (_localPortal == null) - _localPortal = new DataPortalClient.LocalProxy(); - return _localPortal; - } - else - { - if (_portal == null) - { - string proxyTypeName = ApplicationContext.DataPortalProxy; - if (proxyTypeName == "Local") - _portal = new DataPortalClient.LocalProxy(); - else - { - string typeName = - proxyTypeName.Substring(0, proxyTypeName.IndexOf(",")).Trim(); - string assemblyName = - proxyTypeName.Substring(proxyTypeName.IndexOf(",") + 1).Trim(); - _portal = (DataPortalClient.IDataPortalProxy) - Activator.CreateInstance(assemblyName, typeName).Unwrap(); - } - } - return _portal; - } - } - - #endregion - - #region Security - - private static System.Security.Principal.IPrincipal GetPrincipal() - { - if (ApplicationContext.AuthenticationType == "Windows") - { - // Windows integrated security - return null; - } - else - { - // we assume using the CSLA framework security - return ApplicationContext.User; - } - } - - #endregion - - #region Helper methods - - private static bool RunLocal(MethodInfo method) - { - return Attribute.IsDefined(method, typeof(RunLocalAttribute), false); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/EnterpriseServicesProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/EnterpriseServicesProxy.cs deleted file mode 100644 index 6a6de801..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/EnterpriseServicesProxy.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to an application server hosted in COM+. - /// - public abstract class EnterpriseServicesProxy : DataPortalClient.IDataPortalProxy - { - /// - /// Override this method to return a reference to - /// the server-side COM+ (ServicedComponent) object - /// implementing the data portal server functionality. - /// - protected abstract Server.Hosts.EnterpriseServicesPortal GetServerObject(); - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Create(Type objectType, object criteria, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Create(objectType, criteria, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Fetch(Type objectType, object criteria, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Fetch(objectType, criteria, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Update(object obj, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Update(obj, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Delete(object criteria, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Delete(criteria, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public virtual bool IsServerRemote - { - get { return true; } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/IDataPortalProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/IDataPortalProxy.cs deleted file mode 100644 index cf87f093..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/IDataPortalProxy.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; - -namespace Csla.DataPortalClient -{ - /// - /// Interface implemented by client-side - /// data portal proxy objects. - /// - public interface IDataPortalProxy : Server.IDataPortalServer - { - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - bool IsServerRemote { get;} - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/LocalProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/LocalProxy.cs deleted file mode 100644 index bc217040..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/LocalProxy.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using Csla.Server; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to an application server hosted locally - /// in the client process and AppDomain. - /// - public class LocalProxy : DataPortalClient.IDataPortalProxy - { - private Server.IDataPortalServer _portal = - new Server.DataPortal(); - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - return _portal.Create(objectType, criteria, context); - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - return _portal.Fetch(objectType, criteria, context); - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public DataPortalResult Update(object obj, DataPortalContext context) - { - return _portal.Update(obj, context); - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - return _portal.Delete(criteria, context); - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public bool IsServerRemote - { - get { return false; } - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/RemotingProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/RemotingProxy.cs deleted file mode 100644 index 796f0b05..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/RemotingProxy.cs +++ /dev/null @@ -1,150 +0,0 @@ -using System; -using System.Configuration; -using System.Collections; -using System.Threading; -using System.Reflection; -using System.Runtime.Remoting; -using System.Runtime.Remoting.Channels; -using System.Runtime.Remoting.Channels.Http; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to a remote application server by using the - /// .NET Remoting technology. - /// - public class RemotingProxy : DataPortalClient.IDataPortalProxy - { - - #region Configure Remoting - - /// - /// Configure .NET Remoting to use a binary - /// serialization technology even when using - /// the HTTP channel. Also ensures that the - /// user's Windows credentials are passed to - /// the server appropriately. - /// - static RemotingProxy() - { - // create and register a custom HTTP channel - // that uses the binary formatter - Hashtable properties = new Hashtable(); - properties["name"] = "HttpBinary"; - - if (ApplicationContext.AuthenticationType == "Windows" || AlwaysImpersonate) - { - // make sure we pass the user's Windows credentials - // to the server - properties["useDefaultCredentials"] = true; - } - - BinaryClientFormatterSinkProvider - formatter = new BinaryClientFormatterSinkProvider(); - HttpChannel channel = new HttpChannel(properties, formatter, null); - ChannelServices.RegisterChannel(channel, EncryptChannel); - } - - private static bool AlwaysImpersonate - { - get - { - bool result = - (ConfigurationManager.AppSettings["AlwaysImpersonate"] == "true"); - return result; - } - } - - private static bool EncryptChannel - { - get - { - bool encrypt = - (ConfigurationManager.AppSettings["CslaEncryptRemoting"] == "true"); - return encrypt; - } - } - - #endregion - - private Server.IDataPortalServer _portal; - - private Server.IDataPortalServer Portal - { - get - { - if (_portal == null) - _portal = (Server.IDataPortalServer)Activator.GetObject( - typeof(Server.Hosts.RemotingPortal), - ApplicationContext.DataPortalUrl.ToString()); - return _portal; - } - } - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Create( - Type objectType, object criteria, Server.DataPortalContext context) - { - return Portal.Create(objectType, criteria, context); - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Fetch(Type objectType, object criteria, Server.DataPortalContext context) - { - return Portal.Fetch(objectType, criteria, context); - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Update(object obj, Server.DataPortalContext context) - { - return Portal.Update(obj, context); - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Delete(object criteria, Server.DataPortalContext context) - { - return Portal.Delete(criteria, context); - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public bool IsServerRemote - { - get { return true; } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/WebServicesProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/WebServicesProxy.cs deleted file mode 100644 index acba7ab0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/WebServicesProxy.cs +++ /dev/null @@ -1,177 +0,0 @@ -using System; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; -using Csla.WebServiceHost; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to a remote application server by using - /// Web services. - /// - public class WebServicesProxy : DataPortalClient.IDataPortalProxy - { - private WebServiceHost.WebServicePortal GetPortal() - { - WebServiceHost.WebServicePortal wsvc = - new WebServiceHost.WebServicePortal(); - wsvc.Url = ApplicationContext.DataPortalUrl.ToString(); - return wsvc; - } - - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Create( - Type objectType, object criteria, Server.DataPortalContext context) - { - object result; - Csla.Server.Hosts.WebServicePortal.CreateRequest - request = new Csla.Server.Hosts.WebServicePortal.CreateRequest(); - request.ObjectType = objectType; - request.Criteria = criteria; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - byte[] rd = Serialize(request); - byte[] rp = wsvc.Create(rd); - result = Deserialize(rp); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Fetch( - Type objectType, object criteria, Server.DataPortalContext context) - { - object result; - Server.Hosts.WebServicePortal.FetchRequest request = - new Server.Hosts.WebServicePortal.FetchRequest(); - request.ObjectType = objectType; - request.Criteria = criteria; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - result = Deserialize(wsvc.Fetch(Serialize(request))); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Update(object obj, Server.DataPortalContext context) - { - object result; - Server.Hosts.WebServicePortal.UpdateRequest request = new Server.Hosts.WebServicePortal.UpdateRequest(); - request.Object = obj; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - result = Deserialize(wsvc.Update(Serialize(request))); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Delete(object criteria, Server.DataPortalContext context) - { - object result; - Server.Hosts.WebServicePortal.DeleteRequest request = new Server.Hosts.WebServicePortal.DeleteRequest(); - request.Criteria = criteria; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - result = Deserialize(wsvc.Delete(Serialize(request))); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public bool IsServerRemote - { - get { return true; } - } - - - #region Helper functions - - private static byte[] Serialize(object obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, obj); - return buffer.ToArray(); - } - } - return null; - } - - private static object Deserialize(byte[] obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream(obj)) - { - BinaryFormatter formatter = new BinaryFormatter(); - return formatter.Deserialize(buffer); - } - } - return null; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/CriteriaBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/CriteriaBase.cs deleted file mode 100644 index 61be73dc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/CriteriaBase.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; - -namespace Csla -{ - - /// - /// Base type from which Criteria classes can be - /// derived in a business class. - /// - [Serializable()] - public abstract class CriteriaBase - { - private Type _objectType; - - /// - /// Type of the business object to be instantiated by - /// the server-side DataPortal. - /// - public Type ObjectType - { - get { return _objectType; } - } - - /// - /// Initializes CriteriaBase with the type of - /// business object to be created by the DataPortal. - /// - /// The type of the - /// business object the data portal should create. - protected CriteriaBase(Type type) - { - _objectType = type; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalEventArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalEventArgs.cs deleted file mode 100644 index 69bd8145..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalEventArgs.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Provides information about the DataPortal - /// call. - /// - public class DataPortalEventArgs : EventArgs - { - private Server.DataPortalContext _dataPortalContext; - - /// - /// The DataPortalContext object passed to the - /// server-side DataPortal. - /// - public Server.DataPortalContext DataPortalContext - { - get { return _dataPortalContext; } - } - - /// - /// Creates an instance of the object. - /// - /// - /// Data portal context object. - /// - public DataPortalEventArgs(Server.DataPortalContext dataPortalContext) - { - _dataPortalContext = dataPortalContext; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalException.cs deleted file mode 100644 index e5284dbf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalException.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Security.Permissions; - -namespace Csla -{ - - /// - /// This exception is returned for any errors occuring - /// during the server-side DataPortal invocation. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors")] - [Serializable()] - public class DataPortalException : Exception - { - private object _businessObject; - private string _innerStackTrace; - - /// - /// Returns a reference to the business object - /// from the server-side DataPortal. - /// - /// - /// Remember that this object may be in an invalid - /// or undefined state. This is the business object - /// (and any child objects) as it existed when the - /// exception occured on the server. Thus the object - /// state may have been altered by the server and - /// may no longer reflect data in the database. - /// - public object BusinessObject - { - get { return _businessObject; } - } - - /// - /// Gets the original server-side exception. - /// - /// An exception object. - /// - /// When an exception occurs in business code behind - /// the data portal, it is wrapped in a - /// , which - /// is then wrapped in a - /// . This property - /// unwraps and returns the original exception - /// thrown by the business code on the server. - /// - public Exception BusinessException - { - get - { - return this.InnerException.InnerException; - } - } - - /// - /// Get the combined stack trace from the server - /// and client. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")] - public override string StackTrace - { - get { return String.Format("{0}{1}{2}", _innerStackTrace, Environment.NewLine, base.StackTrace); } - } - - /// - /// Creates an instance of the object. - /// - /// Text describing the exception. - /// The business object - /// as it was at the time of the exception. - public DataPortalException(string message, object businessObject) - : base(message) - { - _innerStackTrace = String.Empty; - _businessObject = businessObject; - } - - /// - /// Creates an instance of the object. - /// - /// Text describing the exception. - /// Inner exception. - /// The business object - /// as it was at the time of the exception. - public DataPortalException(string message, Exception ex, object businessObject) - : base(message, ex) - { - _innerStackTrace = ex.StackTrace; - _businessObject = businessObject; - } - - /// - /// Creates an instance of the object for serialization. - /// - /// Serialiation info object. - /// Serialization context object. - protected DataPortalException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - _businessObject = info.GetValue("_businessObject", typeof(object)); - _innerStackTrace = info.GetString("_innerStackTrace"); - } - - /// - /// Serializes the object. - /// - /// Serialiation info object. - /// Serialization context object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] - [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.SerializationFormatter)] - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - { - base.GetObjectData(info, context); - info.AddValue("_businessObject", _businessObject); - info.AddValue("_innerStackTrace", _innerStackTrace); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/EnterpriseServicesPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/EnterpriseServicesPortal.cs deleted file mode 100644 index c31a38ea..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/EnterpriseServicesPortal.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.EnterpriseServices; -using System.Runtime.InteropServices; -using System.Reflection; - -namespace Csla.Server.Hosts -{ - - /// - /// Exposes server-side DataPortal functionality - /// through Enterprise Services. - /// - [EventTrackingEnabled(true)] - [ComVisible(true)] - public abstract class EnterpriseServicesPortal : ServicedComponent, Server.IDataPortalServer - { - - /// - /// Set up event handler to deal with - /// serialization issue as discussed - /// in Chapter 4. - /// - static EnterpriseServicesPortal() - { - SerializationWorkaround(); - } - - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual DataPortalResult Create(Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Create(objectType, criteria, context); - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Fetch(objectType, criteria, context); - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - public virtual DataPortalResult Update(object obj, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Update(obj, context); - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual DataPortalResult Delete(object criteria, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Delete(criteria, context); - } - - #region Serialization bug workaround - - private static void SerializationWorkaround() - { - // hook up the AssemblyResolve - // event so deep serialization works properly - // this is a workaround for a bug in the .NET runtime - AppDomain currentDomain = AppDomain.CurrentDomain; - - currentDomain.AssemblyResolve += - new ResolveEventHandler(ResolveEventHandler); - } - - private static Assembly ResolveEventHandler( - object sender, ResolveEventArgs args) - { - // get a list of all the assemblies loaded in our appdomain - Assembly[] list = AppDomain.CurrentDomain.GetAssemblies(); - - // search the list to find the assembly that was not found automatically - // and return the assembly from the list - - foreach (Assembly asm in list) - if (asm.FullName == args.Name) - return asm; - - // if the assembly wasn't already in the appdomain, then try to load it. - return Assembly.Load(args.Name); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/RemotingPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/RemotingPortal.cs deleted file mode 100644 index baa86431..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/RemotingPortal.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; - -namespace Csla.Server.Hosts -{ - /// - /// Exposes server-side DataPortal functionality - /// through .NET Remoting. - /// - public class RemotingPortal : MarshalByRefObject, Server.IDataPortalServer - { - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Create(objectType, criteria, context); - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Fetch(objectType, criteria, context); - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - public DataPortalResult Update(object obj, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Update(obj, context); - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Delete(criteria, context); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/WebServicePortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/WebServicePortal.cs deleted file mode 100644 index 155b0463..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/WebServicePortal.cs +++ /dev/null @@ -1,282 +0,0 @@ -using System; -using System.Web; -using System.Web.Services; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; - -namespace Csla.Server.Hosts -{ - // in asmx use web directive like - // <%@ WebService Class="Csla.Server.Hosts.WebServicePortal" %> - /// - /// Exposes server-side DataPortal functionality - /// through Web Services (asmx). - /// - [WebService(Namespace = "http://ws.lhotka.net/Csla")] - public class WebServicePortal : WebService - { - - #region Request classes - - /// - /// Request message for creating - /// a new business object. - /// - [Serializable()] - public class CreateRequest - { - private Type _objectType; - private object _criteria; - private Server.DataPortalContext _context; - - /// - /// Type of business object to create. - /// - public Type ObjectType - { - get { return _objectType; } - set { _objectType = value; } - } - - /// - /// Criteria object describing business object. - /// - public object Criteria - { - get { return _criteria; } - set { _criteria = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - /// - /// Request message for retrieving - /// an existing business object. - /// - [Serializable()] - public class FetchRequest - { - private Type _objectType; - private object _criteria; - private Server.DataPortalContext _context; - - /// - /// Type of business object to create. - /// - public Type ObjectType - { - get { return _objectType; } - set { _objectType = value; } - } - - /// - /// Criteria object describing business object. - /// - public object Criteria - { - get { return _criteria; } - set { _criteria = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - /// - /// Request message for updating - /// a business object. - /// - [Serializable()] - public class UpdateRequest - { - private object _object; - private Server.DataPortalContext _context; - - /// - /// Business object to be updated. - /// - public object Object - { - get { return _object; } - set { _object = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - /// - /// Request message for deleting - /// a business object. - /// - [Serializable()] - public class DeleteRequest - { - private object _criteria; - private Server.DataPortalContext _context; - - /// - /// Criteria object describing business object. - /// - public object Criteria - { - get { return _criteria; } - set { _criteria = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - #endregion - - /// - /// Create a new business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Create(byte[] requestData) - { - CreateRequest request = (CreateRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Create(request.ObjectType, request.Criteria, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - /// - /// Get an existing business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Fetch(byte[] requestData) - { - FetchRequest request = (FetchRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Fetch(request.ObjectType, request.Criteria, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - /// - /// Update a business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Update(byte[] requestData) - { - UpdateRequest request = (UpdateRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Update(request.Object, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - /// - /// Delete a business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Delete(byte[] requestData) - { - DeleteRequest request = (DeleteRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Delete(request.Criteria, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - #region Helper functions - - private static byte[] Serialize(object obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, obj); - return buffer.ToArray(); - } - } - return null; - } - - private static object Deserialize(byte[] obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream(obj)) - { - BinaryFormatter formatter = new BinaryFormatter(); - return formatter.Deserialize(buffer); - } - } - return null; - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/MethodCaller.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/MethodCaller.cs deleted file mode 100644 index 628de97c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/MethodCaller.cs +++ /dev/null @@ -1,249 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Text; -using Csla.Properties; - -namespace Csla -{ - internal static class MethodCaller - { - const BindingFlags allLevelFlags = - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public | - BindingFlags.NonPublic; - - const BindingFlags oneLevelFlags = - BindingFlags.DeclaredOnly | - BindingFlags.Instance | - BindingFlags.Public | - BindingFlags.NonPublic; - - /// - /// Gets a reference to the DataPortal_Create method for - /// the specified business object type. - /// - /// Type of the business object. - /// Criteria parameter value. - /// - /// If the criteria parameter value is an integer, that is a special - /// flag indicating that the parameter should be considered missing - /// (not Nothing/null - just not there). - /// - public static MethodInfo GetCreateMethod(Type objectType, object criteria) - { - MethodInfo method = null; - if (criteria is int) - { - // an "Integer" criteria is a special flag indicating - // that criteria is empty and should not be used - method = MethodCaller.GetMethod(objectType, "DataPortal_Create"); - } - else - method = MethodCaller.GetMethod(objectType, "DataPortal_Create", criteria); - return method; - } - - /// - /// Gets a reference to the DataPortal_Fetch method for - /// the specified business object type. - /// - /// Type of the business object. - /// Criteria parameter value. - /// - /// If the criteria parameter value is an integer, that is a special - /// flag indicating that the parameter should be considered missing - /// (not Nothing/null - just not there). - /// - public static MethodInfo GetFetchMethod(Type objectType, object criteria) - { - MethodInfo method = null; - if (criteria is int) - { - // an "Integer" criteria is a special flag indicating - // that criteria is empty and should not be used - method = MethodCaller.GetMethod(objectType, "DataPortal_Fetch"); - } - else - method = MethodCaller.GetMethod(objectType, "DataPortal_Fetch", criteria); - return method; - } - - /// - /// Uses reflection to dynamically invoke a method - /// if that method is implemented on the target object. - /// - public static object CallMethodIfImplemented( - object obj, string method, params object[] parameters) - { - MethodInfo info = GetMethod(obj.GetType(), method, parameters); - if (info != null) - return CallMethod(obj, info, parameters); - else - return null; - } - - /// - /// Uses reflection to dynamically invoke a method, - /// throwing an exception if it is not - /// implemented on the target object. - /// - public static object CallMethod( - object obj, string method, params object[] parameters) - { - MethodInfo info = GetMethod(obj.GetType(), method, parameters); - if (info == null) - throw new NotImplementedException( - method + " " + Resources.MethodNotImplemented); - return CallMethod(obj, info, parameters); - } - - /// - /// Uses reflection to dynamically invoke a method, - /// throwing an exception if it is not - /// implemented on the target object. - /// - public static object CallMethod( - object obj, MethodInfo info, params object[] parameters) - { - // call a private method on the object - object result; - try - { - result = info.Invoke(obj, parameters); - } - catch (Exception e) - { - throw new Csla.Server.CallMethodException( - info.Name + " " + Resources.MethodCallFailed, e.InnerException); - } - return result; - } - - /// - /// Uses reflection to locate a matching method - /// on the target object. - /// - public static MethodInfo GetMethod( - Type objectType, string method, params object[] parameters) - { - MethodInfo result = null; - - // try to find a strongly typed match - // put all param types into a list of Type - List types = new List(); - foreach (object item in parameters) - { - if (item == null) - types.Add(typeof(object)); - else - types.Add(item.GetType()); - } - - // first see if there's a matching method - // where all params match types - result = FindMethod(objectType, method, types.ToArray()); - - if (result == null) - { - // no match found - so look for any method - // with the right number of parameters - result = FindMethod(objectType, method, parameters.Length); - } - - // no strongly typed match found, get default - if (result == null) - { - try - { - result = objectType.GetMethod(method, allLevelFlags); - } - catch (AmbiguousMatchException) - { - MethodInfo[] methods = objectType.GetMethods(); - foreach (MethodInfo m in methods) - if (m.Name == method && m.GetParameters().Length == parameters.Length) - { - result = m; - break; - } - if (result == null) - throw; - } - } - return result; - } - - /// - /// Returns a business object type based on - /// the supplied criteria object. - /// - public static Type GetObjectType(object criteria) - { - if (criteria.GetType().IsSubclassOf(typeof(CriteriaBase))) - { - // get the type of the actual business object - // from CriteriaBase - return ((CriteriaBase)criteria).ObjectType; - } - else - { - // get the type of the actual business object - // based on the nested class scheme in the book - return criteria.GetType().DeclaringType; - } - } - - /// - /// Returns information about the specified - /// method, even if the parameter types are - /// generic and are located in an abstract - /// generic base class. - /// - public static MethodInfo FindMethod(Type objType, string method, Type[] types) - { - MethodInfo info = null; - do - { - //find for a strongly typed match - info = objType.GetMethod(method, oneLevelFlags, null, types, null); - if (info != null) - break; //match found - - objType = objType.BaseType; - } while (objType != null); - - return info; - } - - /// - /// Returns information about the specified - /// method, finding the method based purely - /// on the method name and number of parameters. - /// - public static MethodInfo FindMethod(Type objType, string method, int parameterCount) - { - // walk up the inheritance hierarchy looking - // for a method with the right number of - // parameters - MethodInfo result = null; - Type currentType = objType; - do - { - MethodInfo info = currentType.GetMethod(method, oneLevelFlags); - if (info != null) - { - if (info.GetParameters().Length == parameterCount) - { - // got a match so use it - result = info; - break; - } - } - currentType = currentType.BaseType; - } while (currentType != null); - return result; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/RunLocalAttribute.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/RunLocalAttribute.cs deleted file mode 100644 index c4667196..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/RunLocalAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Marks a DataPortal_XYZ method to - /// be run on the client even if the server-side - /// DataPortal is configured for remote use. - /// - [AttributeUsage(AttributeTargets.Method)] - public sealed class RunLocalAttribute : Attribute - { - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/CallMethodException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/CallMethodException.cs deleted file mode 100644 index 803a20c2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/CallMethodException.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Security.Permissions; - -namespace Csla.Server -{ - /// - /// This exception is returned from the - /// CallMethod method in the server-side DataPortal - /// and contains the exception thrown by the - /// underlying business object method that was - /// being invoked. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors")] - [Serializable()] - public class CallMethodException : Exception - { - private string _innerStackTrace; - - /// - /// Get the stack trace from the original - /// exception. - /// - /// - /// - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")] - public override string StackTrace - { - get - { - return string.Format("{0}{1}{2}", - _innerStackTrace, Environment.NewLine, base.StackTrace); - } - } - - /// - /// Creates an instance of the object. - /// - /// Message text describing the exception. - /// Inner exception object. - public CallMethodException(string message, Exception ex) - : base(message, ex) - { - _innerStackTrace = ex.StackTrace; - } - - /// - /// Creates an instance of the object for deserialization. - /// - /// Serialization info. - /// Serialiation context. - protected CallMethodException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - _innerStackTrace = info.GetString("_innerStackTrace"); - } - - - /// - /// Serializes the object. - /// - /// Serialization info. - /// Serialization context. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] - [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.SerializationFormatter)] - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - { - base.GetObjectData(info, context); - info.AddValue("_innerStackTrace", _innerStackTrace); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortal.cs deleted file mode 100644 index 70059005..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortal.cs +++ /dev/null @@ -1,327 +0,0 @@ -using System; -using System.Reflection; -using System.Security.Principal; -using System.Collections.Specialized; -using Csla.Properties; - -namespace Csla.Server -{ - /// - /// Implements the server-side DataPortal - /// message router as discussed - /// in Chapter 4. - /// - public class DataPortal : IDataPortalServer - { - - #region Data Access - - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method = MethodCaller.GetCreateMethod(objectType, criteria); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Create(objectType, criteria, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - - break; - case TransactionalTypes.TransactionScope: - - portal = new TransactionalDataPortal(); - result = portal.Create(objectType, criteria, context); - - break; - default: - portal = new SimpleDataPortal(); - result = portal.Create(objectType, criteria, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method = MethodCaller.GetFetchMethod(objectType, criteria); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Fetch(objectType, criteria, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - break; - case TransactionalTypes.TransactionScope: - portal = new TransactionalDataPortal(); - result = portal.Fetch(objectType, criteria, context); - break; - default: - portal = new SimpleDataPortal(); - result = portal.Fetch(objectType, criteria, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - public DataPortalResult Update(object obj, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method; - string methodName; - if (obj is CommandBase) - methodName = "DataPortal_Execute"; - else if (obj is Core.BusinessBase) - { - Core.BusinessBase tmp = (Core.BusinessBase)obj; - if (tmp.IsDeleted) - methodName = "DataPortal_DeleteSelf"; - else - if (tmp.IsNew) - methodName = "DataPortal_Insert"; - else - methodName = "DataPortal_Update"; - } - else - methodName = "DataPortal_Update"; - - method = MethodCaller.GetMethod(obj.GetType(), methodName); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Update(obj, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - break; - case TransactionalTypes.TransactionScope: - portal = new TransactionalDataPortal(); - result = portal.Update(obj, context); - break; - default: - portal = new SimpleDataPortal(); - result = portal.Update(obj, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method = MethodCaller.GetMethod( - MethodCaller.GetObjectType(criteria), "DataPortal_Delete", criteria); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Delete(criteria, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - break; - case TransactionalTypes.TransactionScope: - portal = new TransactionalDataPortal(); - result = portal.Delete(criteria, context); - break; - default: - portal = new SimpleDataPortal(); - result = portal.Delete(criteria, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - #endregion - - #region Context - - private static void SetContext(DataPortalContext context) - { - // if the dataportal is not remote then - // do nothing - if (!context.IsRemotePortal) return; - - // set the context value so everyone knows the - // code is running on the server - ApplicationContext.SetExecutionLocation(ApplicationContext.ExecutionLocations.Server); - - // set the app context to the value we got from the - // client - ApplicationContext.SetContext(context.ClientContext, context.GlobalContext); - - // set the thread's culture to match the client - System.Threading.Thread.CurrentThread.CurrentCulture = - new System.Globalization.CultureInfo(context.ClientCulture); - System.Threading.Thread.CurrentThread.CurrentUICulture = - new System.Globalization.CultureInfo(context.ClientUICulture); - - if (ApplicationContext.AuthenticationType == "Windows") - { - // When using integrated security, Principal must be null - if (context.Principal == null) - { - // Set .NET to use integrated security - AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); - return; - } - else - { - throw new System.Security.SecurityException(Resources.NoPrincipalAllowedException); - } - } - // We expect the Principal to be of the type BusinesPrincipal - if (context.Principal != null) - { - if (context.Principal is Security.BusinessPrincipalBase) - ApplicationContext.User = context.Principal; - else - throw new System.Security.SecurityException( - Resources.BusinessPrincipalException + " " + - ((object)context.Principal).ToString()); - } - else - throw new System.Security.SecurityException( - Resources.BusinessPrincipalException + " Nothing"); - } - - private static void ClearContext(DataPortalContext context) - { - // if the dataportal is not remote then - // do nothing - if (!context.IsRemotePortal) return; - ApplicationContext.Clear(); - if (ApplicationContext.AuthenticationType != "Windows") - ApplicationContext.User = null; - } - - #endregion - - #region Helper methods - - private static bool IsTransactionalMethod(MethodInfo method) - { - return Attribute.IsDefined(method, typeof(TransactionalAttribute)); - } - - private static TransactionalTypes TransactionalType(MethodInfo method) - { - TransactionalTypes result; - if (IsTransactionalMethod(method)) - { - TransactionalAttribute attrib = - (TransactionalAttribute)Attribute.GetCustomAttribute( - method, typeof(TransactionalAttribute)); - result = attrib.TransactionType; - } - else - result = TransactionalTypes.Manual; - return result; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalContext.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalContext.cs deleted file mode 100644 index 232cbec3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalContext.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Security.Principal; -using System.Threading; -using System.Collections.Specialized; - -namespace Csla.Server -{ - /// - /// Provides consistent context information between the client - /// and server DataPortal objects. - /// - [Serializable()] - public class DataPortalContext - { - private IPrincipal _principal; - private bool _remotePortal; - private string _clientCulture; - private string _clientUICulture; - private HybridDictionary _clientContext; - private HybridDictionary _globalContext; - - /// - /// The current principal object - /// if CSLA security is being used. - /// - public IPrincipal Principal - { - get { return _principal; } - } - - /// - /// Returns if the - /// server-side DataPortal is running - /// on a remote server via remoting. - /// - public bool IsRemotePortal - { - get { return _remotePortal; } - } - - /// - /// The culture setting on the client - /// workstation. - /// - public string ClientCulture - { - get { return _clientCulture; } - } - - /// - /// The culture setting on the client - /// workstation. - /// - public string ClientUICulture - { - get { return _clientUICulture; } - } - internal HybridDictionary ClientContext - { - get { return _clientContext; } - } - - internal HybridDictionary GlobalContext - { - get { return _globalContext; } - } - - /// - /// Creates a new DataPortalContext object. - /// - /// The current Principal object. - /// Indicates whether the DataPortal is remote. - public DataPortalContext(IPrincipal principal, bool isRemotePortal) - { - if (isRemotePortal) - { - _principal = principal; - _remotePortal = isRemotePortal; - _clientCulture = - System.Threading.Thread.CurrentThread.CurrentCulture.Name; - _clientUICulture = - System.Threading.Thread.CurrentThread.CurrentUICulture.Name; - _clientContext = Csla.ApplicationContext.GetClientContext(); - _globalContext = Csla.ApplicationContext.GetGlobalContext(); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalException.cs deleted file mode 100644 index b42ae7a0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalException.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Server -{ - /// - /// This exception is returned from the - /// server-side DataPortal and contains the exception - /// and context data from the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors")] - [Serializable()] - public class DataPortalException : Exception - { - private DataPortalResult _result; - private string _innerStackTrace; - - /// - /// Returns the DataPortalResult object from the server. - /// - public DataPortalResult Result - { - get { return _result; } - } - - /// - /// Get the server-side stack trace from the - /// original exception. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")] - public override string StackTrace - { - get { return String.Format("{0}{1}{2}", - _innerStackTrace, Environment.NewLine, base.StackTrace); } - } - - /// - /// Creates an instance of the object. - /// - /// Text describing the exception. - /// Inner exception. - /// The data portal result object. - public DataPortalException( - string message, Exception ex, DataPortalResult result) - : base(message, ex) - { - _innerStackTrace = ex.StackTrace; - _result = result; - } - - /// - /// Creates an instance of the object for serialization. - /// - /// Serialiation info object. - /// Serialization context object. - protected DataPortalException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - _result = (DataPortalResult)info.GetValue( - "_result", typeof(DataPortalResult)); - _innerStackTrace = info.GetString("_innerStackTrace"); - } - - /// - /// Serializes the object. - /// - /// Serialiation info object. - /// Serialization context object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.LinkDemand, Flags = System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter)] - [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags = System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter)] - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - { - base.GetObjectData(info, context); - info.AddValue("_result", _result); - info.AddValue("_innerStackTrace", _innerStackTrace); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalResult.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalResult.cs deleted file mode 100644 index 9fc05724..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalResult.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Specialized; -using System.Text; - -namespace Csla.Server -{ - /// - /// Returns data from the server-side DataPortal to the - /// client-side DataPortal. Intended for internal CSLA .NET - /// use only. - /// - [Serializable()] - public class DataPortalResult - { - private object _returnObject; - private HybridDictionary _globalContext; - - /// - /// The business object being returned from - /// the server. - /// - public object ReturnObject - { - get { return _returnObject; } - } - - /// - /// The global context being returned from - /// the server. - /// - public HybridDictionary GlobalContext - { - get { return _globalContext; } - } - - /// - /// Creates an instance of the object. - /// - public DataPortalResult() - { - _globalContext = ApplicationContext.GetGlobalContext(); - } - - /// - /// Creates an instance of the object. - /// - /// Object to return as part - /// of the result. - public DataPortalResult(object returnObject) - { - _returnObject = returnObject; - _globalContext = ApplicationContext.GetGlobalContext(); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/IDataPortalServer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/IDataPortalServer.cs deleted file mode 100644 index aead2ce1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/IDataPortalServer.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Server -{ - /// - /// Interface implemented by server-side data portal - /// components. - /// - public interface IDataPortalServer - { - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - DataPortalResult Create(Type objectType, object criteria, DataPortalContext context); - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context); - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - DataPortalResult Update(object obj, DataPortalContext context); - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - DataPortalResult Delete(object criteria, DataPortalContext context); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/ServicedDataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/ServicedDataPortal.cs deleted file mode 100644 index 0f06af25..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/ServicedDataPortal.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System; -using System.EnterpriseServices; -using System.Runtime.InteropServices; - -namespace Csla.Server -{ - /// - /// Implements the server-side Serviced - /// DataPortal described in Chapter 4. - /// - [Transaction(TransactionOption.Required)] - [EventTrackingEnabled(true)] - [ComVisible(true)] - public class ServicedDataPortal : ServicedComponent, IDataPortalServer - { - /// - /// Wraps a Create call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// A Type object - /// indicating the type of business object to be created. - /// A custom criteria object providing any - /// extra information that may be required to properly create - /// the object. - /// Context data from the client. - /// A populated business object. - [AutoComplete(true)] - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Create(objectType, criteria, context); - } - - /// - /// Wraps a Fetch call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// Type of business object to retrieve. - /// Object-specific criteria. - /// Object containing context data from client. - /// A populated business object. - [AutoComplete(true)] - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Fetch(objectType, criteria, context); - } - - /// - /// Wraps an Update call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// A reference to the object being updated. - /// Context data from the client. - /// A reference to the newly updated object. - [AutoComplete(true)] - public DataPortalResult Update(object obj, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Update(obj, context); - } - - /// - /// Wraps a Delete call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// Object-specific criteria. - /// Context data from the client. - [AutoComplete(true)] - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Delete(criteria, context); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/SimpleDataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/SimpleDataPortal.cs deleted file mode 100644 index a87f0834..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/SimpleDataPortal.cs +++ /dev/null @@ -1,317 +0,0 @@ -using System; -using System.Reflection; -using System.Security.Principal; -using System.Collections.Specialized; -using Csla.Properties; - -namespace Csla.Server -{ - /// - /// Implements the server-side DataPortal as discussed - /// in Chapter 4. - /// - public class SimpleDataPortal : IDataPortalServer - { - - #region Data Access - - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")] - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - object obj = null; - - try - { - // create an instance of the business object. - obj = Activator.CreateInstance(objectType, true); - - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", new DataPortalEventArgs(context)); - - // tell the business object to create its data - MethodInfo method = MethodCaller.GetCreateMethod(objectType, criteria); - if (criteria is int) - MethodCaller.CallMethod(obj, method); - else - MethodCaller.CallMethod(obj, method, criteria); - - // mark the object as new - MethodCaller.CallMethodIfImplemented( - obj, "MarkNew"); - - // tell the business object the DataPortal_xyz call is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - // return the populated business object as a result - return new DataPortalResult(obj); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Create " + Resources.FailedOnServer, - ex, new DataPortalResult(obj)); - } - - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")] - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - object obj = null; - try - { - // create an instance of the business object. - obj = Activator.CreateInstance(objectType, true); - - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", - new DataPortalEventArgs(context)); - - // tell the business object to fetch its data - MethodInfo method = MethodCaller.GetFetchMethod(objectType, criteria); - if (criteria is int) - MethodCaller.CallMethod(obj, method); - else - MethodCaller.CallMethod(obj, method, criteria); - - // mark the object as old - MethodCaller.CallMethodIfImplemented( - obj, "MarkOld"); - - // tell the business object the DataPortal_xyz call is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - // return the populated business object as a result - return new DataPortalResult(obj); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Fetch " + Resources.FailedOnServer, - ex, new DataPortalResult(obj)); - } - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - public DataPortalResult Update(object obj, DataPortalContext context) - { - try - { - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", - new DataPortalEventArgs(context)); - - // tell the business object to update itself - if (obj is Core.BusinessBase) - { - Core.BusinessBase busObj = (Core.BusinessBase)obj; - if (busObj.IsDeleted) - { - if (!busObj.IsNew) - { - // tell the object to delete itself - MethodCaller.CallMethod( - busObj, "DataPortal_DeleteSelf"); - } - // mark the object as new - MethodCaller.CallMethodIfImplemented( - busObj, "MarkNew"); - } - else - { - if (busObj.IsNew) - { - // tell the object to insert itself - MethodCaller.CallMethod( - busObj, "DataPortal_Insert"); - } - else - { - // tell the object to update itself - MethodCaller.CallMethod( - busObj, "DataPortal_Update"); - } - // mark the object as old - MethodCaller.CallMethodIfImplemented( - busObj, "MarkOld"); - } - } - else if (obj is CommandBase) - { - // tell the object to update itself - MethodCaller.CallMethod( - obj, "DataPortal_Execute"); - } - else - { - // this is an updatable collection or some other - // non-BusinessBase type of object - // tell the object to update itself - MethodCaller.CallMethod( - obj, "DataPortal_Update"); - // mark the object as old - MethodCaller.CallMethodIfImplemented( - obj, "MarkOld"); - } - - // tell the business object the DataPortal_xyz is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - return new DataPortalResult(obj); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Update " + Resources.FailedOnServer, - ex, new DataPortalResult(obj)); - } - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - object obj = null; - try - { - // create an instance of the business objet - obj = CreateBusinessObject(criteria); - - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", - new DataPortalEventArgs(context)); - - // tell the business object to delete itself - MethodCaller.CallMethod( - obj, "DataPortal_Delete", criteria); - - // tell the business object the DataPortal_xyz call is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - return new DataPortalResult(); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Delete " + Resources.FailedOnServer, - ex, new DataPortalResult()); - } - } - - #endregion - - #region Creating the business object - - private static object CreateBusinessObject(object criteria) - { - Type businessType; - if (criteria.GetType().IsSubclassOf(typeof(CriteriaBase))) - { - // get the type of the actual business object - // from CriteriaBase - businessType = ((CriteriaBase)criteria).ObjectType; - } - else - { - // get the type of the actual business object - // based on the nested class scheme in the book - businessType = criteria.GetType().DeclaringType; - } - - // create an instance of the business object - return Activator.CreateInstance(businessType, true); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/TransactionalDataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/TransactionalDataPortal.cs deleted file mode 100644 index 9c411338..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/TransactionalDataPortal.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Transactions; - -namespace Csla.Server -{ - /// - /// Implements the server-side Serviced - /// DataPortal described in Chapter 4. - /// - public class TransactionalDataPortal : IDataPortalServer - { - /// - /// Wraps a Create call in a TransactionScope - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// A Type object - /// indicating the type of business object to be created. - /// A custom criteria object providing any - /// extra information that may be required to properly create - /// the object. - /// Context data from the client. - /// A populated business object. - public DataPortalResult Create( - System.Type objectType, object criteria, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Create(objectType, criteria, context); - tr.Complete(); - } - return result; - } - - /// - /// Called by the client-side DataProtal to retrieve an object. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// Type of business object to retrieve. - /// Object-specific criteria. - /// Object containing context data from client. - /// A populated business object. - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Fetch(objectType, criteria, context); - tr.Complete(); - } - return result; - } - - /// - /// Called by the client-side DataPortal to update an object. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// A reference to the object being updated. - /// Context data from the client. - /// A reference to the newly updated object. - public DataPortalResult Update(object obj, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Update(obj, context); - tr.Complete(); - } - return result; - } - - /// - /// Called by the client-side DataPortal to delete an object. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// Object-specific criteria. - /// Context data from the client. - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Delete(criteria, context); - tr.Complete(); - } - return result; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalAttribute.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalAttribute.cs deleted file mode 100644 index f5c093d7..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalAttribute.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Marks a DataPortal_XYZ method to run within - /// the specified transactional context. - /// - /// - /// - /// Each business object method may be marked with this attribute - /// to indicate which type of transactional technology should - /// be used by the server-side DataPortal. The possible options - /// are listed in the - /// TransactionalTypes enum. - /// - /// If the Transactional attribute is not applied to a - /// DataPortal_XYZ method then the - /// Manual option - /// is assumed. - /// - /// If the Transactional attribute is applied with no explicit - /// choice for transactionType then the - /// EnterpriseServices - /// option is assumed. - /// - /// Both the EnterpriseServices and TransactionScope options provide - /// 2-phase distributed transactional support. - /// - /// - [AttributeUsage(AttributeTargets.Method)] - public sealed class TransactionalAttribute : Attribute - { - private TransactionalTypes _type; - - /// - /// Marks a method to run within a COM+ - /// transactional context. - /// - public TransactionalAttribute() - { - _type = TransactionalTypes.EnterpriseServices; - } - - /// - /// Marks a method to run within the specified - /// type of transactional context. - /// - /// - /// Specifies the transactional context within which the - /// method should run. - public TransactionalAttribute(TransactionalTypes transactionType) - { - _type = transactionType; - } - - /// - /// Gets the type of transaction requested by the - /// business object method. - /// - public TransactionalTypes TransactionType - { - get { return _type; } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalTypes.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalTypes.cs deleted file mode 100644 index d523b84f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalTypes.cs +++ /dev/null @@ -1,34 +0,0 @@ -namespace Csla -{ - - /// - /// Provides a list of possible transactional - /// technologies to be used by the server-side - /// DataPortal. - /// - public enum TransactionalTypes - { - /// - /// Causes the server-side DataPortal to - /// use Enterprise Services (COM+) transactions. - /// - EnterpriseServices, - /// - /// Causes the server-side DataPortal to - /// use System.Transactions TransactionScope - /// style transactions. - /// - TransactionScope, - /// - /// Causes the server-side DataPortal to - /// use no explicit transactional technology. - /// - /// - /// This option allows the business developer to - /// implement their own transactions. Common options - /// include ADO.NET transactions and System.Transactions - /// TransactionScope. - /// - Manual - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DefaultFilter.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DefaultFilter.cs deleted file mode 100644 index 1b85e5a1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DefaultFilter.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla -{ - internal static class DefaultFilter - { - public static bool Filter(object item, object filter) - { - bool result = false; - if (item != null && filter != null) - result = item.ToString().Contains(filter.ToString()); - return result; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/AuthorizationRules.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/AuthorizationRules.cd deleted file mode 100644 index 89f774ba..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/AuthorizationRules.cd +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - Security\AuthorizationRules.cs - AoiCAgAAAAAhAAAQAAAIAAAAAAAAAAAAAAABACIAgAA= - - - - - - Security\RolesForProperty.cs - AAgAAAAAABAAAAAABAQQBAAAAAAAAQBAAAAAECIAgAA= - - - - - - Security\AccessType.cs - AAAAAAAAABAAAAAABAAQBAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/BindableBaseClasses.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/BindableBaseClasses.cd deleted file mode 100644 index 0c431f5b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/BindableBaseClasses.cd +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - BusinessListBase.cs - AgAAAIlACAAAHAJIkAgAGAgEQACAAAEEoQIBUAAgCFA= - - - - - - - - - - - - Core\BusinessBase.cs - FAgBAA8ACAADnCTIEAlISEiUBJHgAAEAIFKBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAIAAAAAAgAAAQAAAIBEAAAAAAQAAAAAgBAEAAAAAA= - - - - - - - Core\BindableBase.cs - AAAABAAAAAAAAAACIAAAIAAAgAAAAAAAAAAAAAAAAAA= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/Csla.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/Csla.cd deleted file mode 100644 index aceb36f2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/Csla.cd +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - Core\BusinessBase.cs - FAgBAA8ACAADnCTIEAlISEiUBJHgAAEAIFKBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAIAAAAAAAAAAQAAAIBkAAAAAAAEAAAAAhAEAAAAAA= - - - - - - - Core\BindableBase.cs - AAAABAAAAAAAAAACIAAAIAAAgAAAAAAAAAAAAAAAAAA= - - - - - - - BusinessListBase.cs - AgAAAIlACAAAHAJIEAgAGAgAAACIAAlEoQIBUAAgCFA= - - - - - - - - - - - - Core\ReadOnlyBindingList.cs - AAAAAABAAAAABAAQAAAAAAAAQCAAAAAEIAAAAAAAAAA= - - - - - - - NameValueListBase.cs - BAAAAAgAAAAEBAQIEAAAAAAAAAAAAAEAAAIgAAAACFA= - - - - - - - CommandBase.cs - AAAAAAgAAAAABABAEAAAAAAAAAAAAAEAAAAAAAAACEI= - - - - - - - ReadOnlyListBase.cs - BAAAAAgAAAAABAAIEAAAAAAAAAAAAAEAAAIAAAAACFA= - - - - - - - SortedBindingList.cs - AGoAAEAAgUQACBAUGAAINAQAKAE4ROAIeAEQADBQIpQ= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaBaseClasses.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaBaseClasses.cd deleted file mode 100644 index e8aaefde..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaBaseClasses.cd +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - BusinessListBase.cs - AgAAAIlACAAAHAJIkAgAGAgEQACAAAEEoQIBUAAgCFA= - - - - - - - CommandBase.cs - AAAAAAgAAAAABABAEAAAAAAAAAAAAAEAAAAAAAAACEI= - - - - - - - NameValueListBase.cs - BAAAAAgAAAAEBAQIEAAAAAAAAAAAAAEAAAIgAAAACFA= - - - - - - - ReadOnlyBase.cs - AAAAAAgAAAAABABMkAAIAAAEAABAAIEAAAIAAAAAiFA= - - - - - - - ReadOnlyListBase.cs - BAAAAAgAAAAABAAIEAAAAAAAAAAAAAEAAAIAAAAACFA= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaDataSource.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaDataSource.cd deleted file mode 100644 index c2e047b8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaDataSource.cd +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Web\Design\CslaDataSourceDesigner.cs - EAAAAACAAAAAAQABAAAAAAAAAAAAAAACCCABAAIAAAA= - - - - - - Web\Design\CslaDesignerDataSourceView.cs - AEACgAQAAAAAAAAAABABAAAEAAAAAAAAAAABAQAAAAA= - - - - - - Web\Design\ObjectFieldInfo.cs - AAAAAAAAAAIEAAAQgIIAAAREAAAwAEAABEAAAAAAkAA= - - - - - - - Web\Design\ObjectSchema.cs - AAAAAAAAAABAAAABAAAAAAAAAAAAAAAAAAAAACAAAAA= - - - - - - - Web\Design\ObjectViewSchema.cs - AIAAAAAAgABAAAABAAAAAAQAAAAAQAAAAAAAAAAAAAA= - - - - - - - Web\CslaDataSource.cs - AAAAgAAAAAAkAgABIAIAEABAAAAAABEACAABAAAAAIA= - - - - - - Web\CslaDataSource.cs - AAAACAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA= - - - - - - Web\CslaDataSource.cs - AAAAAAAAAAAAAAgAAAAAAAAAAAQAAAAAAAAgAAAAACA= - - - - - - Web\CslaDataSource.cs - AAQQAAAAAAAAAAgACEAAAAAAAAQAAAAAAAAgAAAAACA= - - - - - - Web\CslaDataSource.cs - AAQQAAAAAAAAAAgACEAAAAAAAAQAAAAAAAAAAAAAAAA= - - - - - - Web\CslaDataSourceView.cs - AEACgAQAAABAAgABABAAAAAACAAAABAQAAgBAQAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/DataPortal.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/DataPortal.cd deleted file mode 100644 index 94c017fa..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/DataPortal.cd +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - DataPortal\Client\DataPortal.cs - AAQAAAAAABAAAAQAAAHAAgAAIAEAAEAIAAAIAAADAAA= - - - - - - DataPortal\Client\EnterpriseServicesProxy.cs - AAQAAAAAAAAAAAAAAAEIAAAAAAEAAEQAAAAAAAAAAAA= - - - - - - - DataPortal\Client\LocalProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Client\RemotingProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAABAIA= - - - - - - - DataPortal\Client\WebServicesProxy.cs - AAQAAAAAAAAAABAAAAEIAAAAACFAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\EnterpriseServicesPortal.cs - AAQAAAAAAAAAAAAIAAEAAAAAAAEAAEABAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\RemotingPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\WebServicePortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAACFAAEAAAAAAAAAAAAA= - - - - - - DataPortal\Server\TransactionalDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\SimpleDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAIAAAAA= - - - - - - - DataPortal\Server\ServicedDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\DataPortal.cs - AEQAAAAAAAIAAAAAQAEAAAAAAAEAAEAAAAQAAAAAAAA= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/FullCsla.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/FullCsla.cd deleted file mode 100644 index 818ea5cf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/FullCsla.cd +++ /dev/null @@ -1,452 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - Core\BusinessBase.cs - FAgBAA8ACAATnCTIEAlISEiUBJHgAAEAIFCBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAIAAAAAAgAAAQAAAIBEAAAAAAQAAAAAgBAEAAAAAA= - - - - - - - Core\BindableBase.cs - AAAABAAAAAAAAAACIAAAIAAAgIAAAAAAAAAAAAAAAAA= - - - - - - - BusinessListBase.cs - AgAAAIlACAAQHAJIkAgAGAgEQACAAAEEoQABUAAgCFA= - - - - - - - - - - - - CommandBase.cs - AAAAAAgAAAAABABAEAAAAAAAAAAAAAEAAAAAAAAACEI= - - - - - - - NameValueListBase.cs - BAAAAAgAAAAUBAQIEAAAAAAAAAAAAAEAAAAgAAAACFA= - - - - - - - Core\ReadOnlyBindingList.cs - AAAAAABAAAAABAAQAAAAAAAAQCAAAAAEIAAAAAAAAAA= - - - - - - - NotUndoableAttribute.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - ReadOnlyBase.cs - AAAAAAgAAAAQBABMkAAIAAAEAABAAIEAAAAAAAAAiFA= - - - - - - - ReadOnlyListBase.cs - BAAAAAgAAAAQBAAIEAAAAAAAAAAAAAEAAAAAAAAACFA= - - - - - - - SortedBindingList.cs - AGoAAEAAgUQACBAUGAAINAQAKAE4RKAIeAEQADBQIpQ= - - - - - - - DataPortal\Client\DataPortal.cs - AAQAAAAAABAAAAQAAAHAAgAAIAEAAEAIAAAIAAADAAA= - - - - - - DataPortal\Client\EnterpriseServicesProxy.cs - AAQAAAAAAAAAAAAAAAEIAAAAAAEAAEQAAAAAAAAAAAA= - - - - - - - DataPortal\Client\LocalProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAABAAA= - - - - - - - DataPortal\Client\RemotingProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAABAIA= - - - - - - - DataPortal\Client\WebServicesProxy.cs - AAQAAAAAAAAAABAAAAEIAAAAACFAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\EnterpriseServicesPortal.cs - AAQAAAAAAAAAAAAIAAEAAAAAAAEAAEABAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\RemotingPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\WebServicePortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAACFAAEAAAAAAAAAAAAA= - - - - - - DataPortal\Server\TransactionalDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\SimpleDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAIAAAAA= - - - - - - - DataPortal\Server\ServicedDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\DataPortalContext.cs - AAASQAAAAAAAABAAACAAAABACAAAAAAEACAAAAIAACE= - - - - - - DataPortal\ApplicationContext.cs - IAABAACAAAIAAABAiCIAAgBAAAAAAAAIAAAAAAJACAA= - - - - - - DataPortal\Server\DataPortalResult.cs - AAAAQAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAEAAAAI= - - - - - - DataPortal\Server\DataPortalException.cs - AAAABAAAAAAAAgACAAAAAAQgAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\CriteriaBase.cs - AAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAIAAAAAAAAA= - - - - - - DataPortal\RunLocalAttribute.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\Server\DataPortal.cs - AEQAAAAAAAIAAAAAQAEAAAAAAAEAAEAAAAQAAAAAAAA= - - - - - - - DataPortal\TransactionalAttribute.cs - AAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAA= - - - - - - Core\ObjectCloner.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA= - - - - - - Data\SafeDataReader.cs - BCCQIAAgMCgAAAABCAIIBCYgAAJEAEQwIBQAAACAJEA= - - - - - - - Data\ObjectAdapter.cs - AAABAAAAgGAAAAAAAAAAAAAAQAAACAAAAIAAAAAAAAA= - - - - - - Security\AuthorizationRules.cs - AoiCAgAAAAAhAAAQAAAIAAAAAAAAAAAAAAABACIAgAA= - - - - - - Security\RolesForProperty.cs - AAgAAAAAABAAAAAABAQQBAAAAAAAAQBAAAAAECIAgAA= - - - - - - Security\BusinessPrincipalBase.cs - AAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAABA= - - - - - - - Validation\CommonRules.cs - AAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAgAAgEAAAAQA= - - - - - - Validation\ValidationRules.cs - AAAAAAAAAAAAACAAAAggAAIIQgAEAAAAAAgAAAAAgAI= - - - - - - Validation\BrokenRulesCollection.cs - AAIAAAAAAAAAAAAEIAAABAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\BrokenRule.cs - EAAABAAAAAAgAAAEAAAAAAAABAAAAAAAAAAAAQAAAAA= - - - - - - Validation\ValidationException.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Data\DataMapper.cs - AAAAAAAAABAAAgAAAAAAQAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\MethodCaller.cs - AAACAAAAAACAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA= - - - - - - DataPortal\Server\CallMethodException.cs - AAAABAAAAAAAAgAAAAAAAAAgAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\DataPortalEventArgs.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAEAAAAAAAAA= - - - - - - DataPortal\DataPortalException.cs - AAAADAAAAAAAAgAAAAAAAABgAAAAAAAAAAAAAAAAAEA= - - - - - - Validation\RuleArgs.cs - EAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAAAAAABAAAA= - - - - - - SmartDate.cs - AAJAAAAAACAACAQExAGCEgAAAwAAAIAhAAAACAAAB2A= - - - - - - - Core\IBusinessObject.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Core\IUndoableObject.cs - AgAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAA= - - - - - - Core\IEditableCollection.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAA= - - - - - - Core\IReadOnlyObject.cs - AAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAA= - - - - - - Core\ICommandObject.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Core\IReadOnlyCollection.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\Server\IDataPortalServer.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - DataPortal\Client\IDataPortalProxy.cs - AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\TransactionalTypes.cs - AAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAA= - - - - - - Security\AccessType.cs - AAAAAAAAABAAAAAABAAQBAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\RuleHandler.cs - AAAAAAAAAAAAAAIAAAAAAAAQAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/UndoableBase.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/UndoableBase.cd deleted file mode 100644 index b7a56c0f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/UndoableBase.cd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - Core\BusinessBase.cs - FAgBAA8ACAADnCDIEAlISEiUBJHgAAEAIFKBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAAAAAAAAAAAAAAAAIAkAAAAAAAEAAAAAhAEAAAAAA= - - - - - - - NotUndoableAttribute.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - BusinessListBase.cs - AgAAAIhACAAADAJIEAgAGCgAQACIAAlEoQIBUAAgCFA= - - - - - - - Core\IEditableObject.cs - AgAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAA= - - - - - - Core\IEditableCollection.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAA= - - - - - - - - - - Core\IBusinessObject.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/ValidationRules.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/ValidationRules.cd deleted file mode 100644 index b3f1d3e3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/ValidationRules.cd +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - Validation\ValidationRules.cs - AAAAAAAAAAAAACAAAAggAAIIQgAEAAAAAAgAAAAAgAI= - - - - - - Validation\ValidationException.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\RuleArgs.cs - EAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAAAAAABAAAA= - - - - - - Validation\CommonRules.cs - AAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAgAAgEAAAAQA= - - - - - - Validation\BrokenRulesCollection.cs - AAIAAAAAAAAAAAAEIAAABAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\BrokenRule.cs - EAAABAAAAAAgAAAEAAAAAAAABAAAAAAAAAAAAQAAAAA= - - - - - - Validation\RuleMethod.cs - AAAAhAAAAAAIAAAEAAEAAAAARAAAAAAAAAAAAAAAAQA= - - - - - - Validation\RuleHandler.cs - AAAAAAAAAAAAAAIAAAAAAAAQAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EditableRootListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EditableRootListBase.cs deleted file mode 100644 index 809934a4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EditableRootListBase.cs +++ /dev/null @@ -1,281 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.Serialization; -using System.ComponentModel; - -namespace Csla -{ - /// - /// This is the base class from which collections - /// of editable root business objects should be - /// derived. - /// - /// - /// Type of editable root object to contain within - /// the collection. - /// - /// - /// - /// Your subclass should implement a factory method - /// and should override or overload - /// DataPortal_Fetch() to implement data retrieval. - /// - /// Saving (inserts or updates) of items in the collection - /// should be handled through the SaveItem() method on - /// the collection. - /// - /// Removing an item from the collection - /// through Remove() or RemoveAt() causes immediate deletion - /// of the object, by calling the object's Delete() and - /// Save() methods. - /// - /// - [Serializable()] - public abstract class EditableRootListBase : Core.ExtendedBindingList, Core.IParent - where T : Core.IEditableBusinessObject, Core.ISavable - { - - #region SaveItem Methods - - private bool _activelySaving; - - /// - /// Saves the specified item in the list. - /// - /// - /// Reference to the item to be saved. - /// - /// - /// This method properly saves the child item, - /// by making sure the item in the collection - /// is properly replaced by the result of the - /// Save() method call. - /// - public void SaveItem(T item) - { - - SaveItem(IndexOf(item)); - - } - - /// - /// Saves the specified item in the list. - /// - /// - /// Index of the item to be saved. - /// - /// - /// This method properly saves the child item, - /// by making sure the item in the collection - /// is properly replaced by the result of the - /// Save() method call. - /// - public virtual void SaveItem(int index) - { - bool raisingEvents = this.RaiseListChangedEvents; - this.RaiseListChangedEvents = false; - - _activelySaving = true; - - T item = this[index]; - int editLevel = item.EditLevel; - // commit all changes - for (int tmp = 1; tmp <= editLevel; tmp++) - item.AcceptChanges(); - try - { - // do the save - this[index] = (T)item.Save(); - } - finally - { - // restore edit level to previous level - for (int tmp = 1; tmp <= editLevel; tmp++) - item.CopyState(); - _activelySaving = false; - this.RaiseListChangedEvents = raisingEvents; - } - this.OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, index)); - } - - #endregion - - #region Insert, Remove, Clear - - /// - /// Gives the new object a parent reference to this - /// list. - /// - /// Index at which to insert the item. - /// Item to insert. - protected override void InsertItem(int index, T item) - { - item.SetParent(this); - base.InsertItem(index, item); - } - - /// - /// Removes an item from the list. - /// - /// Index of the item - /// to be removed. - protected override void RemoveItem(int index) - { - // delete item from database - T item = this[index]; - - // only delete/save the item if it is not new - if (!item.IsNew) - { - item.Delete(); - SaveItem(index); - } - - // disconnect event handler if necessary - System.ComponentModel.INotifyPropertyChanged c = item as System.ComponentModel.INotifyPropertyChanged; - if (c != null) - { - c.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(Child_PropertyChanged); - } - - base.RemoveItem(index); - } - - #endregion - - #region IParent Members - - void Csla.Core.IParent.ApplyEditChild(Core.IEditableBusinessObject child) - { - if (!_activelySaving && child.EditLevel == 0) - SaveItem((T)child); - } - - void Csla.Core.IParent.RemoveChild(Core.IEditableBusinessObject child) - { - // do nothing, removal of a child is handled by - // the RemoveItem override - } - - #endregion - - #region Cascade Child events - - private void Child_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - for (int index = 0; index < this.Count; index++) - { - if (ReferenceEquals(this[index], sender)) - { - OnListChanged(new System.ComponentModel.ListChangedEventArgs(System.ComponentModel.ListChangedType.ItemChanged, index)); - break; - } - } - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - - OnDeserialized(context); - foreach (Core.IEditableBusinessObject child in this) - { - child.SetParent(this); - System.ComponentModel.INotifyPropertyChanged c = child as System.ComponentModel.INotifyPropertyChanged; - if (c != null) - { - c.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(Child_PropertyChanged); - } - } - - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - /// Serialization context object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - - // do nothing - this is here so a subclass - // could override if needed - - } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Properties.Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Properties.Resources.FetchNotSupportedException); - } - - private void DataPortal_Update() - { - throw new NotSupportedException(Properties.Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Properties.Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member"), EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member"), EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member"), EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EnterpriseServicesSettings.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EnterpriseServicesSettings.cs deleted file mode 100644 index 1f9a5100..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EnterpriseServicesSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System.EnterpriseServices; - -// EnterpriseServices settings -[assembly: ApplicationActivation(ActivationOption.Library)] -[assembly: ApplicationName("CSLA .NET DataPortal")] -[assembly: Description("CSLA .NET Serviced DataPortal")] -[assembly: ApplicationAccessControl(false)] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilterProvider.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilterProvider.cs deleted file mode 100644 index 51166a65..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilterProvider.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Defines the method signature for a filter - /// provider method used by FilteredBindingList. - /// - /// The object to be filtered. - /// The filter criteria. - /// if the item matches the filter. - public delegate bool FilterProvider(object item, object filter); -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilteredBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilteredBindingList.cs deleted file mode 100644 index 61123545..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilteredBindingList.cs +++ /dev/null @@ -1,932 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Reflection; -using System.Collections; - -namespace Csla -{ - /// - /// Provides a filtered view into an existing IList(Of T). - /// - /// The type of the objects contained - /// in the original list. - public class FilteredBindingList : - IList, IBindingList, IEnumerable, - ICancelAddNew - { - - #region ListItem class - - private class ListItem - { - private object _key; - private int _baseIndex; - - public object Key - { - get { return _key; } - } - - public int BaseIndex - { - get { return _baseIndex; } - set { _baseIndex = value; } - } - - public ListItem(object key, int baseIndex) - { - _key = key; - _baseIndex = baseIndex; - } - - public override string ToString() - { - return Key.ToString(); - } - - } - - #endregion - - #region Filtered enumerator - - private class FilteredEnumerator : IEnumerator - { - private IList _list; - private List _filterIndex; - private int _index; - - public FilteredEnumerator( - IList list, - List filterIndex) - { - _list = list; - _filterIndex = filterIndex; - Reset(); - } - - public T Current - { - get { return _list[_filterIndex[_index].BaseIndex]; } - } - - Object System.Collections.IEnumerator.Current - { - get { return _list[_filterIndex[_index].BaseIndex]; } - } - - public bool MoveNext() - { - if (_index < _filterIndex.Count - 1) - { - _index++; - return true; - } - else - return false; - } - - public void Reset() - { - _index = -1; - } - - #region IDisposable Support - - private bool _disposedValue = false; // To detect redundant calls. - - // IDisposable - protected virtual void Dispose(bool disposing) - { - if (!_disposedValue) - { - if (disposing) - { - // TODO: free unmanaged resources when explicitly called - } - // TODO: free shared unmanaged resources - } - _disposedValue = true; - } - - // this code added to correctly implement the disposable pattern. - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - GC.SuppressFinalize(this); - } - - ~FilteredEnumerator() - { - Dispose(false); - } - - #endregion - - } - - #endregion - - #region Filter/Unfilter - - private void DoFilter() - { - int index = 0; - _filterIndex.Clear(); - - if (_provider == null) - _provider = DefaultFilter.Filter; - - if (_filterBy == null) - { - foreach (T obj in _list) - { - if (_provider.Invoke(obj, _filter)) - _filterIndex.Add(new ListItem(obj, index)); - index++; - } - } - else - { - foreach (T obj in _list) - { - object tmp = _filterBy.GetValue(obj); - if (_provider.Invoke(tmp, _filter)) - _filterIndex.Add(new ListItem(tmp, index)); - index++; - } - } - - _filtered = true; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - private void UnDoFilter() - { - _filterIndex.Clear(); - _filterBy = null; - _filter = null; - _filtered = false; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - #endregion - - #region IEnumerable - - /// - /// Gets an enumerator object. - /// - /// - public IEnumerator GetEnumerator() - { - if (_filtered) - return new FilteredEnumerator(_list, _filterIndex); - else - return _list.GetEnumerator(); - } - - #endregion - - #region IBindingList, IList - - /// - /// Implemented by IList source object. - /// - /// Property on which - /// to build the index. - public void AddIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.AddIndex(property); - } - - /// - /// Implemented by IList source object. - /// - public object AddNew() - { - T result; - if (_supportsBinding) - result = (T)_bindingList.AddNew(); - else - result = default(T); - - //_newItem = (T)result; - return result; - } - - /// - /// Implemented by IList source object. - /// - public bool AllowEdit - { - get - { - if (_supportsBinding) - return _bindingList.AllowEdit; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowNew - { - get - { - if (_supportsBinding) - return _bindingList.AllowNew; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowRemove - { - get - { - if (_supportsBinding) - return _bindingList.AllowRemove; - else - return false; - } - } - - /// - /// Sorts the list if the original list - /// supports sorting. - /// - /// Property on which to sort. - /// Direction of the sort. - public void ApplySort( - PropertyDescriptor property, ListSortDirection direction) - { - if (SupportsSorting) - _bindingList.ApplySort(property, direction); - else - throw new NotSupportedException("Sorting not supported."); - } - - /// - /// Finds an item in the view - /// - /// Name of the property to search - /// Value to find - public int Find(string propertyName, object key) - { - PropertyDescriptor findProperty = null; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - findProperty = prop; - break; - } - } - } - - return Find(findProperty, key); - - } - - /// - /// Implemented by IList source object. - /// - /// Key value for which to search. - /// Property to search for the key - /// value. - public int Find(PropertyDescriptor property, object key) - { - if (_supportsBinding) - return FilteredIndex(_bindingList.Find(property, key)); - else - return -1; - } - - /// - /// Returns True if the view is currently sorted. - /// - public bool IsSorted - { - get - { - if (SupportsSorting) - return _bindingList.IsSorted; - else - return false; - } - } - - /// - /// Raised to indicate that the list's data has changed. - /// - /// - /// This event is raised if the underling IList object's data changes - /// (assuming the underling IList also implements the IBindingList - /// interface). It is also raised if the filter - /// is changed to indicate that the view's data has changed. - /// - public event ListChangedEventHandler ListChanged; - - /// - /// Raises the ListChanged event. - /// - /// Parameter for the event. - protected void OnListChanged(ListChangedEventArgs e) - { - if (ListChanged != null) - ListChanged(this, e); - } - - /// - /// Implemented by IList source object. - /// - /// Property for which the - /// index should be removed. - public void RemoveIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.RemoveIndex(property); - } - - /// - /// Removes any sort currently applied to the view. - /// - public void RemoveSort() - { - if (SupportsSorting) - _bindingList.RemoveSort(); - else - throw new NotSupportedException("Sorting not supported"); - } - - /// - /// Returns the direction of the current sort. - /// - public ListSortDirection SortDirection - { - get - { - if (SupportsSorting) - return _bindingList.SortDirection; - else - return ListSortDirection.Ascending; - } - } - - /// - /// Returns the PropertyDescriptor of the current sort. - /// - public PropertyDescriptor SortProperty - { - get - { - if (SupportsSorting) - return _bindingList.SortProperty; - else - return null; - } - } - - /// - /// Returns True since this object does raise the - /// ListChanged event. - /// - public bool SupportsChangeNotification - { - get { return true; } - } - - /// - /// Implemented by IList source object. - /// - public bool SupportsSearching - { - get - { - if (_supportsBinding) - return _bindingList.SupportsSearching; - else - return false; - } - } - - /// - /// Returns True. Sorting is supported. - /// - public bool SupportsSorting - { - get - { - if (_supportsBinding) - return _bindingList.SupportsSorting; - else - return false; - } - } - - /// - /// Copies the contents of the list to - /// an array. - /// - /// Array to receive the data. - /// Starting array index. - public void CopyTo(T[] array, int arrayIndex) - { - _list.CopyTo(array, arrayIndex); - } - - void System.Collections.ICollection.CopyTo(System.Array array, int index) - { - CopyTo((T[])array, index); - } - - /// - /// Gets the number of items in the list. - /// - public int Count - { - get - { - if (_filtered) - return _filterIndex.Count; - else - return _list.Count; - } - } - - bool System.Collections.ICollection.IsSynchronized - { - get { return false; } - } - - object System.Collections.ICollection.SyncRoot - { - get { return _list; } - } - - IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - /// - /// Adds an item to the list. - /// - /// Item to be added. - public void Add(T item) - { - _list.Add(item); - } - - int System.Collections.IList.Add(object value) - { - Add((T)value); - int index = FilteredIndex(_list.Count - 1); - if (index > -1) - return index; - else - return 0; - } - - /// - /// Clears the list. - /// - public void Clear() - { - _list.Clear(); - } - - /// - /// Determines whether the specified - /// item is contained in the list. - /// - /// Item to find. - /// if the item is - /// contained in the list. - public bool Contains(T item) - { - return _list.Contains(item); - } - - bool System.Collections.IList.Contains(object value) - { - return Contains((T)value); - } - - /// - /// Gets the 0-based index of an - /// item in the list. - /// - /// The item to find. - /// 0-based index of the item - /// in the list. - public int IndexOf(T item) - { - return FilteredIndex(_list.IndexOf(item)); - } - - int System.Collections.IList.IndexOf(object value) - { - return IndexOf((T)value); - } - - /// - /// Inserts an item into the list. - /// - /// Index at - /// which to insert the item. - /// Item to insert. - public void Insert(int index, T item) - { - _list.Insert(index, item); - } - - void System.Collections.IList.Insert(int index, object value) - { - Insert(index, (T)value); - } - - bool System.Collections.IList.IsFixedSize - { - get { return false; } - } - - /// - /// Gets a value indicating whether the list - /// is read-only. - /// - public bool IsReadOnly - { - get { return _list.IsReadOnly; } - } - - object System.Collections.IList.this[int index] - { - get - { - return this[index]; - } - set - { - this[index] = (T)value; - } - } - - /// - /// Removes an item from the list. - /// - /// Item to remove. - /// if the - /// remove succeeds. - public bool Remove(T item) - { - return _list.Remove(item); - } - - void System.Collections.IList.Remove(object value) - { - Remove((T)value); - } - - /// - /// Removes an item from the list. - /// - /// Index of item - /// to be removed. - public void RemoveAt(int index) - { - if (_filtered) - { - _list.RemoveAt(OriginalIndex(index)); - } - else - _list.RemoveAt(index); - } - - /// - /// Gets or sets the item at - /// the specified index. - /// - /// Index of the item. - /// Item at the specified index. - public T this[int index] - { - get - { - if (_filtered) - { - int src = OriginalIndex(index); - return _list[src]; - } - else - return _list[index]; - } - set - { - if (_filtered) - _list[OriginalIndex(index)] = value; - else - _list[index] = value; - } - } - - #endregion - - private IList _list; - private bool _supportsBinding; - private IBindingList _bindingList; - private bool _filtered; - private PropertyDescriptor _filterBy; - private object _filter; - FilterProvider _provider = null; - private List _filterIndex = - new List(); - - /// - /// Creates a new view based on the provided IList object. - /// - /// The IList (collection) containing the data. - public FilteredBindingList(IList list) - { - _list = list; - - if (_list is IBindingList) - { - _supportsBinding = true; - _bindingList = (IBindingList)_list; - _bindingList.ListChanged += - new ListChangedEventHandler(SourceChanged); - } - } - - /// - /// Creates a new view based on the provided IList object. - /// - /// The IList (collection) containing the data. - /// - /// Delegate pointer to a method that implements the filter behavior. - /// - public FilteredBindingList(IList list, FilterProvider filterProvider) : this(list) - { - _provider = filterProvider; - } - - /// - /// Gets or sets the filter provider method. - /// - /// - /// Delegate pointer to a method that implements the filter behavior. - /// - /// - /// Delegate pointer to a method that implements the filter behavior. - /// - /// - /// If this value is set to Nothing (null in C#) then the default - /// filter provider, will be used. - /// - public FilterProvider FilterProvider - { - get - { - return _provider; - } - set - { - _provider = value; - } - } - - /// - /// The property on which the items will be filtered. - /// - /// A descriptor for the property on which - /// the items in the collection will be filtered. - /// - /// - public PropertyDescriptor FilterProperty - { - get { return _filterBy; } - } - - /// - /// Returns True if the view is currently filtered. - /// - public bool IsFiltered - { - get { return _filtered; } - } - - /// - /// Applies a filter to the view. - /// - /// The text name of the property on which to filter. - /// The filter criteria. - public void ApplyFilter(string propertyName, object filter) - { - _filterBy = null; - _filter = filter; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in - TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - _filterBy = prop; - break; - } - } - } - - ApplyFilter(_filterBy, filter); - - } - - /// - /// Applies a filter to the view. - /// - /// A PropertyDescriptor for the property on which to filter. - /// The filter criteria. - public void ApplyFilter( - PropertyDescriptor property, object filter) - { - _filterBy = property; - _filter = filter; - DoFilter(); - } - - /// - /// Removes the filter from the list, - /// so the view reflects the state of - /// the original list. - /// - public void RemoveFilter() - { - UnDoFilter(); - } - - private void SourceChanged( - object sender, ListChangedEventArgs e) - { - if (_filtered) - { - int listIndex; - int filteredIndex = -1; - T newItem; - object newKey; - switch (e.ListChangedType) - { - case ListChangedType.ItemAdded: - listIndex = e.NewIndex; - // add new value to index - newItem = _list[listIndex]; - if (_filterBy != null) - newKey = _filterBy.GetValue(newItem); - else - newKey = newItem; - _filterIndex.Add( - new ListItem(newKey, listIndex)); - filteredIndex = _filterIndex.Count - 1; - // raise event - OnListChanged( - new ListChangedEventArgs( - e.ListChangedType, filteredIndex)); - break; - - case ListChangedType.ItemChanged: - listIndex = e.NewIndex; - // update index value - filteredIndex = FilteredIndex(listIndex); - if (filteredIndex != -1) - { - newItem = _list[listIndex]; - if (_filterBy != null) - newKey = _filterBy.GetValue(newItem); - else - newKey = newItem; - _filterIndex[filteredIndex] = - new ListItem(newKey, listIndex); - } - // raise event if appropriate - if (filteredIndex > -1) - OnListChanged( - new ListChangedEventArgs( - e.ListChangedType, filteredIndex)); - break; - - case ListChangedType.ItemDeleted: - listIndex = e.NewIndex; - // delete corresponding item from index - // (if any) - filteredIndex = FilteredIndex(listIndex); - if (filteredIndex != -1) - _filterIndex.RemoveAt(filteredIndex); - // adjust index xref values - foreach (ListItem item in _filterIndex) - if (item.BaseIndex > e.NewIndex) - item.BaseIndex--; - // raise event if appropriate - if (filteredIndex > -1) - OnListChanged( - new ListChangedEventArgs( - e.ListChangedType, filteredIndex)); - break; - - case ListChangedType.PropertyDescriptorAdded: - case ListChangedType.PropertyDescriptorChanged: - case ListChangedType.PropertyDescriptorDeleted: - OnListChanged(e); - break; - - default: - DoFilter(); - OnListChanged( - new ListChangedEventArgs( - ListChangedType.Reset, 0)); - break; - } - } - else - OnListChanged(e); - } - - private int OriginalIndex(int filteredIndex) - { - if (_filtered) - return _filterIndex[filteredIndex].BaseIndex; - else - return filteredIndex; - } - - private int FilteredIndex(int originalIndex) - { - int result = -1; - if (_filtered) - { - for (int index = 0; index < _filterIndex.Count; index++) - { - if (_filterIndex[index].BaseIndex == originalIndex) - { - result = index; - break; - } - } - } - else - result = originalIndex; - return result; - } - - #region ICancelAddNew Members - - //private T _newItem; - - //void ICancelAddNew.CancelNew(int itemIndex) - //{ - // if (_newItem != null) - // Remove(_newItem); - //} - - //void ICancelAddNew.EndNew(int itemIndex) - //{ - // // do nothing - //} - - void ICancelAddNew.CancelNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.CancelNew(itemIndex); - else - _list.RemoveAt(itemIndex); - } - - void ICancelAddNew.EndNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.EndNew(itemIndex); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/GlobalSuppressions.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/GlobalSuppressions.cs deleted file mode 100644 index 25350876..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/GlobalSuppressions.cs +++ /dev/null @@ -1,22 +0,0 @@ -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.Server.DataPortalResult..ctor(System.Object)", MessageId = "0#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.DataPortalException..ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.DataPortalException..ctor(System.String,System.Exception)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.DataPortalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.CallMethodException..ctor(System.String,System.Exception)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.CallMethodException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "member", Target = "Csla.DataPortalClient.RemotingProxy..cctor()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Data.ObjectAdapter.Fill(System.Data.DataSet,System.String,System.Object):System.Void")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Scope = "member", Target = "Csla.Data.ObjectAdapter.Fill(System.Data.DataSet,System.String,System.Object):System.Void")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Csla.Core.ReadOnlyBindingList`1..ctor()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Csla.Core.BusinessBase..ctor()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.SmartDate.DateToString(System.DateTime,System.String,System.Boolean):System.String", MessageId = "1#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.SmartDate.DateToString(System.DateTime,System.String):System.String", MessageId = "1#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.DataPortalException..ctor(System.String,System.Object)", MessageId = "1#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.DataPortalException..ctor(System.String,System.Exception,System.Object)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.DataPortalException..ctor(System.String,System.Exception,System.Object)", MessageId = "2#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.DataPortalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "Csla.DataPortal.Create(System.Type,System.Object):System.Object", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "member", Target = "Csla.DataPortal.Create():T")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "Csla.BusinessBase`1.GetIdValue():System.Object")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Csla.Security")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Csla.Data")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NameValueListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NameValueListBase.cs deleted file mode 100644 index 9102f378..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NameValueListBase.cs +++ /dev/null @@ -1,272 +0,0 @@ -using System; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the base class from which readonly name/value - /// collections should be derived. - /// - /// Type of the key values. - /// Type of the values. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class NameValueListBase : - Core.ReadOnlyBindingList.NameValuePair>, - ICloneable, Core.IBusinessObject - { - - #region Core Implementation - - /// - /// Returns the value corresponding to the - /// specified key. - /// - /// Key value for which to retrieve a value. - public V Value(K key) - { - foreach (NameValuePair item in this) - if (item.Key.Equals(key)) - return item.Value; - return default(V); - } - - /// - /// Returns the key corresponding to the - /// first occurance of the specified value - /// in the list. - /// - /// Value for which to retrieve the key. - public K Key(V value) - { - foreach (NameValuePair item in this) - if (item.Value.Equals(value)) - return item.Key; - return default(K); - } - - /// - /// Gets a value indicating whether the list contains the - /// specified key. - /// - /// Key value for which to search. - public bool ContainsKey(K key) - { - foreach (NameValuePair item in this) - if (item.Key.Equals(key)) - return true; - return false; - } - - /// - /// Gets a value indicating whether the list contains the - /// specified value. - /// - /// Value for which to search. - public bool ContainsValue(V value) - { - foreach (NameValuePair item in this) - if (item.Value.Equals(value)) - return true; - return false; - } - - #endregion - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected NameValueListBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region NameValuePair class - - /// - /// Contains a key and value pair. - /// - [Serializable()] - public class NameValuePair - { - private K _key; - private V _value; - - /// - /// The Key or Name value. - /// - public K Key - { - get { return _key; } - } - - /// - /// The Value corresponding to the key/name. - /// - public V Value - { - get { return _value; } - } - - /// - /// Creates an instance of the object. - /// - /// The key. - /// The value. - public NameValuePair(K key, V value) - { - _key = key; - _value = value; - } - } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - public NameValueListBase Clone() - { - return (NameValueListBase)GetClone(); - } - - #endregion - - #region Criteria - - /// - /// Default Criteria for retrieving simple - /// name/value lists. - /// - /// - /// This criteria merely specifies the type of - /// collection to be retrieved. That type information - /// is used by the DataPortal to create the correct - /// type of collection object during data retrieval. - /// - [Serializable()] - protected class Criteria : CriteriaBase - { - /// - /// Creates an instance of the object. - /// - /// - /// The of the business - /// collection class. - /// - public Criteria(Type collectionType) - : base(collectionType) - { } - } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NotUndoableAttribute.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NotUndoableAttribute.cs deleted file mode 100644 index e3904194..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NotUndoableAttribute.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Marks a field to indicate that the value should not - /// be copied as part of the undo process. - /// - /// - /// Marking a variable with this attribute will cause the n-level - /// undo process to ignore that variable's value. The value will - /// not be included in a snapshot when BeginEdit is called, nor - /// will it be restored when CancelEdit is called. - /// - [AttributeUsage(AttributeTargets.Field)] - public sealed class NotUndoableAttribute : Attribute - { - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/AssemblyInfo.cs deleted file mode 100644 index d40cfea1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CSLA .NET")] -[assembly: AssemblyDescription("CSLA .NET Framework")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Rockford Lhotka")] -[assembly: AssemblyProduct("CSLA .NET")] -[assembly: AssemblyCopyright("Copyright © 2007 Rockford Lhotka")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Mark the assembly as CLS compliant -[assembly: System.CLSCompliant(true)] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("43110d9d-9176-498d-95e0-2be52fcd11d2")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("2.1.4.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources-il.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources-il.resx deleted file mode 100644 index 37381b90..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources-il.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - היא פעולה שגוייה Clear - - - הוספה היא פעולה אסורה - - - הסרה הוא פעולה שגוייה - - - אסור לשנות אלמנט - - - ערך הורה יכול לקבל ערך רק עבור אפיקים שהם ילדים - - - לא ניתן למחוק אוביקט ילד ישירות - יש להשתמש באוסף האב - - - פעולה שגויה על אוביקט שורש - השתמש ב- Delete במקום - - - לא ניתן לשמור ישירות אוביקט ישל - - - אוביקט עדיין במצב עריכה ולכן לא ניתן לשמור - - - אוביקט לא תקין ולכן לא ניתן לשמור - - - פעולה שגויה - לא ניתן ליצור - - - פעולה שגויה - לא ניתן למשוך - - - פעולה שגויה - לא ניתן לעדכן - - - פעולה שגויה - לא ניתן למחוק - - - BeginEdit- פעולה שגויה על אוביקט ילד - - - CancelEdit - פעולה שגויה על אוביקט ילד - - - ApplayEdit - פעולה שגויה על אוביקט ילד - - - לא קיים ערך: - - - ערך שגוי - - - לא ניתן להסב מחרוזת לתאריך - - - ערך לא במיבנה של SmartDate - - - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal must be of type BusinessPrincipal, not - - - t - - - היום - - - y - - - אתמול - - - tom - - - מחר - - - כישלון - - - כישלון בצד השרת - - - כישלון בקריאה לפונקציה - - - לא מיוסם - - - פעולה שגויה - לר ניתן להריץ - - - פעולה אסורה - לא ניתן להוסף - - - אסורה החזרה Nothing בפעולת GetIdValue - - - לא ניתן למשוך נתונים מתְּכוּנָה - - - לא ניתן לבצע השמה - - - פרמטר חייב להיות שונה מ-"כלום" - - - סוג פרמטר חייב להיות פרמיטיבי - - - העתקת תְּכוּנָה נכשלה - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.Designer.cs deleted file mode 100644 index d016292c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.Designer.cs +++ /dev/null @@ -1,495 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Csla.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Csla.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to Principal must be of type BusinessPrincipal, not. - /// - internal static string BusinessPrincipalException { - get { - return ResourceManager.GetString("BusinessPrincipalException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Changing an element is an invalid operation. - /// - internal static string ChangeInvalidException { - get { - return ResourceManager.GetString("ChangeInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Can not directly mark a child object for deletion - use its parent collection. - /// - internal static string ChildDeleteException { - get { - return ResourceManager.GetString("ChildDeleteException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Clear is an invalid operation. - /// - internal static string ClearInvalidException { - get { - return ResourceManager.GetString("ClearInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - create not allowed. - /// - internal static string CreateNotSupportedException { - get { - return ResourceManager.GetString("CreateNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - delete not allowed. - /// - internal static string DeleteNotSupportedException { - get { - return ResourceManager.GetString("DeleteNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Error reading value:. - /// - internal static string ErrorReadingValueException { - get { - return ResourceManager.GetString("ErrorReadingValueException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - execute not allowed. - /// - internal static string ExecuteNotSupportedException { - get { - return ResourceManager.GetString("ExecuteNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to failed. - /// - internal static string Failed { - get { - return ResourceManager.GetString("Failed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to failed on the server. - /// - internal static string FailedOnServer { - get { - return ResourceManager.GetString("FailedOnServer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - fetch not allowed. - /// - internal static string FetchNotSupportedException { - get { - return ResourceManager.GetString("FetchNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to GetIdValue must not return Nothing. - /// - internal static string GetIdValueCantBeNull { - get { - return ResourceManager.GetString("GetIdValueCantBeNull", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Insert is an invalid operation. - /// - internal static string InsertInvalidException { - get { - return ResourceManager.GetString("InsertInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - insert not allowed. - /// - internal static string InsertNotSupportedException { - get { - return ResourceManager.GetString("InsertNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid rule method (instance methods of the target object not allowed). - /// - internal static string InvalidRuleMethodException { - get { - return ResourceManager.GetString("InvalidRuleMethodException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} can not exceed {1}. - /// - internal static string MaxValueRule { - get { - return ResourceManager.GetString("MaxValueRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to method call failed. - /// - internal static string MethodCallFailed { - get { - return ResourceManager.GetString("MethodCallFailed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to not implemented. - /// - internal static string MethodNotImplemented { - get { - return ResourceManager.GetString("MethodNotImplemented", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} can not be less than {1}. - /// - internal static string MinValueRule { - get { - return ResourceManager.GetString("MinValueRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ApplyEdit is not valid on a child object. - /// - internal static string NoApplyEditChildException { - get { - return ResourceManager.GetString("NoApplyEditChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to BeginEdit is not valid on a child object. - /// - internal static string NoBeginEditChildException { - get { - return ResourceManager.GetString("NoBeginEditChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to CancelEdit is not valid on a child object. - /// - internal static string NoCancelEditChildException { - get { - return ResourceManager.GetString("NoCancelEditChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid for root objects - use Delete instead. - /// - internal static string NoDeleteRootException { - get { - return ResourceManager.GetString("NoDeleteRootException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to No principal object should be passed to DataPortal when using Windows integrated security. - /// - internal static string NoPrincipalAllowedException { - get { - return ResourceManager.GetString("NoPrincipalAllowedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Can not directly save a child object. - /// - internal static string NoSaveChildException { - get { - return ResourceManager.GetString("NoSaveChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Object is still being edited and can not be saved. - /// - internal static string NoSaveEditingException { - get { - return ResourceManager.GetString("NoSaveEditingException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Object is not valid and can not be saved. - /// - internal static string NoSaveInvalidException { - get { - return ResourceManager.GetString("NoSaveInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to No such value exists:. - /// - internal static string NoSuchValueExistsException { - get { - return ResourceManager.GetString("NoSuchValueExistsException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Argument must not be Nothing. - /// - internal static string NothingNotValid { - get { - return ResourceManager.GetString("NothingNotValid", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Parent value can only be set for child objects. - /// - internal static string ParentSetException { - get { - return ResourceManager.GetString("ParentSetException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Type parameter must be a primitive type. - /// - internal static string PrimitiveTypeRequired { - get { - return ResourceManager.GetString("PrimitiveTypeRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Property copy failed. - /// - internal static string PropertyCopyFailed { - get { - return ResourceManager.GetString("PropertyCopyFailed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Property get not allowed. - /// - internal static string PropertyGetNotAllowed { - get { - return ResourceManager.GetString("PropertyGetNotAllowed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Property set not allowed. - /// - internal static string PropertySetNotAllowed { - get { - return ResourceManager.GetString("PropertySetNotAllowed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} does not match regular expression. - /// - internal static string RegExMatchRule { - get { - return ResourceManager.GetString("RegExMatchRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Remove is an invalid operation. - /// - internal static string RemoveInvalidException { - get { - return ResourceManager.GetString("RemoveInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to t. - /// - internal static string SmartDateT { - get { - return ResourceManager.GetString("SmartDateT", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to today. - /// - internal static string SmartDateToday { - get { - return ResourceManager.GetString("SmartDateToday", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to tom. - /// - internal static string SmartDateTom { - get { - return ResourceManager.GetString("SmartDateTom", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to tomorrow. - /// - internal static string SmartDateTomorrow { - get { - return ResourceManager.GetString("SmartDateTomorrow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to y. - /// - internal static string SmartDateY { - get { - return ResourceManager.GetString("SmartDateY", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to yesterday. - /// - internal static string SmartDateYesterday { - get { - return ResourceManager.GetString("SmartDateYesterday", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} can not exceed {1} characters. - /// - internal static string StringMaxLengthRule { - get { - return ResourceManager.GetString("StringMaxLengthRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} required. - /// - internal static string StringRequiredRule { - get { - return ResourceManager.GetString("StringRequiredRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to String value can not be converted to a date. - /// - internal static string StringToDateException { - get { - return ResourceManager.GetString("StringToDateException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Failed to load type '{0}'. - /// - internal static string TypeLoadException { - get { - return ResourceManager.GetString("TypeLoadException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - update not allowed. - /// - internal static string UpdateNotSupportedException { - get { - return ResourceManager.GetString("UpdateNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Value is not a SmartDate. - /// - internal static string ValueNotSmartDateException { - get { - return ResourceManager.GetString("ValueNotSmartDateException", resourceCulture); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.bs.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.bs.resx deleted file mode 100644 index 116a76d9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.bs.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Čišćenje nije dozvoljeno - - - Dodavanje nije dozvoljeno - - - Uklanjanje nije dozvoljeno - - - Izmjena nije dozvoljena - - - Parent vrijednost može biti podešena samo za objekte "djecu" - - - Objekti "djeca" se ne mogu direktno označiti za brisanje - koristite "roditelj" kolekciju - - - Nedozvoljena operacija za osnovne objekte - koristite Delete - - - "Dijete" objekat se ne može direktno sačuvati - - - Objekat se još uvijek uređuje i ne može biti sačuvan - - - Objekat nije ispravan i ne može biti sačuvan - - - Nedozvoljena operacija - kreiranje - - - Nedozvoljena operacija - učitavanje - - - Nedozvoljena operacija - ažuriranje - - - Nedozvoljena operacija - brisanje - - - BeginEdit nije važeći na "dijete" objektu - - - CancelEdit nije važeći na "dijete" objektu - - - ApplyEdit nije važeći na "dijete" objektu - - - Ne postoji vrijednost: - - - Greška pri čitanju vrijednosti: - - - String vrijednost ne može biti konvertovana u datum - - - Vrijednost nije tipa SmartDate - - - Principal objekat ne može biti proslijeđen DataPortal-u kada se koristi integrisana Windows sigurnost - - - Principal objekat mora biti tipa BusinessPrincipal, a ne - - - t - - - today - - - y - - - yesterday - - - tom - - - tomorrow - - - neuspješno - - - neuspješno na serveru - - - neuspješan poziv metoda - - - metod nije implementiran - - - Nedozvoljena operacija - izvršavanje - - - Nedozvoljena operacija - dodavanje - - - GetIdValue ne smije vratiti Nothing - - - Uzimanje osobine objekta (Property get) nije dopušteno - - - Podešavanje osobine objekta (Property set) nije dopušteno - - - Argument ne smije biti Nothing - - - Type parametar mora biti primitivni tip - - - Kopiranje osobine nije uspjelo - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ca-ES.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ca-ES.resx deleted file mode 100644 index 667a4e7f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ca-ES.resx +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear és una operació invàlida - - - Inserir (insert) és una operació invàlida - - - Remove és una operació invàlida - - - Canviar un element és una operació invàlida - - - El valor Parent només pot ser establert per objectes fill - - - No es pot marcar directament un objecte fill per a esborrar-lo - utilitzeu la col·lecció pare - - - Invàlid per a objectes arrel - utilitzeu Delete en el seu lloc - - - No es por guardar un objecte fill directament - - - L'objecte està en ús i no pot ser desat - - - L'objecte no és vàlid i no pot ser desat - - - Operació invàlida - no està permès crear (create) - - - Operació invàlida - lectura (fetch) no permesa - - - Operació invàlida - no està permès actualitzar (update) - - - Operació invàlida - no està permès esborrar (delete) - - - BeginEdit no és vàlid en un objecte fill - - - CancelEdit no és vàlid en un objecte fill - - - ApplyEdit no és vàlid en un objecte fill - - - No existeix el valor: - - - Error llegint el valor: - - - El valor de tipus String no pot ser convertit a una data - - - El valor no és un SmartDate - - - No s'hauria de passar un objecte principal al DataPortal quan s'utilitza la seguretat integrada de Windows - - - El Principal ha de ser del tipus BusinessPrincipal, no - - - t - - - today (avui) - - - y - - - yesterday (ahir) - - - tom - - - tomorrow (demà) - - - ha fallat - - - ha fallat en el servidor - - - Ha fallat la crida al mètode - - - no implementat - - - Operació invàlida - no està permès executar (execute) - - - Operació invàlida - no està permès inserir (insert) - - - GetIdValue no pot retornar un valor nul - - - No està permès recuperar el valor de la propietat (get) - - - No està permès establir un valor a la propietat (set) - - - L'argument no pot ser nul - - - El tipus del paràmetre ha de ser un tipus primitiu - - - Ha fallat la còpia de la propietat - - - {0} no pot excedir de {1} - - - {0} no pot ser menor que {1} - - - {0} no coincideix amb l'expressió regular - - - {0} no pot excedir de {1} caràcters - - - {0} obligatori - - - Regla invàlida (no està permès instanciar mètodes de l'objecte destí) - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.da.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.da.resx deleted file mode 100644 index 3d09488d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.da.resx +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear er en ugyldig handling - - - Insert er en ugyldig handling - - - Remove er en ugyldig handling - - - Ændring af et element er en ugyldig handling - - - Forældreværdi kan kun sættes i børneobjekter - - - Det er ikke muligt direkte at markere et børneobjekt til sletning - brug objektets forældre kollektion - - - Ugyldig for rodobjekter - brug Delete i stedet - - - Kan ikke direkte lagre et børneobjekt - - - Objektet er stadig ved at blive rettet og kan ikke lagres - - - Objektet er ikke gyldigt og kan ikke lagres - - - Ugyldig handling - create er ikke tilladt - - - Ugyldig handling - fetch er ikke tilladt - - - Ugyldig handling - update er ikke tilladt - - - Ugyldig handling - delete er ikke tilladt - - - BeginEdit er ikke gyldig på et børneobjekt - - - CancelEdit er ikke gyldig på børneobjekt - - - ApplyEdit er ikke gyldig på et børneobjekt - - - Der findes ikke en sådan værdi: - - - Fejl ved læsning af værdi: - - - Strengværdi kan ikke konverteres til en dato - - - Værdi er ikke en SmartDate - - - Principal objekt skal ikke overføres til DataPortal når der bruges Windows integreret sikkerhed - - - Principal skal være af typen BusinessPrincipal, ikke - - - dd - - - idag - - - ig - - - igår - - - im - - - imorgen - - - fejlede - - - fejlede på serveren - - - metodekald fejlede - - - ikke implementeret - - - Ugyldig handling - execute er ikke tilladt - - - Ugyldig handling - insert er ikke tilladt - - - GetIdValue må ikke returnere Nothing - - - Property get er ikke tilladt - - - Property set er ikke tilladt - - - Argument kan ikke være Nothing - - - Type parameter skal være en primitiv type - - - Property kopi fejlede - - - Ugyldig regel metode (instans metoder af target objekt er ikke tilladt) - - - {0} kan ikke være større end {1} - - - {0} kan ikke være mindre end {1} - - - {0} passer ikke på det regulære udtryk - - - {0} kan ikke være længere end {1} tegn - - - {0} er påkrævet - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.de.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.de.resx deleted file mode 100644 index cf99f3e2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.de.resx +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear ist eine ungültige Operation - Clear is an invalid operation - - - Einfügen ist eine ungültige Operation - Insert is an invalid operation - - - Entfernen ist eine ungültige Operation - Remove is an invalid operation - - - Ändern eines Elementes ist eine ungültige Operation - Changing an element is an invalid operation - - - Elternwert kann nur für Kindobjekte gesetzt werden - Parent comment can only be set for child objects - - - kann ein Kindobjekt nicht direkt zum Löschen markieren - benutzen Sie die Eltern Liste - Can not directly mark a child object for deletion - use its parent collection - - - ungültig für Root Objekte - stattdessen löschen - Invalid for root objects - use Delete instead - - - ein Kindobjekt kann nich direkt gespeichert werden - Can not directly save a child object - - - Objekt wird noch editiert und kann nicht gespeichert werden - Object is still being edited and can not be saved - - - Objekt ist ungültig und kann nicht gespeichert werden - Object is not valid and can not be saved - - - Ungültige Operation - Erzeugen nicht erlaubt - Invalid operation - create not allowed - - - Ungültige Operation - Abrufen nicht erlaubt - Invalid operation - fetch not allowed - - - Ungültige Operation - Aktualisieren nicht erlaubt - Invalid operation - update not allowed - - - Ungültige Operation - Löschen nicht erlaubt - Invalid operation - delete not allowed - - - BeginEdit kann nicht auf ein Kindobjekt angewandt werden - BeginEdit is not valid on a child object - - - CancelEdit kann nicht auf ein Kindobjekt angewandt werden - CancelEdit is not valid on a child object - - - ApplyEdit kann nicht auf ein Kindobjekt angewandt werden - ApplyEdit is not valid on a child object - - - Wert existiert nicht: - No such comment exists: - - - Fehler beim Lesen des Werts: - Error reading comment: - - - String Wert kann nicht zu einem Date Wert konvertiert werden - String comment can not be converted to a date - - - Wert ist kein SmartDate - comment is not a SmartDate - - - Bei Windows Authentifizierung sollte kein Principal Objekt zu DataPortal übergeben werden - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal muss vom Typ BusinessPrincipal sein, nicht - Principal must be of type BusinessPrincipal, not - - - h - t - - - heute - today - - - g - y - - - gestern - yesterday - - - m - tom - - - morgen - tomorrow - - - fehlgeschlagen - failed - - - auf dem Server fehlgeschlagen - failed on the server - - - Methodenaufruf fehlgeschlagen - method call failed - - - nicht implementiert - not implemented - - - ungülitge Operation - Ausführen nicht erlaubt - Invalid operation - execute not allowed - - - ungülitge Operation - Einfügen nicht erlaubt - Invalid operation - insert not allowed - - - GetIdValue darf nicht Nothing zurückgeben - GetIdcomment must not return Nothing - - - Eigenschaft get nicht erlaubt - Property get not allowed - - - Eigenschaft set nicht erlaubt - Property set not allowed - - - Arguement darf nicht Nothing sein - Argument must not be Nothing - - - Type Parameter muss ein primitiver Typ sein - Type parameter must be a primitive type - - - Eigenschaft Kopie fehlgeschlagen - Property copy failed - - - {0} kann nicht grösser sein als {1} - {0} can not exceed {1} - - - {0} kann nicht geringer sein als {1} - {0} can not be less than {1} - - - {0} kann nicht mehr als {1} Zeichen haben - {0} can not exceed {1} characters - - - {0} erforderlich - {0} required - - - {0} enspricht nicht den normalen Bedingungen - {0} does not match regular expression - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es-ES.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es-ES.resx deleted file mode 100644 index 2bbad73b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es-ES.resx +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear no es una operación válida - - - Insert no es una operación válida - - - Remove no es una operación válida - - - Cambiar un elemento no es una operación válida - - - El valor Parent sólo puede ser establecido para objetos hijo - - - No se puede marcar directamente un objeto hijo como borrado - use su colección padre - - - No válido para objetos raíz - use Delete en su lugar - - - No se puede guardar directamente un objeto hijo - - - El objeto todavía está siendo editado y no puede ser guardado - - - El objeto no es válido y no puede ser guardado - - - Operación no válida - no está permitido crear (create) - - - Operación no válida - lectura (fetch) no permitida - - - Operación no válida - no está permitido actualizar (update) - - - Operación no válida - no está permitido borrar (delete) - - - BeginEdit no es válido en un objeto hijo - - - CancelEdit no es válido en un objeto hijo - - - ApplyEdit no es válido en un objeto hijo - - - No existe tal valor: - - - Error leyendo el valor: - - - El valor de tipo String no puede ser convertido a una fecha - - - El valor no es un SmartDate - - - No se debería pasar un objeto principal al DataPortal cuando se está usando la seguridad integrada de Windows - - - El Principal debe ser del tipo BusinessPrincipal, no - - - h - - - hoy - - - a - - - ayer - - - m - - - mañana - - - falló - - - falló en el servidor - - - la llamada al método falló - - - no implementado - - - Operación no válida - no está permitido ejecutar (execute) - - - Operación no válida - no está permitido insertar (insert) - - - GetIdValue no debe devolver Nothing - - - No está permitido recuperar (get) la propiedad - - - No está permitido establecer (set) la propiedad - - - El argumento no puede ser Nothing - - - El tipo del parámetro debe ser un tipo primitivo - - - la copia de la propiedad falló - - - Método de regla no válido (no se permiten métodos de instancia del objeto de destino) - - - {0} no puede ser superior a {1} - - - {0} no puede ser menor que {1} - - - {0} no coincide con una expresión regular - - - {0} no puede exceder {1} caracteres - - - {0} es requerido - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es.resx deleted file mode 100644 index 1a3e5e0f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear es una operación inválida - - - Insert es una operación inválida - - - Remove es una operación inválida - - - Cambiar un elemento es una operación inválida - - - La referencia al padre sólo se puede establecer para los objetos hijo - - - No se puede marcar directamente a un hijo para borrarlo - use su colección padre - - - Inválido para objetos hijo - use "Delete" en su lugar - - - No se puede guardar un objeto hijo en forma directa - - - El objeto está siendo editado y no se puede guardar - - - El objeto no es válido y no se puede guardar - - - Operación inválida - Create no permitido - - - Operación inválida - Fetch no permitido - - - Operación inválida - Update no permitido - - - Operación inválida - Delete no permitido - - - BeginEdit no es válido en un objeto hijo - - - CancelEdit no es válido en un objeto hijo - - - ApplyEdit no es válido en un objeto hijo - - - No existe tal valor: - - - Error leyendo el valor: - - - Un valor del tipo string no se puede convertir a Date - - - El valor no es un SmartDate - - - No se debería pasar un objeto "Principal" al DataPortal cuando se usa seguridad integrada de Windows - - - El Principal debe ser del tipo BusinessPrincipal, no - - - h - - - hoy - - - a - - - ayer - - - m - - - mañana - - - falló - - - falló en el servidor - - - llamada al método falló - - - no implementado - - - Operación inválida - no se permite execute - - - Operación inválida - no se permite insert - - - GetIdValue no debe devolver Nothing - - - No se puede obtener el valor de la propiedad - - - No se puede establecer el valor de la propiedad - - - El argumento no puede ser Nothing - - - El parámetro Type debe ser in tipo primitivo - - - La copia de la propiedad falló - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.fr.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.fr.resx deleted file mode 100644 index a793002a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.fr.resx +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Nettoyer (clear) est une opération invalide - Clear is an invalid operation - - - Insérer (insert) est une opération invalide - Insert is an invalid operation - - - "Retirer" (Remove) est une opération invalide - Remove is an invalid operation - - - Changer un élément est une opération invalide - Changing an element is an invalid operation - - - La valeur "Parent" ne peux être appliquée qu'aux objets enfant - Parent value can only be set for child objects - - - Un objet enfant ne peux être directement marqué pour effacement - Utilisez la collection qui le contient - Can not directly mark a child object for deletion - use its parent collection - - - Invalide pour les objets racine - Utilisez plutôt "Effacer" (Delete) - Invalid for root objects - use Delete instead - - - Un objet enfant ne peux être directement sauvegardé - Can not directly save a child object - - - Impossible de sauvegarder l'objet car il est en cours d'édition - Object is still being edited and can not be saved - - - Impossible de sauvegarder l'objet car il possède des erreurs - Object is not valid and can not be saved - - - Opération invalide - Créer (create) n'est pas permis - Invalid operation - create not allowed - - - Opération invalide - Charger (fetch) n'est pas permis - Invalid operation - fetch not allowed - - - Operation invalide - mise à jour (update) n'est pas permis - Invalid operation - update not allowed - - - Opération invalide - Effacer (delete) n'est pas permis - Invalid operation - delete not allowed - - - Opération invalide - "BeginEdit" n'est pas permis sur un objet enfant - BeginEdit is not valid on a child object - - - Opération invalide - "CancelEdit" n'est pas permis sur un objet enfant - CancelEdit is not valid on a child object - - - Opération invalide - "ApplyEdit" n'est pas permis sur un objet enfant - ApplyEdit is not valid on a child object - - - Cette valeur n'existe pas: - No such value exists: - - - Erreur lors de la lecture de cette valeur: - Error reading value: - - - Cette chaine de caractère ne peux être convertis en type "Date" - String value can not be converted to a date - - - La valeur (Value) n'est pas du type "SmartDate" - Value is not a SmartDate - - - Un objet "Principal" ne doit être passé au "DataPortal" lorsque la sécurité intégrée à Windows est utilisée - No principal object should be passed to DataPortal when using Windows integrated security - - - Le "Principal" doit être du type "BusinessPrincipal" et non du type - Principal must be of type BusinessPrincipal, not - - - a - t - - - aujourd'hui - today - - - h - y - - - hier - yesterday - - - d - tom - - - demain - tomorrow - - - a échoué - failed - - - a échoué sur le serveur - failed on the server - - - L'appel à la méthode a échoué - method call failed - - - non implanté - not implemented - - - Opération invalide - Exécuter (execute) n'est pas permis - Invalid operation - execute not allowed - - - Opération invalide - Insérer (insert) n'est pas permis - Invalid operation - insert not allowed - - - "GetIdValue" ne peut retourner une valeur nul (Nothing) - GetIdValue must not return Nothing - - - Le "get" n'est pas permis pour cette propriété - Property get not allowed - - - Le "set" n'est pas permis pour cette propriété - Property set not allowed - - - Cet argument ne peut être nul (Nothing) - Argument must not be Nothing - - - Le paramètre doit être d'un type primaire (primitive type) - Type parameter must be a primitive type - - - La copie (copy) de cette propriété a échoué - Property copy failed - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.hr.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.hr.resx deleted file mode 100644 index e12d1625..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.hr.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Principal objekt mora biti tipa BusinessPrincipal, a ne - - - Izmjena nije dozvoljena - - - Objekti "djeca" se ne mogu direktno označiti za brisanje - koristite "roditelj" kolekciju - - - Čišćenje nije dozvoljeno - - - Nedozvoljena operacija - kreiranje - - - Nedozvoljena operacija - brisanje - - - Greška pri čitanju vrijednosti: - - - Nedozvoljena operacija - izvršavanje - - - neuspješno - - - neuspješno na serveru - - - Nedozvoljena operacija - učitavanje - - - GetIdValue ne smije vratiti Nothing - - - Dodavanje nije dozvoljeno - - - Nedozvoljena operacija - dodavanje - - - neuspješan poziv metoda - - - metod nije implementiran - - - ApplyEdit nije važeći na "dijete" objektu - - - BeginEdit nije važeći na "dijete" objektu - - - CancelEdit nije važeći na "dijete" objektu - - - Nedozvoljena operacija za osnovne objekte - koristite Delete - - - Principal objekt ne može biti proslijeđen DataPortal-u kada se koristi integrisana Windows sigurnost - - - "Dijete" objekt se ne može direktno sačuvati - - - Objekt se još uvijek uređuje i ne može biti sačuvan - - - Objekt nije ispravan i ne može biti sačuvan - - - Ne postoji vrijednost: - - - Argument ne smije biti Nothing - - - Parent vrijednost može biti podešena samo za objekte "djecu" - - - Type parametar mora biti primitivni tip - - - Kopiranje osobine nije uspjelo - - - Uzimanje osobine objekta (Property get) nije dopušteno - - - Podešavanje osobine objekta (Property set) nije dopušteno - - - Uklanjanje nije dozvoljeno - - - t - - - today - - - tom - - - tomorrow - - - y - - - yesterday - - - String vrijednost ne može biti konvertovana u datum - - - Nedozvoljena operacija - ažuriranje - - - Vrijednost nije tipa SmartDate - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.it.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.it.resx deleted file mode 100644 index c70ba8e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.it.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear è un operazione non valida - - - Insert è un operazione non valida - - - Remove è un operazione non valida - - - Cambiare un elemento è una operazione non valida - - - Il Parent può essere impostato solo per gli oggetti child - - - Non è possibile marcare direttamente un elemento Child per la cancellazione - usare la sua collezione Parent - - - Non valido per oggetti root - usare invece Delete - - - Non è possibile salvare direttamente un oggetto child - - - L'oggetto è ancora in edit e non può essere salvato - - - L'oggetto non è valido e non può essere salvato - - - Operazione non valida - create non consentito - - - Operazione non valida - Fetch non è consentito - - - Operazione non valida - Update non è consentito - - - Operazione non valida - Delete non consentito - - - BeginEdit non è consentito su un oggetto child - - - CancelEdit non è consentito su un oggetto child - - - ApplyEdit non è consentito su un oggetto child - - - Non esiste il valore: - - - Errore durante la lettura del valore: - - - il valore stringa non può essere convertito in data - - - Value non è una SmartDate - - - Non si deve passare un oggetto Principal al DataPortal quando si usa l'autenticazione integrata di Windows - - - Principal deve essere del tipo BusinessPrincipal, non - - - o - - - oggi - - - i - - - ieri - - - d - - - domani - - - Fallito - - - Fallito sul server - - - chiamata a metodo fallita - - - non implementato - - - Operazione non valida - Execute non è consentito - - - Operazione non valida - Insert non è consentito - - - GetIdValue non può ritornare Nothing - - - Property get non consentito - - - Property set non consentito - - - Argument non deve essere Nothing - - - Il parametro Type deve essere un tipo primitivo - - - Copia della proprietà fallita - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.nl.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.nl.resx deleted file mode 100644 index d72b9f6f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.nl.resx +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - leeg maken is een ongeldige bewerking - Clear is an invalid operation - - - toevoegen is een ongeldige bewerking - Insert is an invalid operation - - - Verwijderen is een ongeldige bewerking - Remove is an invalid operation - - - Het wijzigen van een element is een ongeldige bewerking - Changing an element is an invalid operation - - - Parent waarde kan alleen voor child objecten gewijzigd worden - Parent comment can only be set for child objects - - - Kan geen child object markeren om te verwijderen - gebruik de parent collectie - Can not directly mark a child object for deletion - use its parent collection - - - Niet toegestaan voor root objecten - gebruik verwijderen - Invalid for root objects - use Delete instead - - - Het is niet toegestaan om een rechtstreeks een child object te bewaren - Can not directly save a child object - - - Object wordt nog gewijzigd - bewaren is niet toegestaan - Object is still being edited and can not be saved - - - Validatie van het object is niet geldig - bewaren is niet toegestaan - Object is not valid and can not be saved - - - ongeldige bewerking - aanmaken is niet toegestaan - Invalid operation - create not allowed - - - ongeldige bewerking - ophalen is niet toegestaan - Invalid operation - fetch not allowed - - - ongeldige bewerking - wijzigen is niet toegestaan - Invalid operation - update not allowed - - - ongeldige bewerking - verwijderen is niet toegestaan - Invalid operation - delete not allowed - - - BeginEdit is een ongeldige bewerking voor een child object - BeginEdit is not valid on a child object - - - CancelEdit is een ongeldige bewerking voor een child object - CancelEdit is not valid on a child object - - - ApplyEdit is een ongeldige bewerking voor een child object - ApplyEdit is not valid on a child object - - - de volgende waarde bestaat niet: - No such comment exists: - - - Fout tijdens het lezen van de waarde: - Error reading comment: - - - Een string waarde kan niet geconverteerd worden naar een datum waarde - String comment can not be converted to a date - - - Waarde is geen SmartDate - comment is not a SmartDate - - - Er mag geen principal object naar de DataPortal gestuurd worden wanneer men gebruik maakt van Windows integrated security - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal moet type BusinessPrincipal zijn, niet: - Principal must be of type BusinessPrincipal, not - - - v - t - - - vandaag - today - - - g - y - - - gisteren - yesterday - - - mor - tom - - - morgen - tomorrow - - - mislukt - failed - - - mislukt op de server - failed on the server - - - methode aanroepen mislukt - method call failed - - - niet geimplementeerd - not implemented - - - ongeldige bewerking - uitvoeren is niet toegestaan - Invalid operation - execute not allowed - - - ongeldige bewerking - toevoegen is niet toegestaan - Invalid operation - insert not allowed - - - GetIdValue mag geen Nothing(leeg) retourneren - GetIdcomment must not return Nothing - - - Property get is niet toegestaan - Property get not allowed - - - Property set is niet toegestaan - Property set not allowed - - - Argument mag niet Nothing(leeg) zijn - Argument must not be Nothing - - - Type parameter mag alleen een primitief type zijn - Type parameter must be a primitive type - - - Kopiëren van de property is mislukt - Property copy failed - - - {0} kan niet groter zijn dan {1} - {0} can not exceed {1} - - - {0} kan niet kleiner zijn dan {1} - {0} can not be less than {1} - - - {0} kan niet meer als {1} karakters hebben - {0} can not exceed {1} characters - - - {0} verplicht - {0} required - - - {0} komt niet overeen met de regular expression - {0} does not match regular expression - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.no.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.no.resx deleted file mode 100644 index d78a58d9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.no.resx +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear (blanking) er en ugyldig operasjon - - - Insert (legg inn) er en ugyldig operasjon - - - Remove (fjern) er en ugyldig operasjon - - - Endring av et element er en ugyldig operasjon - - - Parent (foreldre) verdi kan kun bli satt av Child (barne) objekter - - - Child (barne) objektet kan ikke markeres for sletting direkte - benytt Parent Collection (foreldrelisten) - - - Ugyldig for Root (rot) objekter - benytt Delete (slett) istedet - - - Et Child (barne) objekt kan ikke lagres direkte - - - Objektet redigeres fortsatt og kan ikke lagres - - - Objektet er ugyldig og kan ikke lagres - - - Ugyldig operasjon - Create (opprett) er ikke tillatt - - - Ugyldig operasjon - Fetch (hent) er ikke tillatt - - - Ugyldig operasjon - Update (oppdater) er ikke tillatt - - - Ugyildig operasjon - Delete (slett) er ikke tillatt - - - BeginEdit er ugyldig på et Child (barne) objekt - - - CancelEdit er ugyldig på et Child (barne) objekt - - - ApplyEdit er ugyldig på et Child (barne) objekt - - - En slik verdi eksisterer ikke: - - - Feil ved lesing av verdi: - - - Insert (legg inn) er ugyldig for en Read-Only Collection (uredigerbar liste) - - - Remove (fjern) er ugyldig for en Read-Only Collection (uredigerbar liste) - - - Clear (blank) er ugyldig for en Read-Only Collection (uredigerbar liste) - - - Verdier kan ikke endres i en Read-Only Collection (uredigerbar liste) - - - String-verdien kan ikke konverteres til Date (en dato) - - - Verdien er ikke en SmartDate - - - Verdien må være en gyldig dato - - - Sortering er ikke støttet i denne listen - - - Søk er ikke støttet i denne listen - - - Det er ikke tillatt å legge til verdier - - - Ingen Principal objekter skal sendes til DataPortalen Windows Integrated Security benyttes - - - Principal må vaere av typen BusinessPrincipal, ikke - - - Ingen tilsvarende verdi eksisterer i listen - - - Sikkerhet - - - Login - - - @user - - - @pw - - - t - - - today (idag) - - - y (år) - - - yesterday (igår) - - - tom - - - tomorrow (imorgen) - - - Batch jobben er fullført - - - Batch jobb: - - - Jobb objekt: - - - Batch-jobben ble ikke fullført pga en feil under utføringen - - - Batchkø prosessoren har startet - - - Navn: - - - Port: - - - Koe: - - - Max antall jobber: - - - Feilet - - - Feilet på serveren - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt-br.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt-br.resx deleted file mode 100644 index acf9a59e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt-br.resx +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Principal deve ser do tipo BusinessPrincipal, não - Principal must be of type BusinessPrincipal, not - - - - Alterar um elemento é uma operação inválida - Changing an element is an invalid operation - - - - Não se pode marcar diretamente um objeto filho para deleção - use a coleção pai dele - Can not directly mark a child object for deletion - use its parent collection - - - - Limpar é uma operação inválida - Clear is an invalid operation -Invalid operation - create not allowed - - - - Operação inválida - criação não permitida - Invalid operation - create not allowed - - - - Operação inválida - deleção não permitida - Invalid operation - delete not allowed - - - - Erro ao ler valor: - Error reading value: - - - - Operação inválida - execução não permitida - Invalid operation - execute not allowed - - - - falhou - failed - - - - falhou no servidor - failed on the server - - - - Operação inválida - leitura não permitida - Invalid operation - fetch not allowed - - - - 'Business Object' deve fornecer um valor não-nulo no GetIdValue - Business object must supply a non-null ID value in GetIdValue - - - - Inserir é uma operação inválida - Insert is an invalid operation - - - - Operação inválida - inserção não permitida - Invalid operation - insert not allowed - - - - {0} não pode exceder {1} - {0} can not exceed {1} - - - - chamada do método falhou - method call failed - - - - não implementado - not implemented - - - - {0} não pode ser menor que {1} - {0} can not be less than {1} - - - - ApplyEdit não é válido em um objeto filho - ApplyEdit is not valid on a child object - - - - BeginEdit não é válido em um objeto filho - BeginEdit is not valid on a child object - - - - CancelEdit não é válido em um objeto filho - CancelEdit is not valid on a child object - - - - Inválido para objetos raiz - use Deletar ao invés - Invalid for root objects - use Delete instead - - - - Nenhum objeto do tipo Principal deve ser passado para um DataPortal quando segurança integrada do Windows estiver sendo usada - No principal object should be passed to DataPortal when using Windows integrated security - - - - Não se pode salvar diretamente um objeto filho - Can not directly save a child object - - - - Objeto ainda está sendo editado e não pode ser salvo - Object is still being edited and can not be saved - - - - Objeto não é válido e não pode ser salvo - Object is not valid and can not be saved - - - - Tal valor não existe: - No such value exists: - - - - Argumento não pode ser nulo - Argument must not be null - - - - Valor do objeto pai só pode ser atribuido para objetos filhos - Parent value can only be set for child objects - - - - Tipo do parâmetro deve ser um tipo primitivo - Type parameter must be a primitive type - - - - Cópia da propriedade falhou - Property copy failed - - - - 'Property get' não permitida - Property get not allowed - - - - 'Property set' não permitida - Property set not allowed - - - - {0} não confere com 'regular expression' - {0} does not match regular expression - - - - Remover é uma operação inválida - Remove is an invalid operation - - - - t - t - - - - hoje - today - - - - tom - tom - - - - amanhã - tomorrow - - - - y - y - - - - ontem - yesterday - - - - {0} não pode exceder {1} caracteres - {0} can not exceed {1} characters - - - - {0} requerido - {0} required - - - - Valor do tipo string não pode ser convertido para uma data - String value can not be converted to a date - - - - Operação inválida - atualização não permitida - Invalid operation - update not allowed - - - - Valor não é uma SmartDate - Value is not a SmartDate - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt.resx deleted file mode 100644 index 6db4efa9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt.resx +++ /dev/null @@ -1,308 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - "Principal" tem que ser do tipo "BusinessPrincipal", não - Principal must be of type BusinessPrincipal, not - - - Alterar um elemento é uma operação inválida - Changing an element is an invalid operation - - - Não pode marcar directamente um objecto filho para apagar - use a colecção pai - Can not directly mark a child object for deletion - use its parent collection - - - "Clear" é uma operação inválida - Clear is an invalid operation - - - Operação inválida - não pode criar - Invalid operation - create not allowed - - - Operação inválida - não pode apagar - Invalid operation - delete not allowed - - - Erro ao ler valor: - Error reading value: - - - Operação inválida - não pode executar - Invalid operation - execute not allowed - - - falhou - failed - - - falhou no servidor - failed on the server - - - Operação inválida - não pode ler - Invalid operation - fetch not allowed - - - "GetIdValue" não pode devolver um ID nulo para o "business object" - Business object must supply a non-null ID value in GetIdValue - - - Inserir é uma operação inválida - Insert is an invalid operation - - - Operação inválida - não pode inserir - Invalid operation - insert not allowed - - - Método da regra inválido (não pode instanciar métodos do objecto alvo) - Invalid rule method (instance methods of the target object not allowed) - - - {0} não pode exceder {1} - {0} can not exceed {1} - - - chamada ao método falhou - method call failed - - - não implementado - not implemented - - - {0} não pode ser menos que {1} - {0} can not be less than {1} - - - "ApplyEdit" não é válido para um objecto filho - ApplyEdit is not valid on a child object - - - "BeginEdit" não é válido para um objecto filho - BeginEdit is not valid on a child object - - - "CancelEdit" não é válido para um objecto filho - CancelEdit is not valid on a child object - - - Inválido para objectos raíz - em vez disso, use "apagar" - Invalid for root objects - use Delete instead - - - Quando se usa a segurança integrada do Windows, nenhum objecto "Principal" deve ser passado para o "DataPortal" - No principal object should be passed to DataPortal when using Windows integrated security - - - Não pode guardar objectos filho directamente - Can not directly save a child object - - - O objecto está a ser editado e não pode ser guardado - Object is still being edited and can not be saved - - - O objecto não é válido e não pode ser guardado - Object is not valid and can not be saved - - - O valor não existe: - No such value exists: - - - O argumento não pode ser nulo - Argument must not be null - - - O valor "pai" só pode ser atribuído aos objectos filho - Parent value can only be set for child objects - - - O parâmetro tem que ser de um tipo primário - Type parameter must be a primitive type - - - A cópia da propriedade falhou - Property copy failed - - - Não pode ler o valor da propriedade - Property get not allowed - - - Não pode atribuir valor à propriedade - Property set not allowed - - - {0} não encaixa na expressão regular - {0} does not match regular expression - - - Remover é uma operação inválida - Remove is an invalid operation - - - h - t - - - hoje - today - - - a - tom - - - amanha - tomorrow - - - o - y - - - ontem - yesterday - - - {0} não pode exceder {1} caracteres - {0} can not exceed {1} characters - - - {0} exigido - {0} required - - - A cadeia de caracteres não pode ser convertido numa data - String value can not be converted to a date - - - Operação inválida - não pode actualizar - Invalid operation - update not allowed - - - O valor não é uma "SmartDate" - Value is not a SmartDate - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.resx deleted file mode 100644 index 25d8d9bb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.resx +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear is an invalid operation - - - Insert is an invalid operation - - - Remove is an invalid operation - - - Changing an element is an invalid operation - - - Parent value can only be set for child objects - - - Can not directly mark a child object for deletion - use its parent collection - - - Invalid for root objects - use Delete instead - - - Can not directly save a child object - - - Object is still being edited and can not be saved - - - Object is not valid and can not be saved - - - Invalid operation - create not allowed - - - Invalid operation - fetch not allowed - - - Invalid operation - update not allowed - - - Invalid operation - delete not allowed - - - BeginEdit is not valid on a child object - - - CancelEdit is not valid on a child object - - - ApplyEdit is not valid on a child object - - - No such value exists: - - - Error reading value: - - - String value can not be converted to a date - - - Value is not a SmartDate - - - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal must be of type BusinessPrincipal, not - - - t - - - today - - - y - - - yesterday - - - tom - - - tomorrow - - - failed - - - failed on the server - - - method call failed - - - not implemented - - - Invalid operation - execute not allowed - - - Invalid operation - insert not allowed - - - GetIdValue must not return Nothing - - - Property get not allowed - - - Property set not allowed - - - Argument must not be Nothing - - - Type parameter must be a primitive type - - - Property copy failed - - - {0} can not exceed {1} - - - {0} can not be less than {1} - - - {0} can not exceed {1} characters - - - {0} required - - - {0} does not match regular expression - - - Invalid rule method (instance methods of the target object not allowed) - - - Failed to load type '{0}' - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ro.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ro.resx deleted file mode 100644 index 6951c3c3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ro.resx +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Clear este o operatie invalida - Clear is an invalid operation - - - Insert este o operatie invalida - Insert is an invalid operation - - - Remove nu e o peratie valida - Remove is an invalid operation - - - Schimbarea unui element este o operatie invalida - Changing an element is an invalid operation - - - Valoarea Parent poate fi setata doar pentru obiectele copil - Parent value can only be set for child objects - - - Nu se poate marca direct un copil pentru stergere - utilizati colectia sa parinte - Can not directly mark a child object for deletion - use its parent collection - - - Invalid pentru obiecte root - utilizati Delete - Invalid for root objects - use Delete instead - - - Nu se poate salva direct un obiect copil - Can not directly save a child object - - - Obiectul se editeaza inca si nu poate fi salvat - Object is still being edited and can not be saved - - - Obiectul nu e valid si nu poate fi salvat - Object is not valid and can not be saved - - - Crearea nu e operatie permisa - Invalid operation - create not allowed - - - Operatie invalida - umplerea nu e permisa - Invalid operation - fetch not allowed - - - operatie invalida - update nu e permis - Invalid operation - update not allowed - - - Stergerea nu e o operatie permisa - Invalid operation - delete not allowed - - - BeginEdit nu e valid pe un obiect copil - BeginEdit is not valid on a child object - - - CancelEdit nu e valid pe un obiect copil - CancelEdit is not valid on a child object - - - ApplyEdit nu e valid pe un obiect copil - ApplyEdit is not valid on a child object - - - Nu exista valoarea : - No such value exists: - - - Eroare la citirea - Error reading value: - - - valoarea stringului nu poate fi convertita la data - String value can not be converted to a date - - - Valoare nu e de tipul SmartDate - Value is not a SmartDate - - - Nu trebuie trecut un obiect Principal la DataProtal cind utilizati Windows Integrated security - No principal object should be passed to DataPortal when using Windows integrated security - - - principal trebuie sa fie de tipul BussinesPrincipal, nu - Principal must be of type BusinessPrincipal, not - - - a - t - - - azi - today - - - i - y - - - ieri - yesterday - - - miine - tom - - - miine - tomorrow - - - Eroare - failed - - - Eroare la server - failed on the server - - - Chemarea metodei a produs eroare - method call failed - - - Methoda nu e implementata - not implemented - - - Operatie invalida - executia nu e permisa - Invalid operation - execute not allowed - - - Operatie invalida - insert nu e permis - Invalid operation - insert not allowed - - - GetIdValue nu poate intoarce Nothing - GetIdValue must not return Nothing - - - Proprietatea nu admite get - Property get not allowed - - - Proprietatea nu admite set - Property set not allowed - - - Argumetul trebuie sa nu fie Nothing - Argument must not be Nothing - - - Parametru Type trebuie sa fie un type "primitiv" - Type parameter must be a primitive type - - - Copierea proprietatii a dat eroare - Property copy failed - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ru.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ru.resx deleted file mode 100644 index 029101d5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ru.resx +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.0.0.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Неверная операция "Clear" - - - Неверная операция "Insert" - - - Неверная операция "Remove" - - - Редактирование элемента недопустимо - - - Значение Parent может быть установленно только для дочерних объектов - - - Невозможно напрямую пометить дочерний объект для удаления. Используйте его родительскую коллекцию - - - Неверно для корневого объекта - используйте команду Delete - - - Невозможно сохранить дочерний объект напрямую - - - Невозможно сохранить объект находящийся в состоянии редактирования - - - Невозможно сохранить объект с ошибками - - - Неверная операция - создание нового объекта не разрешено - - - Неверная операция - чтение не разрешено - - - Неверная операция - редактирование не разрешено - - - Неверная операция - удаление не разрешено - - - BeginEdit не разрешено для дочернего объекта - - - CancelEdit не разрешено для дочернего объекта - - - ApplyEdit не разрешено для дочернего объекта - - - Такого значения не существует: - - - Ошибка чтения значения: - - - Вставка не разрешена для коллекций "только для чтения" - - - Удаление не разрешено для коллекций "только для чтения" - - - Очистка коллекций "только для чтения" не разрешена - - - Редактирование коллекций "только для чтения" не разрешено - - - Строковое значение не может быть переведено в дату - - - Тип значения не SmartDate - - - Значение должно быть правильной датой - - - Сортировка не поддерживается данной коллекцией - - - Поиск не поддерживается данной коллекцией - - - Добавление записей не разрешено - - - Не следует передавать объект "principal" в DataPortal при использовании интегрированной системы безопасности Windows (WIS) - - - Объект "Principal" должен быть типа BusinessPrincipal, а не - - - Нет соответсвующей записи в коллекции - - - Security - - - Login - - - @user - - - @pw - - - t - - - сегодня - - - y - - - вчера - - - tom - - - завтра - - - Пакетное задание окончено - - - Пакетное задание: - - - Объект задания: - - - Пакетное задание не выполнено из-за ошибки выполнения - - - Стартовал обработчик пактной очереди - - - Имя: - - - Port: - - - Очередь: - - - Максимально заданий: - - - потерпел неудачу - - - потерпел неудачу на сервере - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sr.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sr.resx deleted file mode 100644 index 6550f787..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sr.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Principal objekat mora biti tipa BusinessPrincipal, a ne - - - Izmena nije dozvoljena - - - Objekti "deca" se ne mogu direktno označiti za brisanje - koristite "roditelj" kolekciju - - - Čišćenje nije dozvoljeno - - - Nedozvoljena operacija - kreiranje - - - Nedozvoljena operacija - brisanje - - - Greška pri čitanju vrednosti: - - - Nedozvoljena operacija - izvršavanje - - - neuspešno - - - neuspešno na serveru - - - Nedozvoljena operacija - učitavanje - - - GetIdValue ne sme vratiti Nothing - - - Dodavanje nije dozvoljeno - - - Nedozvoljena operacija - dodavanje - - - neuspešan poziv metoda - - - metod nije implementiran - - - ApplyEdit nije važeći na "dete" objektu - - - BeginEdit nije važeći na "dete" objektu - - - CancelEdit nije važeći na "dete" objektu - - - Nedozvoljena operacija za osnovne objekte - koristite Delete - - - Principal objekat ne može biti prosleđen DataPortal-u kada se koristi integrisana Windows sigurnost - - - "Dete" objekat se ne može direktno sačuvati - - - Objekat se još uvek uređuje i ne može biti sačuvan - - - Objekat nije ispravan i ne može biti sačuvan - - - Ne postoji vrednost: - - - Argument ne sme biti Nothing - - - Parent vrednost može biti podešena samo za objekte "decu" - - - Type parametar mora biti primitivni tip - - - Kopiranje osobine nije uspelo - - - Uzimanje osobine objekta (Property get) nije dopušteno - - - Podešavanje osobine objekta (Property set) nije dopušteno - - - Uklanjanje nije dozvoljeno - - - t - - - today - - - tom - - - tomorrow - - - y - - - yesterday - - - String vrednost ne može biti konvertovana u datum - - - Nedozvoljena operacija - ažuriranje - - - Vrednost nije tipa SmartDate - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sv.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sv.resx deleted file mode 100644 index 45a67d0c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sv.resx +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.0.0.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Rensa är en ogiltig åtgärd - - - Lägga till är en ogiltig åtgärd - - - Ta bort är en ogiltig åtgärd - - - Ändra ett element är en ogiltig åtgärd - - - Överordnat värde kan endast sättas på underordnade objekt - - - Kan inte märka ett underordnat objekt för borttagning - använd dess överordnades kollektion - - - Otillåtet för rotobjekt - använd ta bort istället - - - Kan inte spara ett underordnat objekt direkt - - - Objetet håller fortfarande på att ändras och kan inte sparas - - - Objektet är inte giltigt och kan inte sparas - - - Ogiltig åtgärd - skapa är inte tillåtet - - - Ogiltig åtgärd - hämta är inte tillåtet - - - Ogiltig åtgärd - uppdatera är inte tillåtet - - - Ogiltig åtgärd - ta bort är inte tillåtet - - - BeginEdit är inte giltigt på ett underordnat objekt - - - CancelEdit är inte giltigt på ett underordnat objekt - - - ApplyEdit är inte giltigt på ett underordnat objekt - - - Värdet saknas: - - - Fel vid läsande av värde: - - - Lägga till är ogiltigt på en skrivskyddad kollektion - - - Ta bort är ogiltigt på en skrivskyddad kollektion - - - Rensa är ogiltigt på en skrivskyddad kollektion - - - Objekt kan inte ändras i en skrivskyddad kollektion - - - Strängvärde kan inte omvandlas till ett datum - - - Värdet är inte ett SmartDate - - - Värdet måste vara ett giltigt datum - - - Sortering stöds inte av denna kollektion - - - Sökning stöds inte av denna kollektion - - - Det är inte tillåtet att lägga till objekt - - - Principal-objekt ska inte skickas med till DataPortal:en vid användande av Windows integrated security - - - Principal måste vara av typen BusinessPrincipal, inte - - - Inga matchande objekt i kollektionen - - - Security - - - Login - - - @user - - - @pw - - - t - - - today - - - y - - - yesterday - - - tom - - - tomorrow - - - Batch-jobb avslutat - - - Batch-jobb: - - - Jobbobjekt: - - - Batch-jobb misslyckades på grund av körningsfel - - - Processor för batch-kö startad - - - Namn: - - - Port: - - - Kö: - - - Max antal jobb: - - - misslyckades - - - misslyckades på servern - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.zh-CHS.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.zh-CHS.resx deleted file mode 100644 index 8c822f54..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.zh-CHS.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 清除属非法操作 - - - 插入属非法操作 - - - 删除属无效操作 - - - 改变一个元素属非法操作 - - - 只允许给子对象赋值 - - - 不能直接将子对象标记为删除对象 – 请通过其 Parent 集合 - - - 不能用于源对象 – 请用删除 - - - 不能直接保存子对象 - - - 不能保存, 因为对象还在修改状态中 - - - 对象含无效值, 因此不能保存 - - - 非法操作 – 不允许创建 - - - 非法操作 – 不允许读取数据 - - - 无效操作 –不允许更新 - - - 非法操作 – 不允许删除 - - - BeginEdit 在子对象上无效 - - - CancelEdit 在子对象上无效 - - - ApplyEdit 在子对象上无效 - - - 此数值不存在: - - - 读取数值出错: - - - 字符串不能转化成日期 - - - 数值不是SmartDate 类型 - - - 使用视窗集成的安全模式时, 不能将主名对象传送给DataPortal - - - 主名必须是 BusinessPrincipal 的类型, 不能是 - - - 今天 - - - 今天 - - - 昨天 - - - 昨天 - - - 明天 - - - 明天 - - - 失败 - - - 伺服器出错 - - - 调用函数失败 - - - 尚未实现 - - - 非法操作 – 不允许执行 - - - 非法操作 – 不允许插入 - - - GetIdValue 返回值不能是空值 (Nothing) - - - 不允许 get 属性 - - - 不允许 set 属性 - - - 参数不能是空值 (Nothing) - - - 参数的类型必须是基本类型之一 - - - 拷贝属性失败 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.Designer.cs deleted file mode 100644 index 19d9d1a0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Csla.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] - [global::System.Configuration.DefaultSettingValueAttribute("http://localhost:4804/WSPortalcs/Service.asmx")] - public string Csla_WebServiceHost_WebServicePortal { - get { - return ((string)(this["Csla_WebServiceHost_WebServicePortal"])); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.settings b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.settings deleted file mode 100644 index 5ffc07b8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.settings +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - http://localhost:4804/WSPortalcs/Service.asmx - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyBase.cs deleted file mode 100644 index 40c3189c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyBase.cs +++ /dev/null @@ -1,438 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.ComponentModel; -using System.Runtime.Serialization; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is a base class from which readonly business classes - /// can be derived. - /// - /// - /// This base class only supports data retrieve, not updating or - /// deleting. Any business classes derived from this base class - /// should only implement readonly properties. - /// - /// Type of the business object. - [Serializable()] - public abstract class ReadOnlyBase : ICloneable, Core.IReadOnlyObject, Csla.Security.IAuthorizeReadWrite - where T : ReadOnlyBase - { - #region Object ID Value - - /// - /// Override this method to return a unique identifying - /// vlaue for this object. - /// - /// - /// If you can not provide a unique identifying value, it - /// is best if you can generate such a unique value (even - /// temporarily). If you can not do that, then return - /// and then manually override the - /// , and - /// methods in your business object. - /// - protected abstract object GetIdValue(); - - #endregion - - #region System.Object Overrides - - /// - /// Compares this object for equality with another object, using - /// the results of to determine - /// equality. - /// - /// The object to be compared. - public override bool Equals(object obj) - { - if (obj is T) - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.Equals(((T)obj).GetIdValue()); - } - else - return false; - } - - /// - /// Returns a hash code value for this object, based on - /// the results of . - /// - public override int GetHashCode() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.GetHashCode(); - } - - /// - /// Returns a text representation of this object by - /// returning the value - /// in text form. - /// - public override string ToString() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.ToString(); - } - - #endregion - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected ReadOnlyBase() - { - Initialize(); - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region Authorization - - [NotUndoable()] - [NonSerialized()] - private Dictionary _readResultCache; - [NotUndoable()] - [NonSerialized()] - private System.Security.Principal.IPrincipal _lastPrincipal; - - [NotUndoable()] - [NonSerialized()] - private Security.AuthorizationRules _authorizationRules; - - - /// - /// Override this method to add authorization - /// rules for your object's properties. - /// - protected virtual void AddInstanceAuthorizationRules() - { - - } - - /// - /// Override this method to add per-type - /// authorization rules for your type's properties. - /// - /// - /// AddSharedAuthorizationRules is automatically called by CSLA .NET - /// when your object should associate per-type authorization roles - /// with its properties. - /// - protected virtual void AddAuthorizationRules() - { - - } - - /// - /// Provides access to the AuthorizationRules object for this - /// object. - /// - /// - /// Use this object to add a list of allowed and denied roles for - /// reading and writing properties of the object. Typically these - /// values are added once when the business object is instantiated. - /// - protected Security.AuthorizationRules AuthorizationRules - { - get - { - if (_authorizationRules == null) - _authorizationRules = new Security.AuthorizationRules(this.GetType()); - return _authorizationRules; - } - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Indicates whether a negative - /// result should cause an exception. - [System.Runtime.CompilerServices.MethodImpl( - System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanReadProperty(bool throwOnFalse) - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - string.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Name of the property to read. - /// Indicates whether a negative - /// result should cause an exception. - public bool CanReadProperty(string propertyName, bool throwOnFalse) - { - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - string.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - public bool CanReadProperty() - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - return CanReadProperty(propertyName); - } - - /// - /// Returns if the user is allowed to read the - /// specified property. - /// - /// Name of the property to read. - /// if read is allowed. - /// - /// - /// If a list of allowed roles is provided then only users in those - /// roles can read. If no list of allowed roles is provided then - /// the list of denied roles is checked. - /// - /// If a list of denied roles is provided then users in the denied - /// roles are denied read access. All other users are allowed. - /// - /// If neither a list of allowed nor denied roles is provided then - /// all users will have read access. - /// - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual bool CanReadProperty(string propertyName) - { - bool result = true; - - VerifyAuthorizationCache(); - - if (_readResultCache.ContainsKey(propertyName)) - { - // cache contains value - get cached value - result = _readResultCache[propertyName]; - } - else - { - if (AuthorizationRules.HasReadAllowedRoles(propertyName)) - { - // some users are explicitly granted read access - // in which case all other users are denied. - if (!AuthorizationRules.IsReadAllowed(propertyName)) - result = false; - } - else if (AuthorizationRules.HasReadDeniedRoles(propertyName)) - { - // some users are explicitly denied read access. - if (AuthorizationRules.IsReadDenied(propertyName)) - result = false; - } - // store value in cache - _readResultCache[propertyName] = result; - } - return result; - } - - bool Csla.Security.IAuthorizeReadWrite.CanWriteProperty(string propertyName) - { - return false; - } - - private void VerifyAuthorizationCache() - { - if (_readResultCache == null) - _readResultCache = new Dictionary(); - if (!ReferenceEquals(Csla.ApplicationContext.User, _lastPrincipal)) - { - // the principal has changed - reset the cache - _readResultCache.Clear(); - _lastPrincipal = Csla.ApplicationContext.User; - } - } - - #endregion - - #region IClonable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - public T Clone() - { - return (T)GetClone(); - } - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - OnDeserialized(context); - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - /// Serialization context object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - // do nothing - this is here so a subclass - // could override if needed - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyListBase.cs deleted file mode 100644 index 4a0e0a7e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyListBase.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - /// - /// This is the base class from which readonly collections - /// of readonly objects should be derived. - /// - /// Type of the list class. - /// Type of child objects contained in the list. - [System.Diagnostics.CodeAnalysis.SuppressMessage( - "Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class ReadOnlyListBase : - Core.ReadOnlyBindingList, Csla.Core.IReadOnlyCollection, - ICloneable - where T : ReadOnlyListBase - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected ReadOnlyListBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - public T Clone() - { - return (T)GetClone(); - } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AccessType.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AccessType.cs deleted file mode 100644 index 93484d70..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AccessType.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace Csla.Security -{ - /// - /// The access types supported by authorization - /// as discussed in Chapter 3. - /// - public enum AccessType - { - /// - /// Roles allowed to read property. - /// - ReadAllowed, - /// - /// Roles denied read access to property. - /// - ReadDenied, - /// - /// Roles allowed to set property. - /// - WriteAllowed, - /// - /// Roles denied write access to property. - /// - WriteDenied - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRules.cs deleted file mode 100644 index 07cc9abf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRules.cs +++ /dev/null @@ -1,324 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains a list of allowed and denied user roles - /// for each property. - /// - /// - [Serializable()] - public class AuthorizationRules - { - - private Type _businessObjectType; - private AuthorizationRulesManager _typeRules; - private AuthorizationRulesManager _instanceRules; - - /// - /// Creates an instance of the object, initializing - /// it with the business object type. - /// - /// - /// Type of the business object to which the rules - /// apply. - /// - public AuthorizationRules(Type businessObjectType) - { - _businessObjectType = businessObjectType; - } - - private AuthorizationRulesManager InstanceRules - { - get - { - if (_instanceRules == null) - _instanceRules = new AuthorizationRulesManager(); - return _instanceRules; - } - } - - private AuthorizationRulesManager TypeRules - { - get - { - if (_typeRules == null) - _typeRules = SharedAuthorizationRules.GetManager(_businessObjectType, true); - return _typeRules; - } - } - - #region Add Per-Instance Roles - - /// - /// Specify the roles allowed to read a given - /// property. - /// - /// Name of the property. - /// List of roles granted read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceAllowRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadAllowed.Add(item); - } - - /// - /// Specify the roles denied read access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceDenyRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadDenied.Add(item); - } - - /// - /// Specify the roles allowed to write a given - /// property. - /// - /// Name of the property. - /// List of roles granted write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceAllowWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteAllowed.Add(item); - } - - /// - /// Specify the roles denied write access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceDenyWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteDenied.Add(item); - } - - #endregion - - #region Add Per-Type Roles - - /// - /// Specify the roles allowed to read a given - /// property. - /// - /// Name of the property. - /// List of roles granted read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void AllowRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadAllowed.Add(item); - } - - /// - /// Specify the roles denied read access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void DenyRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadDenied.Add(item); - } - - /// - /// Specify the roles allowed to write a given - /// property. - /// - /// Name of the property. - /// List of roles granted write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void AllowWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteAllowed.Add(item); - } - - /// - /// Specify the roles denied write access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void DenyWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteDenied.Add(item); - } - - #endregion - - #region Check Roles - - /// - /// Indicates whether the property has a list - /// of roles granted read access. - /// - /// Name of the property. - public bool HasReadAllowedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).ReadAllowed.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).ReadAllowed.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly allowed to read the property. - /// - /// Name of the property. - public bool IsReadAllowed(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsReadAllowed(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsReadAllowed(user); - } - - /// - /// Indicates whether the property has a list - /// of roles denied read access. - /// - /// Name of the property. - public bool HasReadDeniedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).ReadDenied.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).ReadDenied.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly denied read access to the property. - /// - /// Name of the property. - public bool IsReadDenied(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsReadDenied(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsReadDenied(user); - } - - /// - /// Indicates whether the property has a list - /// of roles granted write access. - /// - /// Name of the property. - public bool HasWriteAllowedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).WriteAllowed.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).WriteAllowed.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly allowed to set the property. - /// - /// Name of the property. - public bool IsWriteAllowed(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsWriteAllowed(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsWriteAllowed(user); - } - - /// - /// Indicates whether the property has a list - /// of roles denied write access. - /// - /// Name of the property. - public bool HasWriteDeniedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).WriteDenied.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).WriteDenied.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly denied write access to the property. - /// - /// Name of the property. - public bool IsWriteDenied(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsWriteDenied(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsWriteDenied(user); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRulesManager.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRulesManager.cs deleted file mode 100644 index 5c52e671..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRulesManager.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains authorization roles for a business object - /// or business object type. - /// - public class AuthorizationRulesManager - { - private Dictionary _rules; - - internal Dictionary RulesList - { - get - { - if (_rules == null) - _rules = new Dictionary(); - return _rules; - } - } - - #region Get Roles - - internal RolesForProperty GetRolesForProperty(string propertyName) - { - RolesForProperty currentRoles = null; - if (!RulesList.ContainsKey(propertyName)) - { - currentRoles = new RolesForProperty(); - RulesList.Add(propertyName, currentRoles); - } - else - currentRoles = RulesList[propertyName]; - return currentRoles; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/BusinessPrincipalBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/BusinessPrincipalBase.cs deleted file mode 100644 index 92d75dbc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/BusinessPrincipalBase.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Security.Principal; - -namespace Csla.Security -{ - /// - /// Base class from which custom principal - /// objects should inherit to operate - /// properly with the data portal. - /// - [Serializable()] - public class BusinessPrincipalBase : IPrincipal - { - private IIdentity _identity; - - /// - /// Returns the user's identity object. - /// - public virtual IIdentity Identity - { - get { return _identity; } - } - - /// - /// Returns a value indicating whether the - /// user is in a given role. - /// - /// Name of the role. - public virtual bool IsInRole(string role) - { - return false; - } - - /// - /// Creates an instance of the object. - /// - /// Identity object for the user. - protected BusinessPrincipalBase(IIdentity identity) - { - _identity = identity; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/IAuthorizeReadWrite.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/IAuthorizeReadWrite.cs deleted file mode 100644 index fa232712..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/IAuthorizeReadWrite.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Security -{ - /// - /// Defines the authorization interface through which an - /// object can indicate which properties the current - /// user can read and write. - /// - public interface IAuthorizeReadWrite - { - /// - /// Returns if the user is allowed to write the - /// to the specified property. - /// - /// if write is allowed. - /// Name of the property to read. - bool CanWriteProperty(string propertyName); - /// - /// Returns if the user is allowed to read the - /// specified property. - /// - /// if read is allowed. - /// Name of the property to read. - bool CanReadProperty(string propertyName); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/RolesForProperty.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/RolesForProperty.cs deleted file mode 100644 index d0e7b7c7..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/RolesForProperty.cs +++ /dev/null @@ -1,122 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Security.Principal; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains a list of allowed and denied - /// user roles for a specific property. - /// - /// - [Serializable()] - internal class RolesForProperty - { - private List _readAllowed = new List(); - private List _readDenied = new List(); - private List _writeAllowed = new List(); - private List _writeDenied = new List(); - - /// - /// Returns a List(Of string) containing the list - /// of roles allowed read access. - /// - public List ReadAllowed - { - get { return _readAllowed; } - } - - /// - /// Returns a List(Of string) containing the list - /// of roles denied read access. - /// - public List ReadDenied - { - get { return _readDenied; } - } - - /// - /// Returns a List(Of string) containing the list - /// of roles allowed write access. - /// - public List WriteAllowed - { - get { return _writeAllowed; } - } - - /// - /// Returns a List(Of string) containing the list - /// of roles denied write access. - /// - public List WriteDenied - { - get { return _writeDenied; } - } - - /// - /// Returns if the user is in a role - /// explicitly allowed read access. - /// - /// A - /// representing the user. - /// if the user is allowed read access. - /// - public bool IsReadAllowed(IPrincipal principal) - { - foreach (string role in ReadAllowed) - if (principal.IsInRole(role)) - return true; - return false; - } - - /// - /// Returns if the user is in a role - /// explicitly denied read access. - /// - /// A - /// representing the user. - /// if the user is denied read access. - /// - public bool IsReadDenied(IPrincipal principal) - { - foreach (string role in ReadDenied) - if (principal.IsInRole(role)) - return true; - return false; - } - - /// - /// Returns if the user is in a role - /// explicitly allowed write access. - /// - /// A - /// representing the user. - /// if the user is allowed write access. - /// - public bool IsWriteAllowed(IPrincipal principal) - { - foreach (string role in WriteAllowed) - if (principal.IsInRole(role)) - return true; - return false; - } - - /// - /// Returns if the user is in a role - /// explicitly denied write access. - /// - /// A - /// representing the user. - /// if the user is denied write access. - /// - public bool IsWriteDenied(IPrincipal principal) - { - foreach (string role in WriteDenied) - if (principal.IsInRole(role)) - return true; - return false; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/SharedAuthorizationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/SharedAuthorizationRules.cs deleted file mode 100644 index 8e80cc70..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/SharedAuthorizationRules.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains a list of all the per-type - /// objects - /// loaded in memory. - /// - internal static class SharedAuthorizationRules - { - private static Dictionary _managers = - new Dictionary(); - - /// - /// Gets the for the - /// specified object type, optionally creating a new instance - /// of the object if necessary. - /// - /// - /// Type of business object for which the rules apply. - /// - /// Indicates whether to create - /// a new instance of the object if one doesn't exist. - internal static AuthorizationRulesManager GetManager(Type objectType, bool create) - { - AuthorizationRulesManager result = null; - if (!_managers.TryGetValue(objectType, out result) && create) - { - lock (_managers) - { - result = new AuthorizationRulesManager(); - _managers.Add(objectType, result); - } - } - return result; - } - - /// - /// Gets a value indicating whether a set of rules - /// have been created for a given . - /// - /// - /// Type of business object for which the rules apply. - /// - /// if rules exist for the type. - public static bool RulesExistFor(Type objectType) - { - return _managers.ContainsKey(objectType); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SmartDate.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SmartDate.cs deleted file mode 100644 index 97d2ce76..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SmartDate.cs +++ /dev/null @@ -1,897 +0,0 @@ -using System; -using Csla.Properties; - -namespace Csla -{ - - /// - /// Provides a date data type that understands the concept - /// of an empty date value. - /// - /// - /// See Chapter 5 for a full discussion of the need for this - /// data type and the design choices behind it. - /// - [Serializable()] - public struct SmartDate : IComparable - { - private DateTime _date; - private bool _initialized; - private EmptyValue _emptyValue; - private string _format; - private static string _defaultFormat; - - #region EmptyValue enum - - /// - /// Indicates the empty value of a - /// SmartDate. - /// - public enum EmptyValue - { - /// - /// Indicates that an empty SmartDate - /// is the smallest date. - /// - MinDate, - /// - /// Indicates that an empty SmartDate - /// is the largest date. - /// - MaxDate - } - - #endregion - - #region Constructors - - static SmartDate() - { - _defaultFormat = "d"; - } - - /// - /// Creates a new SmartDate object. - /// - /// Indicates whether an empty date is the min or max date value. - public SmartDate(bool emptyIsMin) - { - _emptyValue = GetEmptyValue(emptyIsMin); - _format = null; - _initialized = false; - // provide a dummy value to allow real initialization - _date = DateTime.MinValue; - SetEmptyDate(_emptyValue); - } - - /// - /// Creates a new SmartDate object. - /// - /// Indicates whether an empty date is the min or max date value. - public SmartDate(EmptyValue emptyValue) - { - _emptyValue = emptyValue; - _format = null; - _initialized = false; - // provide a dummy value to allow real initialization - _date = DateTime.MinValue; - SetEmptyDate(_emptyValue); - } - - /// - /// Creates a new SmartDate object. - /// - /// - /// The SmartDate created will use the min possible - /// date to represent an empty date. - /// - /// The initial value of the object. - public SmartDate(DateTime value) - { - _emptyValue = Csla.SmartDate.EmptyValue.MinDate; - _format = null; - _initialized = false; - _date = DateTime.MinValue; - Date = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object. - /// Indicates whether an empty date is the min or max date value. - public SmartDate(DateTime value, bool emptyIsMin) - { - _emptyValue = GetEmptyValue(emptyIsMin); - _format = null; - _initialized = false; - _date = DateTime.MinValue; - Date = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object. - /// Indicates whether an empty date is the min or max date value. - public SmartDate(DateTime value, EmptyValue emptyValue) - { - _emptyValue = emptyValue; - _format = null; - _initialized = false; - _date = DateTime.MinValue; - Date = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// - /// The SmartDate created will use the min possible - /// date to represent an empty date. - /// - /// The initial value of the object (as text). - public SmartDate(string value) - { - _emptyValue = EmptyValue.MinDate; - _format = null; - _initialized = true; - _date = DateTime.MinValue; - this.Text = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object (as text). - /// Indicates whether an empty date is the min or max date value. - public SmartDate(string value, bool emptyIsMin) - { - _emptyValue = GetEmptyValue(emptyIsMin); - _format = null; - _initialized = true; - _date = DateTime.MinValue; - this.Text = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object (as text). - /// Indicates whether an empty date is the min or max date value. - public SmartDate(string value, EmptyValue emptyValue) - { - _emptyValue = emptyValue; - _format = null; - _initialized = true; - _date = DateTime.MinValue; - this.Text = value; - } - - private static EmptyValue GetEmptyValue(bool emptyIsMin) - { - if (emptyIsMin) - return EmptyValue.MinDate; - else - return EmptyValue.MaxDate; - } - - private void SetEmptyDate(EmptyValue emptyValue) - { - if (emptyValue == SmartDate.EmptyValue.MinDate) - this.Date = DateTime.MinValue; - else - this.Date = DateTime.MaxValue; - } - - #endregion - - #region Text Support - - /// - /// Sets the global default format string used by all new - /// SmartDate values going forward. - /// - /// - /// The default global format string is "d" unless this - /// method is called to change that value. Existing SmartDate - /// values are unaffected by this method, only SmartDate - /// values created after calling this method are affected. - /// - /// - /// The format string should follow the requirements for the - /// .NET System.String.Format statement. - /// - public static void SetDefaultFormatString(string formatString) - { - _defaultFormat = formatString; - } - - /// - /// Gets or sets the format string used to format a date - /// value when it is returned as text. - /// - /// - /// The format string should follow the requirements for the - /// .NET System.String.Format statement. - /// - /// A format string. - public string FormatString - { - get - { - if (_format == null) - _format = _defaultFormat; - return _format; - } - set - { - _format = value; - } - } - - /// - /// Gets or sets the date value. - /// - /// - /// - /// This property can be used to set the date value by passing a - /// text representation of the date. Any text date representation - /// that can be parsed by the .NET runtime is valid. - /// - /// When the date value is retrieved via this property, the text - /// is formatted by using the format specified by the - /// property. The default is the - /// short date format (d). - /// - /// - public string Text - { - get { return DateToString(this.Date, FormatString, _emptyValue); } - set { this.Date = StringToDate(value, _emptyValue); } - } - - #endregion - - #region Date Support - - /// - /// Gets or sets the date value. - /// - public DateTime Date - { - get - { - if (!_initialized) - { - _date = DateTime.MinValue; - _initialized = true; - } - return _date; - } - set - { - _date = value; - _initialized = true; - } - } - - #endregion - - #region System.Object overrides - - /// - /// Returns a text representation of the date value. - /// - public override string ToString() - { - return this.Text; - } - - /// - /// Returns a text representation of the date value. - /// - /// - /// A standard .NET format string. - /// - public string ToString(string format) - { - return DateToString(this.Date, format, _emptyValue); - } - - /// - /// Compares this object to another - /// for equality. - /// - /// Object to compare for equality. - public override bool Equals(object obj) - { - if (obj is SmartDate) - { - SmartDate tmp = (SmartDate)obj; - if (this.IsEmpty && tmp.IsEmpty) - return true; - else - return this.Date.Equals(tmp.Date); - } - else if (obj is DateTime) - return this.Date.Equals((DateTime)obj); - else if (obj is string) - return (this.CompareTo(obj.ToString()) == 0); - else - return false; - } - - /// - /// Returns a hash code for this object. - /// - public override int GetHashCode() - { - return this.Date.GetHashCode(); - } - - #endregion - - #region DBValue - - /// - /// Gets a database-friendly version of the date value. - /// - /// - /// - /// If the SmartDate contains an empty date, this returns . - /// Otherwise the actual date value is returned as type Date. - /// - /// This property is very useful when setting parameter values for - /// a Command object, since it automatically stores null values into - /// the database for empty date values. - /// - /// When you also use the SafeDataReader and its GetSmartDate method, - /// you can easily read a null value from the database back into a - /// SmartDate object so it remains considered as an empty date value. - /// - /// - public object DBValue - { - get - { - if (this.IsEmpty) - return DBNull.Value; - else - return this.Date; - } - } - - #endregion - - #region Empty Dates - - /// - /// Gets a value indicating whether this object contains an empty date. - /// - public bool IsEmpty - { - get - { - if (_emptyValue == EmptyValue.MinDate) - return this.Date.Equals(DateTime.MinValue); - else - return this.Date.Equals(DateTime.MaxValue); - } - } - - /// - /// Gets a value indicating whether an empty date is the - /// min or max possible date value. - /// - /// - /// Whether an empty date is considered to be the smallest or largest possible - /// date is only important for comparison operations. This allows you to - /// compare an empty date with a real date and get a meaningful result. - /// - public bool EmptyIsMin - { - get { return (_emptyValue == EmptyValue.MinDate); } - } - - #endregion - - #region Conversion Functions - - /// - /// Converts a string value into a SmartDate. - /// - /// String containing the date value. - /// A new SmartDate containing the date value. - /// - /// EmptyIsMin will default to . - /// - public static SmartDate Parse(string value) - { - return new SmartDate(value); - } - - /// - /// Converts a string value into a SmartDate. - /// - /// String containing the date value. - /// Indicates whether an empty date is the min or max date value. - /// A new SmartDate containing the date value. - public static SmartDate Parse(string value, bool emptyIsMin) - { - return new SmartDate(value, emptyIsMin); - } - - /// - /// Converts a text date representation into a Date value. - /// - /// - /// An empty string is assumed to represent an empty date. An empty date - /// is returned as the MinValue of the Date datatype. - /// - /// The text representation of the date. - /// A Date value. - public static DateTime StringToDate(string value) - { - return StringToDate(value, true); - } - - /// - /// Converts a text date representation into a Date value. - /// - /// - /// An empty string is assumed to represent an empty date. An empty date - /// is returned as the MinValue or MaxValue of the Date datatype depending - /// on the EmptyIsMin parameter. - /// - /// The text representation of the date. - /// Indicates whether an empty date is the min or max date value. - /// A Date value. - public static DateTime StringToDate(string value, bool emptyIsMin) - { - return StringToDate(value, GetEmptyValue(emptyIsMin)); - } - - /// - /// Converts a text date representation into a Date value. - /// - /// - /// An empty string is assumed to represent an empty date. An empty date - /// is returned as the MinValue or MaxValue of the Date datatype depending - /// on the EmptyIsMin parameter. - /// - /// The text representation of the date. - /// Indicates whether an empty date is the min or max date value. - /// A Date value. - public static DateTime StringToDate(string value, EmptyValue emptyValue) - { - DateTime tmp; - if (String.IsNullOrEmpty(value)) - { - if (emptyValue == EmptyValue.MinDate) - return DateTime.MinValue; - else - return DateTime.MaxValue; - } - else if (DateTime.TryParse(value, out tmp)) - return tmp; - else - { - string ldate = value.Trim().ToLower(); - if (ldate == Resources.SmartDateT || - ldate == Resources.SmartDateToday || - ldate == ".") - return DateTime.Now; - if (ldate == Resources.SmartDateY || - ldate == Resources.SmartDateYesterday || - ldate == "-") - return DateTime.Now.AddDays(-1); - if (ldate == Resources.SmartDateTom || - ldate == Resources.SmartDateTomorrow || - ldate == "+") - return DateTime.Now.AddDays(1); - throw new ArgumentException(Resources.StringToDateException); - } - } - - /// - /// Converts a date value into a text representation. - /// - /// - /// The date is considered empty if it matches the min value for - /// the Date datatype. If the date is empty, this - /// method returns an empty string. Otherwise it returns the date - /// value formatted based on the FormatString parameter. - /// - /// The date value to convert. - /// The format string used to format the date into text. - /// Text representation of the date value. - public static string DateToString( - DateTime value, string formatString) - { - return DateToString(value, formatString, true); - } - - /// - /// Converts a date value into a text representation. - /// - /// - /// Whether the date value is considered empty is determined by - /// the EmptyIsMin parameter value. If the date is empty, this - /// method returns an empty string. Otherwise it returns the date - /// value formatted based on the FormatString parameter. - /// - /// The date value to convert. - /// The format string used to format the date into text. - /// Indicates whether an empty date is the min or max date value. - /// Text representation of the date value. - public static string DateToString( - DateTime value, string formatString, bool emptyIsMin) - { - return DateToString(value, formatString, GetEmptyValue(emptyIsMin)); - } - - /// - /// Converts a date value into a text representation. - /// - /// - /// Whether the date value is considered empty is determined by - /// the EmptyIsMin parameter value. If the date is empty, this - /// method returns an empty string. Otherwise it returns the date - /// value formatted based on the FormatString parameter. - /// - /// The date value to convert. - /// The format string used to format the date into text. - /// Indicates whether an empty date is the min or max date value. - /// Text representation of the date value. - public static string DateToString( - DateTime value, string formatString, EmptyValue emptyValue) - { - if (emptyValue == EmptyValue.MinDate) - { - if (value == DateTime.MinValue) - return string.Empty; - } - else - { - if (value == DateTime.MaxValue) - return string.Empty; - } - return string.Format("{0:" + formatString + "}", value); - } - - #endregion - - #region Manipulation Functions - - /// - /// Compares one SmartDate to another. - /// - /// - /// This method works the same as the DateTime.CompareTo method - /// on the Date datetype, with the exception that it - /// understands the concept of empty date values. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - public int CompareTo(SmartDate value) - { - if (this.IsEmpty && value.IsEmpty) - return 0; - else - return _date.CompareTo(value.Date); - } - - /// - /// Compares one SmartDate to another. - /// - /// - /// This method works the same as the DateTime.CompareTo method - /// on the Date datetype, with the exception that it - /// understands the concept of empty date values. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - int IComparable.CompareTo(object value) - { - if (value is SmartDate) - return CompareTo((SmartDate)value); - else - throw new ArgumentException(Resources.ValueNotSmartDateException); - } - - /// - /// Compares a SmartDate to a text date value. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - public int CompareTo(string value) - { - return this.Date.CompareTo(StringToDate(value, _emptyValue)); - } - - /// - /// Compares a SmartDate to a date value. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - public int CompareTo(DateTime value) - { - return this.Date.CompareTo(value); - } - - /// - /// Adds a TimeSpan onto the object. - /// - /// Span to add to the date. - public DateTime Add(TimeSpan value) - { - if (IsEmpty) - return this.Date; - else - return this.Date.Add(value); - } - - /// - /// Subtracts a TimeSpan from the object. - /// - /// Span to subtract from the date. - public DateTime Subtract(TimeSpan value) - { - if (IsEmpty) - return this.Date; - else - return this.Date.Subtract(value); - } - - /// - /// Subtracts a DateTime from the object. - /// - /// Date to subtract from the date. - public TimeSpan Subtract(DateTime value) - { - if (IsEmpty) - return TimeSpan.Zero; - else - return this.Date.Subtract(value); - } - - #endregion - - #region Operators - - /// - /// Equality operator - /// - /// First object - /// Second object - /// - public static bool operator ==(SmartDate obj1, SmartDate obj2) - { - return obj1.Equals(obj2); - } - - /// - /// Inequality operator - /// - /// First object - /// Second object - /// - public static bool operator !=(SmartDate obj1, SmartDate obj2) - { - return !obj1.Equals(obj2); - } - - /// - /// Equality operator - /// - /// First object - /// Second object - /// - public static bool operator ==(SmartDate obj1, DateTime obj2) - { - return obj1.Equals(obj2); - } - - /// - /// Inequality operator - /// - /// First object - /// Second object - /// - public static bool operator !=(SmartDate obj1, DateTime obj2) - { - return !obj1.Equals(obj2); - } - - /// - /// Equality operator - /// - /// First object - /// Second object - /// - public static bool operator ==(SmartDate obj1, string obj2) - { - return obj1.Equals(obj2); - } - - /// - /// Inequality operator - /// - /// First object - /// Second object - /// - public static bool operator !=(SmartDate obj1, string obj2) - { - return !obj1.Equals(obj2); - } - - /// - /// Addition operator - /// - /// Original date/time - /// Span to add - /// - public static SmartDate operator +(SmartDate start, TimeSpan span) - { - return new SmartDate(start.Add(span), start.EmptyIsMin); - } - - /// - /// Subtraction operator - /// - /// Original date/time - /// Span to subtract - /// - public static SmartDate operator -(SmartDate start, TimeSpan span) - { - return new SmartDate(start.Subtract(span), start.EmptyIsMin); - } - - /// - /// Subtraction operator - /// - /// Original date/time - /// Second date/time - /// - public static TimeSpan operator -(SmartDate start, SmartDate finish) - { - return start.Subtract(finish.Date); - } - - /// - /// Greater than operator - /// - /// First object - /// Second object - /// - public static bool operator >(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) > 0; - } - - /// - /// Less than operator - /// - /// First object - /// Second object - /// - public static bool operator <(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) < 0; - } - - /// - /// Greater than operator - /// - /// First object - /// Second object - /// - public static bool operator >(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) > 0; - } - - /// - /// Less than operator - /// - /// First object - /// Second object - /// - public static bool operator <(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) < 0; - } - - /// - /// Greater than operator - /// - /// First object - /// Second object - /// - public static bool operator >(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) > 0; - } - - /// - /// Less than operator - /// - /// First object - /// Second object - /// - public static bool operator <(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) < 0; - } - - /// - /// Greater than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator >=(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) >= 0; - } - - /// - /// Less than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator <=(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) <= 0; - } - - /// - /// Greater than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator >=(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) >= 0; - } - - /// - /// Less than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator <=(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) <= 0; - } - - /// - /// Greater than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator >=(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) >= 0; - } - - /// - /// Less than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator <=(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) <= 0; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SortedBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SortedBindingList.cs deleted file mode 100644 index 1132c133..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SortedBindingList.cs +++ /dev/null @@ -1,836 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Reflection; -using System.Collections; - -namespace Csla -{ - - /// - /// Provides a sorted view into an existing IList(Of T). - /// - /// - /// Type of child object contained by - /// the original list or collection. - /// - public class SortedBindingList : - IList, IBindingList, IEnumerable, ICancelAddNew - { - - #region ListItem class - - private class ListItem : IComparable - { - - private object _key; - private int _baseIndex; - - public object Key - { - get { return _key; } - } - - public int BaseIndex - { - get { return _baseIndex; } - set { _baseIndex = value; } - } - - public ListItem(object key, int baseIndex) - { - _key = key; - _baseIndex = baseIndex; - } - - public int CompareTo(ListItem other) - { - object target = other.Key; - - if (Key is IComparable) - return ((IComparable)Key).CompareTo(target); - - else - { - if (Key == null) - return 0; - else if (Key.Equals(target)) - return 0; - else - return Key.ToString().CompareTo(target.ToString()); - } - } - - public override string ToString() - { - return Key.ToString(); - } - - } - - #endregion - - #region Sorted enumerator - - private class SortedEnumerator : IEnumerator - { - private IList _list; - private List _sortIndex; - private ListSortDirection _sortOrder; - private int _index; - - public SortedEnumerator( - IList list, - List sortIndex, - ListSortDirection direction) - { - _list = list; - _sortIndex = sortIndex; - _sortOrder = direction; - Reset(); - } - - public T Current - { - get { return _list[_sortIndex[_index].BaseIndex]; } - } - - Object System.Collections.IEnumerator.Current - { - get { return _list[_sortIndex[_index].BaseIndex]; } - } - - public bool MoveNext() - { - if (_sortOrder == ListSortDirection.Ascending) - { - if (_index < _sortIndex.Count - 1) - { - _index++; - return true; - } - else - return false; - } - else - { - if (_index > 0) - { - _index--; - return true; - } - else - return false; - } - } - - public void Reset() - { - if (_sortOrder == ListSortDirection.Ascending) - _index = -1; - else - _index = _sortIndex.Count; - } - - #region IDisposable Support - - private bool _disposedValue = false; // To detect redundant calls. - - // IDisposable - protected virtual void Dispose(bool disposing) - { - if (!_disposedValue) - { - if (disposing) - { - // TODO: free unmanaged resources when explicitly called - } - // TODO: free shared unmanaged resources - } - _disposedValue = true; - } - - // this code added to correctly implement the disposable pattern. - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - GC.SuppressFinalize(this); - } - - ~SortedEnumerator() - { - Dispose(false); - } - - #endregion - - } - - #endregion - - #region Sort/Unsort - - private void DoSort() - { - int index = 0; - _sortIndex.Clear(); - - if (_sortBy == null) - { - foreach (T obj in _list) - { - _sortIndex.Add(new ListItem(obj, index)); - index++; - } - } - else - { - foreach (T obj in _list) - { - _sortIndex.Add(new ListItem(_sortBy.GetValue(obj), index)); - index++; - } - } - - _sortIndex.Sort(); - _sorted = true; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - private void UndoSort() - { - _sortIndex.Clear(); - _sortBy = null; - _sortOrder = ListSortDirection.Ascending; - _sorted = false; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - #endregion - - #region IEnumerable - - /// - /// Returns an enumerator for the list, honoring - /// any sort that is active at the time. - /// - public IEnumerator GetEnumerator() - { - if (_sorted) - return new SortedEnumerator(_list, _sortIndex, _sortOrder); - else - return _list.GetEnumerator(); - } - - #endregion - - #region IBindingList, IList - - /// - /// Implemented by IList source object. - /// - /// Property on which - /// to build the index. - public void AddIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.AddIndex(property); - } - - /// - /// Implemented by IList source object. - /// - public object AddNew() - { - object result; - if (_supportsBinding) - { - _initiatedLocally = true; - result = _bindingList.AddNew(); - _initiatedLocally = false; - OnListChanged( - new ListChangedEventArgs( - ListChangedType.ItemAdded, _bindingList.Count - 1)); - } - else - result = null; - - return result; - } - - /// - /// Implemented by IList source object. - /// - public bool AllowEdit - { - get - { - if (_supportsBinding) - return _bindingList.AllowEdit; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowNew - { - get - { - if (_supportsBinding) - return _bindingList.AllowNew; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowRemove - { - get - { - if (_supportsBinding) - return _bindingList.AllowRemove; - else - return false; - } - } - - /// - /// Applies a sort to the view. - /// - /// The text name of the property on which to sort. - /// The direction to sort the data. - public void ApplySort(string propertyName, ListSortDirection direction) - { - _sortBy = null; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in - TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - _sortBy = prop; - break; - } - } - } - - ApplySort(_sortBy, direction); - - } - - /// - /// Applies a sort to the view. - /// - /// A PropertyDescriptor for the property on which to sort. - /// The direction to sort the data. - public void ApplySort( - PropertyDescriptor property, ListSortDirection direction) - { - _sortBy = property; - _sortOrder = direction; - DoSort(); - } - - /// - /// Finds an item in the view - /// - /// Name of the property to search - /// Value to find - public int Find(string propertyName, object key) - { - PropertyDescriptor findProperty = null; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - findProperty = prop; - break; - } - } - } - - return Find(findProperty, key); - - } - - /// - /// Implemented by IList source object. - /// - /// Key value for which to search. - /// Property to search for the key - /// value. - public int Find(PropertyDescriptor property, object key) - { - if (_supportsBinding) - return SortedIndex(_bindingList.Find(property, key)); - else - return -1; - } - - /// - /// Gets a value indicating whether the view is currently sorted. - /// - public bool IsSorted - { - get { return _sorted; } - } - - /// - /// Raised to indicate that the list's data has changed. - /// - /// - /// This event is raised if the underling IList object's data changes - /// (assuming the underling IList also implements the IBindingList - /// interface). It is also raised if the sort property or direction - /// is changed to indicate that the view's data has changed. See - /// Chapter 5 for details. - /// - public event ListChangedEventHandler ListChanged; - - /// - /// Raises the event. - /// - /// Event arguments. - protected void OnListChanged(ListChangedEventArgs e) - { - if (ListChanged != null) - ListChanged(this, e); - } - - /// - /// Implemented by IList source object. - /// - /// Property for which the - /// index should be removed. - public void RemoveIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.RemoveIndex(property); - } - - /// - /// Removes any sort currently applied to the view. - /// - public void RemoveSort() - { - UndoSort(); - } - - /// - /// Returns the direction of the current sort. - /// - public ListSortDirection SortDirection - { - get { return _sortOrder; } - } - - /// - /// Returns the PropertyDescriptor of the current sort. - /// - public PropertyDescriptor SortProperty - { - get { return _sortBy; } - } - - /// - /// Returns since this object does raise the - /// ListChanged event. - /// - public bool SupportsChangeNotification - { - get { return true; } - } - - /// - /// Implemented by IList source object. - /// - public bool SupportsSearching - { - get - { - if (_supportsBinding) - return _bindingList.SupportsSearching; - else - return false; - } - } - - /// - /// Returns . Sorting is supported. - /// - public bool SupportsSorting - { - get { return true; } - } - - /// - /// Implemented by IList source object. - /// - /// Array to receive the data. - /// Starting array index. - public void CopyTo(T[] array, int arrayIndex) - { - _list.CopyTo(array, arrayIndex); - } - - void System.Collections.ICollection.CopyTo(System.Array array, int index) - { - CopyTo((T[])array, index); - } - - /// - /// Implemented by IList source object. - /// - public int Count - { - get { return _list.Count; } - } - - bool System.Collections.ICollection.IsSynchronized - { - get { return false; } - } - - object System.Collections.ICollection.SyncRoot - { - get { return _list; } - } - - IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - /// - /// Implemented by IList source object. - /// - /// Item to add to the list. - public void Add(T item) - { - _list.Add(item); - } - - int System.Collections.IList.Add(object value) - { - Add((T)value); - return SortedIndex(_list.Count - 1); - } - - /// - /// Implemented by IList source object. - /// - public void Clear() - { - _list.Clear(); - } - - /// - /// Implemented by IList source object. - /// - /// Item for which to search. - public bool Contains(T item) - { - return _list.Contains(item); - } - - bool System.Collections.IList.Contains(object value) - { - return Contains((T)value); - } - - /// - /// Implemented by IList source object. - /// - /// Item for which to search. - public int IndexOf(T item) - { - return SortedIndex(_list.IndexOf(item)); - } - - int System.Collections.IList.IndexOf(object value) - { - return IndexOf((T)value); - } - - /// - /// Implemented by IList source object. - /// - /// Index at - /// which to insert the item. - /// Item to insert. - public void Insert(int index, T item) - { - _list.Insert(index, item); - } - - void System.Collections.IList.Insert(int index, object value) - { - Insert(index, (T)value); - } - - bool System.Collections.IList.IsFixedSize - { - get { return false; } - } - - /// - /// Implemented by IList source object. - /// - public bool IsReadOnly - { - get { return _list.IsReadOnly; } - } - - object System.Collections.IList.this[int index] - { - get - { - return this[index]; - } - set - { - this[index] = (T)value; - } - } - - /// - /// Implemented by IList source object. - /// - /// Item to be removed. - public bool Remove(T item) - { - return _list.Remove(item); - } - - void System.Collections.IList.Remove(object value) - { - Remove((T)value); - } - - /// - /// Removes the child object at the specified index - /// in the list, resorting the display as needed. - /// - /// The index of the object to remove. - /// - /// See Chapter 5 for details on how and why the list is - /// altered during the remove process. - /// - public void RemoveAt(int index) - { - if (_sorted) - { - _initiatedLocally = true; - int baseIndex = OriginalIndex(index); - - // remove the item from the source list - _list.RemoveAt(baseIndex); - - if (_list.Count != _sortIndex.Count) - { - // delete the corresponding value in the sort index - if (_sortOrder == ListSortDirection.Ascending) - _sortIndex.RemoveAt(index); - else - _sortIndex.RemoveAt(_sortIndex.Count - 1 - index); - - // now fix up all index pointers in the sort index - foreach (ListItem item in _sortIndex) - if (item.BaseIndex > baseIndex) - item.BaseIndex -= 1; - } - - OnListChanged(new ListChangedEventArgs( - ListChangedType.ItemDeleted, index)); - _initiatedLocally = false; - } - else - _list.RemoveAt(index); - } - - /// - /// Gets the child item at the specified index in the list, - /// honoring the sort order of the items. - /// - /// The index of the item in the sorted list. - public T this[int index] - { - get - { - if (_sorted) - return _list[OriginalIndex(index)]; - else - return _list[index]; - } - set - { - if (_sorted) - _list[OriginalIndex(index)] = value; - else - _list[index] = value; - } - } - - #endregion - - private IList _list; - private bool _supportsBinding; - private IBindingList _bindingList; - private bool _sorted; - private bool _initiatedLocally; - private PropertyDescriptor _sortBy; - private ListSortDirection _sortOrder = - ListSortDirection.Ascending; - private List _sortIndex = - new List(); - - - /// - /// Creates a new view based on the provided IList object. - /// - /// The IList (collection) containing the data. - public SortedBindingList(IList list) - { - _list = list; - - if (_list is IBindingList) - { - _supportsBinding = true; - _bindingList = (IBindingList)_list; - _bindingList.ListChanged += - new ListChangedEventHandler(SourceChanged); - } - } - - private void SourceChanged( - object sender, ListChangedEventArgs e) - { - if (_sorted) - { - switch (e.ListChangedType) - { - case ListChangedType.ItemAdded: - T newItem = _list[e.NewIndex]; - if (e.NewIndex == _list.Count - 1) - { - object newKey; - if (_sortBy != null) - newKey = _sortBy.GetValue(newItem); - else - newKey = newItem; - - if (_sortOrder == ListSortDirection.Ascending) - _sortIndex.Add( - new ListItem(newKey, e.NewIndex)); - else - _sortIndex.Insert(0, - new ListItem(newKey, e.NewIndex)); - if (!_initiatedLocally) - OnListChanged( - new ListChangedEventArgs( - ListChangedType.ItemAdded, - SortedIndex(e.NewIndex))); - } - else - DoSort(); - break; - - case ListChangedType.ItemChanged: - // an item changed - just relay the event with - // a translated index value - OnListChanged( - new ListChangedEventArgs( - ListChangedType.ItemChanged, SortedIndex(e.NewIndex))); - break; - - case ListChangedType.ItemDeleted: - if (!_initiatedLocally) - DoSort(); - break; - - default: - // for anything other than add, delete or change - // just re-sort the list - if (!_initiatedLocally) - DoSort(); - break; - } - } - else - OnListChanged(e); - } - - private int OriginalIndex(int sortedIndex) - { - if (_sorted) - { - if (_sortOrder == ListSortDirection.Ascending) - return _sortIndex[sortedIndex].BaseIndex; - else - return _sortIndex[_sortIndex.Count - 1 - sortedIndex].BaseIndex; - } - else - return sortedIndex; - } - - private int SortedIndex(int originalIndex) - { - int result = 0; - if (_sorted) - { - for (int index = 0; index < _sortIndex.Count; index++) - { - if (_sortIndex[index].BaseIndex == originalIndex) - { - result = index; - break; - } - } - if (_sortOrder == ListSortDirection.Descending) - result = _sortIndex.Count - 1 - result; - } - else - result = originalIndex; - return result; - - } - - #region ICancelAddNew Members - - void ICancelAddNew.CancelNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.CancelNew(itemIndex); - else - _list.RemoveAt(itemIndex); - } - - void ICancelAddNew.EndNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.EndNew(itemIndex); - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Utilities.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Utilities.cs deleted file mode 100644 index 46f1917d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Utilities.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Reflection; - -namespace Csla -{ - /// - /// Contains utility methods used by the - /// CSLA .NET framework. - /// - public static class Utilities - { - #region Replacements for VB runtime functionality - - /// - /// Determines whether the specified - /// value can be converted to a valid number. - /// - public static bool IsNumeric(object value) - { - double dbl; - return double.TryParse(value.ToString(), System.Globalization.NumberStyles.Any, - System.Globalization.NumberFormatInfo.InvariantInfo, out dbl); - } - - /// - /// Allows late bound invocation of - /// properties and methods. - /// - /// Object implementing the property or method. - /// Name of the property or method. - /// Specifies how to invoke the property or method. - /// List of arguments to pass to the method. - /// The result of the property or method invocation. - public static object CallByName( - object target, string methodName, CallType callType, - params object[] args) - { - switch (callType) - { - case CallType.Get: - { - PropertyInfo p = target.GetType().GetProperty(methodName); - return p.GetValue(target, args); - } - case CallType.Let: - case CallType.Set: - { - PropertyInfo p = target.GetType().GetProperty(methodName); - object[] index = null; - args.CopyTo(index, 1); - p.SetValue(target, args[0], index); - return null; - } - case CallType.Method: - { - MethodInfo m = target.GetType().GetMethod(methodName); - return m.Invoke(target, args); - } - } - return null; - } - - #endregion - - /// - /// Returns a property's type, dealing with - /// Nullable(Of T) if necessary. - /// - /// Type of the - /// property as returned by reflection. - public static Type GetPropertyType(Type propertyType) - { - Type type = propertyType; - if (type.IsGenericType && - (type.GetGenericTypeDefinition() == typeof(Nullable<>))) - return Nullable.GetUnderlyingType(type); - return type; - } - - /// - /// Returns the type of child object - /// contained in a collection or list. - /// - /// Type of the list. - public static Type GetChildItemType(Type listType) - { - Type result = null; - if (listType.IsArray) - result = listType.GetElementType(); - else - { - DefaultMemberAttribute indexer = - (DefaultMemberAttribute)Attribute.GetCustomAttribute( - listType, typeof(DefaultMemberAttribute)); - if (indexer != null) - foreach (PropertyInfo prop in listType.GetProperties( - BindingFlags.Public | - BindingFlags.Instance | - BindingFlags.FlattenHierarchy)) - { - if (prop.Name == indexer.MemberName) - result = Utilities.GetPropertyType(prop.PropertyType); - } - } - return result; - } - } - - /// - /// Valid options for calling a property or method - /// via the method. - /// - public enum CallType - { - /// - /// Gets a value from a property. - /// - Get, - /// - /// Sets a value into a property. - /// - Let, - /// - /// Invokes a method. - /// - Method, - /// - /// Sets a value into a property. - /// - Set - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRule.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRule.cs deleted file mode 100644 index 11f8b408..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRule.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Validation -{ - /// - /// Stores details about a specific broken business rule. - /// - [Serializable()] - public class BrokenRule - { - private string _ruleName; - private string _description; - private string _property; - private RuleSeverity _severity; - - internal BrokenRule(IRuleMethod rule) - { - _ruleName = rule.RuleName; - _description = rule.RuleArgs.Description; - _property = rule.RuleArgs.PropertyName; - _severity = rule.RuleArgs.Severity; - } - - /// - /// Provides access to the name of the broken rule. - /// - /// The name of the rule. - public string RuleName - { - get { return _ruleName; } - } - - /// - /// Provides access to the description of the broken rule. - /// - /// The description of the rule. - public string Description - { - get { return _description; } - } - - /// - /// Provides access to the property affected by the broken rule. - /// - /// The property affected by the rule. - public string Property - { - get { return _property; } - } - - /// - /// Gets the severity of the broken rule. - /// - /// - /// - /// - public RuleSeverity Severity - { - get { return _severity; } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRulesCollection.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRulesCollection.cs deleted file mode 100644 index eea413fa..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRulesCollection.cs +++ /dev/null @@ -1,255 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - /// - /// A collection of currently broken rules. - /// - /// - /// This collection is readonly and can be safely made available - /// to code outside the business object such as the UI. This allows - /// external code, such as a UI, to display the list of broken rules - /// to the user. - /// - [Serializable()] - public class BrokenRulesCollection : Core.ReadOnlyBindingList - { - - private int _errorCount; - private int _warningCount; - private int _infoCount; - - /// - /// Gets the number of broken rules in - /// the collection that have a severity - /// of Error. - /// - /// An integer value. - public int ErrorCount - { - get { return _errorCount; } - } - - /// - /// Gets the number of broken rules in - /// the collection that have a severity - /// of Warning. - /// - /// An integer value. - public int WarningCount - { - get { return _warningCount; } - } - - /// - /// Gets the number of broken rules in - /// the collection that have a severity - /// of Information. - /// - /// An integer value. - public int InformationCount - { - get { return _infoCount; } - } - - /// - /// Returns the first object - /// corresponding to the specified property. - /// - /// - /// Code in a business object or UI can also use this value to retrieve - /// the first broken rule in that corresponds - /// to a specfic property on the object. - /// - /// The name of the property affected by the rule. - /// - /// The first BrokenRule object corresponding to the specified property, or null if - /// there are no rules defined for the property. - /// - public BrokenRule GetFirstBrokenRule(string property) - { - return GetFirstMessage(property, RuleSeverity.Error); - } - - /// - /// Returns the first object - /// corresponding to the specified property. - /// - /// - /// Code in a business object or UI can also use this value to retrieve - /// the first broken rule in that corresponds - /// to a specfic property. - /// - /// The name of the property affected by the rule. - /// - /// The first BrokenRule object corresponding to the specified property, or Nothing - /// (null in C#) if there are no rules defined for the property. - /// - public BrokenRule GetFirstMessage(string property) - { - foreach (BrokenRule item in this) - if (item.Property == property) - return item; - return null; - } - - /// - /// Returns the first object - /// corresponding to the specified property - /// and severity. - /// - /// The name of the property affected by the rule. - /// The severity of broken rule to return. - /// - /// The first BrokenRule object corresponding to the specified property, or Nothing - /// (null in C#) if there are no rules defined for the property. - /// - public BrokenRule GetFirstMessage(string property, RuleSeverity severity) - { - foreach (BrokenRule item in this) - if (item.Property == property && item.Severity == severity) - return item; - return null; - } - - internal BrokenRulesCollection() - { - // limit creation to this assembly - } - - internal void Add(IRuleMethod rule) - { - Remove(rule); - IsReadOnly = false; - BrokenRule item = new BrokenRule(rule); - IncrementCount(item); - Add(item); - IsReadOnly = true; - } - - internal void Remove(IRuleMethod rule) - { - // we loop through using a numeric counter because - // removing items within a foreach isn't reliable - IsReadOnly = false; - for (int index = 0; index < Count; index++) - if (this[index].RuleName == rule.RuleName) - { - DecrementCount(this[index]); - RemoveAt(index); - break; - } - IsReadOnly = true; - } - - private void IncrementCount(BrokenRule item) - { - switch (item.Severity) - { - case RuleSeverity.Error: - _errorCount += 1; - break; - case RuleSeverity.Warning: - _warningCount += 1; - break; - case RuleSeverity.Information: - _infoCount += 1; - break; - } - } - - private void DecrementCount(BrokenRule item) - { - switch (item.Severity) - { - case RuleSeverity.Error: - _errorCount -= 1; - break; - case RuleSeverity.Warning: - _warningCount -= 1; - break; - case RuleSeverity.Information: - _infoCount -= 1; - break; - } - } - - /// - /// Returns the text of all broken rule descriptions, each - /// separated by a . - /// - /// The text of all broken rule descriptions. - public override string ToString() - { - System.Text.StringBuilder result = new System.Text.StringBuilder(); - bool first = true; - foreach (BrokenRule item in this) - { - if (first) - first = false; - else - result.Append(Environment.NewLine); - result.Append(item.Description); - } - return result.ToString(); - } - - /// - /// Returns the text of all broken rule descriptions, each - /// separated by a . - /// - /// The severity of rules to - /// include in the result. - /// The text of all broken rule descriptions - /// matching the specified severtiy. - public string ToString(RuleSeverity severity) - { - System.Text.StringBuilder result = new System.Text.StringBuilder(); - bool first = true; - foreach (BrokenRule item in this) - { - if (item.Severity == severity) - { - if (first) - first = false; - else - result.Append(Environment.NewLine); - result.Append(item.Description); - } - } - return result.ToString(); - } - - /// - /// Returns a string array containing all broken - /// rule descriptions. - /// - /// The text of all broken rule descriptions - /// matching the specified severtiy. - public string[] ToArray() - { - List result = new List(); - foreach (BrokenRule item in this) - result.Add(item.Description); - return result.ToArray(); - } - - /// - /// Returns a string array containing all broken - /// rule descriptions. - /// - /// The severity of rules - /// to include in the result. - /// The text of all broken rule descriptions - /// matching the specified severtiy. - public string[] ToArray(RuleSeverity severity) - { - List result = new List(); - foreach (BrokenRule item in this) - if (item.Severity == severity) - result.Add(item.Description); - return result.ToArray(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/CommonRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/CommonRules.cs deleted file mode 100644 index a6723a93..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/CommonRules.cs +++ /dev/null @@ -1,491 +0,0 @@ -using System; -using Csla.Properties; -using System.Text.RegularExpressions; -using System.Reflection; - -namespace Csla.Validation -{ - /// - /// Implements common business rules. - /// - public static class CommonRules - { - - #region StringRequired - - /// - /// Rule ensuring a string value contains one or more - /// characters. - /// - /// Object containing the data to validate - /// Arguments parameter specifying the name of the string - /// property to validate - /// if the rule is broken - /// - /// This implementation uses late binding, and will only work - /// against string property values. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - public static bool StringRequired(object target, RuleArgs e) - { - string value = (string)Utilities.CallByName( - target, e.PropertyName, CallType.Get); - if (string.IsNullOrEmpty(value)) - { - e.Description = string.Format(Resources.StringRequiredRule, e.PropertyName); - return false; - } - return true; - } - - #endregion - - #region StringMaxLength - - /// - /// Rule ensuring a string value doesn't exceed - /// a specified length. - /// - /// Object containing the data to validate - /// Arguments parameter specifying the name of the string - /// property to validate - /// if the rule is broken - /// - /// This implementation uses late binding, and will only work - /// against string property values. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - public static bool StringMaxLength( - object target, RuleArgs e) - { - int max = ((MaxLengthRuleArgs)e).MaxLength; - string value = (string)Utilities.CallByName( - target, e.PropertyName, CallType.Get); - if (!String.IsNullOrEmpty(value) && (value.Length > max)) - { - e.Description = String.Format( - Resources.StringMaxLengthRule, - e.PropertyName, max.ToString()); - return false; - } - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - public class MaxLengthRuleArgs : RuleArgs - { - private int _maxLength; - - /// - /// Get the max length for the string. - /// - public int MaxLength - { - get { return _maxLength; } - } - - /// - /// Create a new object. - /// - /// Name of the property to validate. - /// Max length of characters allowed. - public MaxLengthRuleArgs( - string propertyName, int maxLength) - : base(propertyName) - { - _maxLength = maxLength; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?maxLength=" + _maxLength.ToString(); - } - } - - #endregion - - #region IntegerMaxValue - - /// - /// Rule ensuring an integer value doesn't exceed - /// a specified value. - /// - /// Object containing the data to validate. - /// Arguments parameter specifying the name of the - /// property to validate. - /// if the rule is broken. - public static bool IntegerMaxValue(object target, RuleArgs e) - { - int max = ((IntegerMaxValueRuleArgs)e).MaxValue; - int value = (int)Utilities.CallByName(target, e.PropertyName, CallType.Get); - if (value > max) - { - e.Description = String.Format(Resources.MaxValueRule, - e.PropertyName, max.ToString()); - return false; - } - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - public class IntegerMaxValueRuleArgs : RuleArgs - { - private int _maxValue; - - /// - /// Get the max value for the property. - /// - public int MaxValue - { - get { return _maxValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Maximum allowed value for the property. - public IntegerMaxValueRuleArgs(string propertyName, int maxValue) - : base(propertyName) - { - _maxValue = maxValue; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?maxValue=" + _maxValue.ToString(); - } - } - - #endregion - - #region IntegerMinValue - - /// - /// Rule ensuring an integer value doesn't go below - /// a specified value. - /// - /// Object containing the data to validate. - /// Arguments parameter specifying the name of the - /// property to validate. - /// if the rule is broken. - public static bool IntegerMinValue(object target, RuleArgs e) - { - int min = ((IntegerMinValueRuleArgs)e).MinValue; - int value = (int)Utilities.CallByName(target, e.PropertyName, CallType.Get); - if (value < min) - { - e.Description = String.Format(Resources.MinValueRule, - e.PropertyName, min.ToString()); - return false; - } - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - public class IntegerMinValueRuleArgs : RuleArgs - { - private int _minValue; - - /// - /// Get the min value for the property. - /// - public int MinValue - { - get { return _minValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Minimum allowed value for the property. - public IntegerMinValueRuleArgs(string propertyName, int minValue) - : base(propertyName) - { - _minValue = minValue; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?minValue=" + _minValue.ToString(); - } - } - - #endregion - - #region MaxValue - - /// - /// Rule ensuring that a numeric value - /// doesn't exceed a specified maximum. - /// - /// Type of the property to validate. - /// Object containing value to validate. - /// Arguments variable specifying the - /// name of the property to validate, along with the max - /// allowed value. - public static bool MaxValue(object target, RuleArgs e) where T : IComparable - { - PropertyInfo pi = target.GetType().GetProperty(e.PropertyName); - T value = (T)pi.GetValue(target, null); - T max = ((MaxValueRuleArgs)e).MaxValue; - - int result = value.CompareTo(max); - if (result >= 1) - { - e.Description = string.Format(Resources.MaxValueRule, - e.PropertyName, max.ToString()); - return false; - } - else - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - /// Type of the property to validate. - public class MaxValueRuleArgs : RuleArgs - { - T _maxValue = default(T); - - /// - /// Get the max value for the property. - /// - public T MaxValue - { - get { return _maxValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Maximum allowed value for the property. - public MaxValueRuleArgs(string propertyName, T maxValue) - : base(propertyName) - { - _maxValue = maxValue; - } - - /// - /// Returns a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?maxValue=" + _maxValue.ToString(); - } - } - - #endregion - - #region MinValue - - /// - /// Rule ensuring that a numeric value - /// doesn't exceed a specified minimum. - /// - /// Type of the property to validate. - /// Object containing value to validate. - /// Arguments variable specifying the - /// name of the property to validate, along with the min - /// allowed value. - public static bool MinValue(object target, RuleArgs e) where T : IComparable - { - PropertyInfo pi = target.GetType().GetProperty(e.PropertyName); - T value = (T)pi.GetValue(target, null); - T min = ((MinValueRuleArgs)e).MinValue; - - int result = value.CompareTo(min); - if (result <= -1) - { - e.Description = string.Format(Resources.MinValueRule, - e.PropertyName, min.ToString()); - return false; - } - else - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - /// Type of the property to validate. - public class MinValueRuleArgs : RuleArgs - { - T _minValue = default(T); - - /// - /// Get the min value for the property. - /// - public T MinValue - { - get { return _minValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Minimum allowed value for the property. - public MinValueRuleArgs(string propertyName, T minValue) - : base(propertyName) - { - _minValue = minValue; - } - - /// - /// Returns a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?minValue=" + _minValue.ToString(); - } - } - - #endregion - - #region RegEx - - /// - /// Rule that checks to make sure a value - /// matches a given regex pattern. - /// - /// Object containing the data to validate - /// RegExRuleArgs parameter specifying the name of the - /// property to validate and the regex pattern. - /// False if the rule is broken - /// - /// This implementation uses late binding. - /// - public static bool RegExMatch(object target, RuleArgs e) - { - Regex rx = ((RegExRuleArgs)e).RegEx; - if (!rx.IsMatch(Utilities.CallByName(target, e.PropertyName, CallType.Get).ToString())) - { - e.Description = String.Format(Resources.RegExMatchRule, e.PropertyName); - return false; - } - else - return true; - } - - /// - /// List of built-in regex patterns. - /// - public enum RegExPatterns - { - /// - /// US Social Security number pattern. - /// - SSN, - /// - /// Email address pattern. - /// - Email - } - - /// - /// Custom object required by the - /// rule method. - /// - public class RegExRuleArgs : RuleArgs - { - Regex _regEx; - - /// - /// The object used to validate - /// the property. - /// - public Regex RegEx - { - get { return _regEx; } - } - - /// - /// Creates a new object. - /// - /// Name of the property to validate. - /// Built-in regex pattern to use. - public RegExRuleArgs(string propertyName, RegExPatterns pattern) - : - base(propertyName) - { - _regEx = new Regex(GetPattern(pattern)); - } - - /// - /// Creates a new object. - /// - /// Name of the property to validate. - /// Custom regex pattern to use. - public RegExRuleArgs(string propertyName, string pattern) - : - base(propertyName) - { - _regEx = new Regex(pattern); - } - - /// - /// Creates a new object. - /// - /// Name of the property to validate. - /// object to use. - public RegExRuleArgs(string propertyName, System.Text.RegularExpressions.Regex regEx) - : - base(propertyName) - { - _regEx = regEx; - } - - /// f - /// Returns a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?regex=" + _regEx.ToString(); - } - - /// - /// Returns the specified built-in regex pattern. - /// - /// Pattern to return. - public static string GetPattern(RegExPatterns pattern) - { - switch (pattern) - { - case RegExPatterns.SSN: - return @"^\d{3}-\d{2}-\d{4}$"; - case RegExPatterns.Email: - return @"^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"; - default: - return string.Empty; - } - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/IRuleMethod.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/IRuleMethod.cs deleted file mode 100644 index 40dde70c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/IRuleMethod.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; - -namespace Csla.Validation -{ - /// - /// Tracks all information for a rule. - /// - internal interface IRuleMethod - { - /// - /// Gets the priority of the rule method. - /// - /// The priority value. - /// - /// Priorities are processed in descending - /// order, so priority 0 is processed - /// before priority 1, etc. - int Priority { get;} - - /// - /// Gets the name of the rule. - /// - /// - /// The rule's name must be unique and is used - /// to identify a broken rule in the BrokenRules - /// collection. - /// - string RuleName { get;} - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - RuleArgs RuleArgs { get;} - - /// - /// Invokes the rule to validate the data. - /// - /// - /// if the data is valid, - /// if the data is invalid. - /// - bool Invoke(object target); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleArgs.cs deleted file mode 100644 index 4111b34f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleArgs.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; - -namespace Csla.Validation -{ - - /// - /// Object providing extra information to methods that - /// implement business rules. - /// - public class RuleArgs - { - private string _propertyName; - private string _description; - private RuleSeverity _severity = RuleSeverity.Error; - private bool _stopProcessing; - - /// - /// The name of the property to be validated. - /// - public string PropertyName - { - get { return _propertyName; } - } - - /// - /// Set by the rule handler method to describe the broken - /// rule. - /// - /// A human-readable description of - /// the broken rule. - /// - /// Setting this property only has an effect if - /// the rule method returns . - /// - public string Description - { - get { return _description; } - set { _description = value; } - } - - /// - /// Gets or sets the severity of the broken rule. - /// - /// The severity of the broken rule. - /// - /// Setting this property only has an effect if - /// the rule method returns . - /// - public RuleSeverity Severity - { - get { return _severity; } - set { _severity = value; } - } - - /// - /// Gets or sets a value indicating whether this - /// broken rule should stop the processing of subsequent - /// rules for this property. - /// - /// if no further - /// rules should be process for this property. - /// - /// Setting this property only has an effect if - /// the rule method returns . - /// - public bool StopProcessing - { - get { return _stopProcessing; } - set { _stopProcessing = value; } - } - - /// - /// Creates an instance of RuleArgs. - /// - /// The name of the property to be validated. - public RuleArgs(string propertyName) - { - _propertyName = propertyName; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return _propertyName; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleHandler.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleHandler.cs deleted file mode 100644 index 5ba7090c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleHandler.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; - -namespace Csla.Validation -{ - - /// - /// Delegate that defines the method signature for all rule handler methods. - /// - /// - /// Object containing the data to be validated. - /// - /// - /// Parameter used to pass information to and from - /// the rule method. - /// - /// - /// if the rule was satisfied. - /// - /// - /// - /// When implementing a rule handler, you must conform to the method signature - /// defined by this delegate. You should also apply the Description attribute - /// to your method to provide a meaningful description for your rule. - /// - /// The method implementing the rule must return - /// if the data is valid and - /// return if the data is invalid. - /// - /// - public delegate bool RuleHandler(object target, RuleArgs e); - - /// - /// Delegate that defines the method signature for all rule handler methods. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// - /// Object containing the data to be validated. - /// - /// - /// Parameter used to pass information to and from - /// the rule method. - /// - /// - /// if the rule was satisfied. - /// - /// - /// - /// When implementing a rule handler, you must conform to the method signature - /// defined by this delegate. You should also apply the Description attribute - /// to your method to provide a meaningful description for your rule. - /// - /// The method implementing the rule must return - /// if the data is valid and - /// return if the data is invalid. - /// - /// - public delegate bool RuleHandler(T target, R e) where R : RuleArgs; - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleMethod.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleMethod.cs deleted file mode 100644 index 9819f85c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleMethod.cs +++ /dev/null @@ -1,247 +0,0 @@ -using System; - -namespace Csla.Validation -{ - /// - /// Tracks all information for a rule. - /// - internal class RuleMethod : IRuleMethod, IComparable, IComparable - { - private RuleHandler _handler; - private string _ruleName = String.Empty; - private RuleArgs _args; - private int _priority; - - /// - /// Returns the name of the method implementing the rule - /// and the property, field or column name to which the - /// rule applies. - /// - public override string ToString() - { - return _ruleName; - } - - /// - /// Gets the priority of the rule method. - /// - /// The priority value - /// - /// Priorities are processed in descending - /// order, so priority 0 is processed - /// before priority 1, etc. - /// - public int Priority - { - get { return _priority; } - } - - /// - /// Gets the name of the rule. - /// - /// - /// The rule's name must be unique and is used - /// to identify a broken rule in the BrokenRules - /// collection. - /// - public string RuleName - { - get { return _ruleName; } - } - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - public RuleArgs RuleArgs - { - get { return _args; } - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - public RuleMethod(RuleHandler handler, RuleArgs args) - { - _handler = handler; - _args = args; - _ruleName = string.Format(@"rule://{0}/{1}", _handler.Method.Name, _args.ToString()); - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - /// - /// Priority for processing the rule (smaller numbers have higher priority, default=0). - /// - public RuleMethod(RuleHandler handler, RuleArgs args, int priority) - : this(handler, args) - { - _priority = priority; - } - - /// - /// Invokes the rule to validate the data. - /// - /// - /// if the data is valid, - /// if the data is invalid. - /// - public bool Invoke(object target) - { - return _handler.Invoke(target, _args); - } - - #region IComparable - - int IComparable.CompareTo(object obj) - { - return Priority.CompareTo(((IRuleMethod)obj).Priority); - } - - int IComparable.CompareTo(IRuleMethod other) - { - return Priority.CompareTo(other.Priority); - } - - #endregion - - } - - - /// - /// Tracks all information for a rule. - /// - /// Type of the target object. - /// Type of the arguments parameter. - internal class RuleMethod - : IRuleMethod, IComparable, IComparable - where R : RuleArgs - { - private RuleHandler _handler; - private string _ruleName = string.Empty; - private R _args; - private int _priority; - - /// - /// Returns the name of the method implementing the rule - /// and the property, field or column name to which the - /// rule applies. - /// - public override string ToString() - { - return _ruleName; - } - - /// - /// Gets the priority of the rule method. - /// - /// The priority value - /// - /// Priorities are processed in descending - /// order, so priority 0 is processed - /// before priority 1, etc. - /// - public int Priority - { - get { return _priority; } - } - - /// - /// Gets the name of the rule. - /// - /// - /// The rule's name must be unique and is used - /// to identify a broken rule in the BrokenRules - /// collection. - /// - public string RuleName - { - get {return _ruleName;} - } - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - RuleArgs IRuleMethod.RuleArgs - { - get {return this.RuleArgs;} - } - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - public R RuleArgs - { - get { return _args; } - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - public RuleMethod(RuleHandler handler, R args) - { - _handler = handler; - _args = args; - _ruleName = string.Format(@"rule://{0}/{1}", _handler.Method.Name, _args.ToString()); - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - /// - /// Priority for processing the rule (smaller numbers have higher priority, default=0). - /// - public RuleMethod(RuleHandler handler, R args, int priority) - : this(handler, args) - { - _priority = priority; - } - - /// - /// Invokes the rule to validate the data. - /// - /// True if the data is valid, False if the data is invalid. - bool IRuleMethod.Invoke(object target) - { - return this.Invoke((T)target); - } - - /// - /// Invokes the rule to validate the data. - /// - /// - /// if the data is valid, - /// if the data is invalid. - /// - public bool Invoke(T target) - { - return _handler.Invoke(target, _args); - } - - #region IComparable - - int IComparable.CompareTo(object obj) - { - return Priority.CompareTo(((IRuleMethod)obj).Priority); - } - - int IComparable.CompareTo(IRuleMethod other) - { - return Priority.CompareTo(other.Priority); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleSeverity.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleSeverity.cs deleted file mode 100644 index 8503c056..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleSeverity.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; - -namespace Csla.Validation -{ - /// - /// Values for validation rule severities. - /// - public enum RuleSeverity - { - /// - /// Represents a serious - /// business rule violation that - /// should cause an object to - /// be considered invalid. - /// - Error, - - /// - /// Represents a business rule - /// violation that should be - /// displayed to the user, but which - /// should not make an object be - /// invalid. - /// - Warning, - - /// - /// Represents a business rule - /// result that should be displayed - /// to the user, but which is less - /// severe than a warning. - /// - Information - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RulesList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RulesList.cs deleted file mode 100644 index 26a2e725..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RulesList.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - internal class RulesList - { - private List _list = new List(); - private bool _sorted; - private List _dependantProperties; - - public void Add(IRuleMethod item) - { - _list.Add(item); - _sorted = false; - } - - public List GetList(bool applySort) - { - if (applySort && !_sorted) - { - lock (_list) - { - if (applySort && !_sorted) - { - _list.Sort(); - _sorted = true; - } - } - } - return _list; - } - - public List GetDependancyList(bool create) - { - if (_dependantProperties == null && create) - _dependantProperties = new List(); - return _dependantProperties; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/SharedValidationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/SharedValidationRules.cs deleted file mode 100644 index f6a376a4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/SharedValidationRules.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - /// - /// Maintains a list of all the per-type - /// objects - /// loaded in memory. - /// - internal static class SharedValidationRules - { - private static Dictionary _managers = - new Dictionary(); - - /// - /// Gets the for the - /// specified object type, optionally creating a new instance - /// of the object if necessary. - /// - /// - /// Type of business object for which the rules apply. - /// - /// Indicates whether to create - /// a new instance of the object if one doesn't exist. - internal static ValidationRulesManager GetManager(Type objectType, bool create) - { - ValidationRulesManager result = null; - if (!_managers.TryGetValue(objectType, out result) && create) - { - lock (_managers) - { - result = new ValidationRulesManager(); - _managers.Add(objectType, result); - } - } - return result; - } - - /// - /// Gets a value indicating whether a set of rules - /// have been created for a given . - /// - /// - /// Type of business object for which the rules apply. - /// - /// if rules exist for the type. - public static bool RulesExistFor(Type objectType) - { - return _managers.ContainsKey(objectType); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationException.cs deleted file mode 100644 index 9ad98bce..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationException.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; - -namespace Csla.Validation -{ - - /// - /// Exception class indicating that there was a validation - /// problem with a business object. - /// - [Serializable()] - public class ValidationException : Exception - { - - /// - /// Creates an instance of the object. - /// - public ValidationException() - { - - } - - /// - /// Creates an instance of the object. - /// - /// Message describing the exception. - public ValidationException(string message) - : base(message) - { - - } - - /// - /// Creates an instance of the object. - /// - /// Message describing the exception. - /// Inner exception object. - public ValidationException(string message, Exception innerException) - : base(message, innerException) - { - - } - - /// - /// Creates an instance of the object for serialization. - /// - /// Serialization context. - /// Serialization info. - protected ValidationException(System.Runtime.Serialization.SerializationInfo info, - System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRules.cs deleted file mode 100644 index 2f7512cd..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRules.cs +++ /dev/null @@ -1,768 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - - /// - /// Tracks the business rules broken within a business object. - /// - [Serializable()] - public class ValidationRules - { - // list of broken rules for this business object. - private BrokenRulesCollection _brokenRules; - // threshold for short-circuiting to kick in - private int _processThroughPriority; - // reference to current business object - [NonSerialized()] - private object _target; - // reference to per-instance rules manager for this object - [NonSerialized()] - private ValidationRulesManager _instanceRules; - // reference to per-type rules manager for this object - [NonSerialized()] - private ValidationRulesManager _typeRules; - // reference to the active set of rules for this object - [NonSerialized()] - private ValidationRulesManager _rulesToCheck; - - internal ValidationRules(object businessObject) - { - SetTarget(businessObject); - } - - internal void SetTarget(object businessObject) - { - _target = businessObject; - } - - private BrokenRulesCollection BrokenRulesList - { - get - { - if (_brokenRules == null) - _brokenRules = new BrokenRulesCollection(); - return _brokenRules; - } - } - - private ValidationRulesManager GetInstanceRules(bool createObject) - { - if (_instanceRules == null) - if (createObject) - _instanceRules = new ValidationRulesManager(); - return _instanceRules; - } - - private ValidationRulesManager GetTypeRules(bool createObject) - { - if (_typeRules == null) - _typeRules = SharedValidationRules.GetManager(_target.GetType(), createObject); - return _typeRules; - } - - private ValidationRulesManager RulesToCheck - { - get - { - if (_rulesToCheck == null) - { - ValidationRulesManager instanceRules = GetInstanceRules(false); - ValidationRulesManager typeRules = GetTypeRules(false); - if (instanceRules == null) - { - if (typeRules == null) - _rulesToCheck = null; - else - _rulesToCheck = typeRules; - } - else if (typeRules == null) - _rulesToCheck = instanceRules; - else - { - // both have values - consolidate into instance rules - _rulesToCheck = instanceRules; - foreach (KeyValuePair de in typeRules.RulesDictionary) - { - RulesList rules = _rulesToCheck.GetRulesForProperty(de.Key, true); - List instanceList = rules.GetList(false); - instanceList.AddRange(de.Value.GetList(false)); - List dependancy = de.Value.GetDependancyList(false); - if (dependancy != null) - rules.GetDependancyList(true).AddRange(dependancy); - } - } - } - return _rulesToCheck; - } - } - - /// - /// Returns an array containing the text descriptions of all - /// validation rules associated with this object. - /// - /// String array. - /// - public string[] GetRuleDescriptions() - { - List result = new List(); - ValidationRulesManager rules = RulesToCheck; - if (rules != null) - { - foreach (KeyValuePair de in rules.RulesDictionary) - { - List list = de.Value.GetList(false); - for (int i = 0; i < list.Count; i++) - { - IRuleMethod rule = list[i]; - result.Add(rule.ToString()); - } - } - } - return result.ToArray(); - } - - #region Short-Circuiting - - /// - /// Gets or sets the priority through which - /// CheckRules should process before short-circuiting - /// processing on broken rules. - /// - /// Defaults to 0. - /// - /// All rules for each property are processed by CheckRules - /// though this priority. Rules with lower priorities are - /// only processed if no previous rule has been marked as - /// broken. - /// - public int ProcessThroughPriority - { - get { return _processThroughPriority; } - set { _processThroughPriority = value; } - } - - #endregion - - #region Adding Instance Rules - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - public void AddInstanceRule(RuleHandler handler, string propertyName) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddInstanceRule(RuleHandler handler, string propertyName, int priority) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// Type of the business object to be validated. - public void AddInstanceRule(RuleHandler handler, string propertyName) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - /// Type of the business object to be validated. - public void AddInstanceRule(RuleHandler handler, string propertyName, int priority) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddInstanceRule(RuleHandler handler, RuleArgs args) - { - GetInstanceRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddInstanceRule(RuleHandler handler, RuleArgs args, int priority) - { - GetInstanceRules(true).AddRule(handler, args, priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddInstanceRule(RuleHandler handler, R args) where R : RuleArgs - { - GetInstanceRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddInstanceRule(RuleHandler handler, R args, int priority) where R : RuleArgs - { - GetInstanceRules(true).AddRule(handler, args, priority); - } - - #endregion - - #region Adding Per-Type Rules - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - public void AddRule(RuleHandler handler, string propertyName) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, string propertyName, int priority) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - public void AddRule(RuleHandler handler, string propertyName) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, string propertyName, int priority) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddRule(RuleHandler handler, RuleArgs args) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, RuleArgs args, int priority) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddRule(RuleHandler handler, R args) where R : RuleArgs - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, R args, int priority) where R : RuleArgs - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, priority); - } - - private bool ValidateHandler(RuleHandler handler) - { - return ValidateHandler(handler.Method); - } - - private bool ValidateHandler(RuleHandler handler) where R : RuleArgs - { - return ValidateHandler(handler.Method); - } - - private bool ValidateHandler(System.Reflection.MethodInfo method) - { - if (!method.IsStatic && method.DeclaringType.Equals(_target.GetType())) - throw new InvalidOperationException( - string.Format("{0}: {1}", - Properties.Resources.InvalidRuleMethodException, method.Name)); - return true; - } - - #endregion - - #region Adding per-type dependancies - - /// - /// Adds a property to the list of dependencies for - /// the specified property - /// - /// - /// The name of the property. - /// - /// - /// The name of the depandent property. - /// - /// - /// When rules are checked for propertyName, they will - /// also be checked for any dependant properties associated - /// with that property. - /// - public void AddDependantProperty(string propertyName, string dependantPropertyName) - { - GetTypeRules(true).AddDependantProperty(propertyName, dependantPropertyName); - } - - /// - /// Adds a property to the list of dependencies for - /// the specified property - /// - /// - /// The name of the property. - /// - /// - /// The name of the depandent property. - /// - /// - /// If then a - /// reverse dependancy is also established - /// from dependantPropertyName to propertyName. - /// - /// - /// When rules are checked for propertyName, they will - /// also be checked for any dependant properties associated - /// with that property. If isBidirectional is - /// then an additional association - /// is set up so when rules are checked for - /// dependantPropertyName the rules for propertyName - /// will also be checked. - /// - public void AddDependantProperty(string propertyName, string dependantPropertyName, bool isBidirectional) - { - - ValidationRulesManager mgr = GetTypeRules(true); - mgr.AddDependantProperty(propertyName, dependantPropertyName); - if (isBidirectional) - { - mgr.AddDependantProperty(dependantPropertyName, propertyName); - } - } - - #endregion - - #region Checking Rules - - /// - /// Invokes all rule methods associated with - /// the specified property and any - /// dependant properties. - /// - /// The name of the property to validate. - public void CheckRules(string propertyName) - { - // get the rules dictionary - ValidationRulesManager rules = RulesToCheck; - if (rules != null) - { - // get the rules list for this property - RulesList rulesList = rules.GetRulesForProperty(propertyName, false); - if (rulesList != null) - { - // get the actual list of rules (sorted by priority) - List list = rulesList.GetList(true); - if (list != null) - CheckRules(list); - List dependancies = rulesList.GetDependancyList(false); - if (dependancies != null) - { - for (int i = 0; i < dependancies.Count; i++) - { - string dependantProperty = dependancies[i]; - CheckRules(rules, dependantProperty); - } - } - } - } - } - - private void CheckRules(ValidationRulesManager rules, string propertyName) - { - // get the rules list for this property - RulesList rulesList = rules.GetRulesForProperty(propertyName, false); - if (rulesList != null) - { - // get the actual list of rules (sorted by priority) - List list = rulesList.GetList(true); - if (list != null) - CheckRules(list); - } - } - - /// - /// Invokes all rule methods for all properties - /// in the object. - /// - public void CheckRules() - { - ValidationRulesManager rules = RulesToCheck; - if (rules != null) - { - foreach (KeyValuePair de in rules.RulesDictionary) - CheckRules(de.Value.GetList(true)); - } - } - - /// - /// Given a list - /// containing IRuleMethod objects, this - /// method executes all those rule methods. - /// - private void CheckRules(List list) - { - bool previousRuleBroken = false; - bool shortCircuited = false; - - for (int index = 0; index < list.Count; index++) - { - IRuleMethod rule = list[index]; - // see if short-circuiting should kick in - if (!shortCircuited && (previousRuleBroken && rule.Priority > _processThroughPriority)) - shortCircuited = true; - - if (shortCircuited) - { - // we're short-circuited, so just remove - // all remaining broken rule entries - BrokenRulesList.Remove(rule); - } - else - { - // we're not short-circuited, so check rule - if (rule.Invoke(_target)) - { - // the rule is not broken - BrokenRulesList.Remove(rule); - } - else - { - // the rule is broken - BrokenRulesList.Add(rule); - if (rule.RuleArgs.Severity == RuleSeverity.Error) - previousRuleBroken = true; - } - if (rule.RuleArgs.StopProcessing) - shortCircuited = true; - } - } - } - - #endregion - - #region Status Retrieval - - /// - /// Returns a value indicating whether there are any broken rules - /// at this time. - /// - /// A value indicating whether any rules are broken. - internal bool IsValid - { - get { return BrokenRulesList.ErrorCount == 0; } - } - - /// - /// Returns a reference to the readonly collection of broken - /// business rules. - /// - /// - /// The reference returned points to the actual collection object. - /// This means that as rules are marked broken or unbroken over time, - /// the underlying data will change. Because of this, the UI developer - /// can bind a display directly to this collection to get a dynamic - /// display of the broken rules at all times. - /// - /// A reference to the collection of broken rules. - public BrokenRulesCollection GetBrokenRules() - { - return BrokenRulesList; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRulesManager.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRulesManager.cs deleted file mode 100644 index 08835302..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRulesManager.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - /// - /// Maintains rule methods for a business object - /// or business object type. - /// - internal class ValidationRulesManager - { - private Dictionary _rulesList; - - internal Dictionary RulesDictionary - { - get - { - if (_rulesList == null) - _rulesList = new Dictionary(); - return _rulesList; - } - } - - internal RulesList GetRulesForProperty( - string propertyName, - bool createList) - { - // get the list (if any) from the dictionary - RulesList list = null; - if (RulesDictionary.ContainsKey(propertyName)) - list = RulesDictionary[propertyName]; - - if (createList && list == null) - { - // there is no list for this name - create one - list = new RulesList(); - RulesDictionary.Add(propertyName, list); - } - return list; - } - - #region Adding Rules - - public void AddRule(RuleHandler handler, RuleArgs args, int priority) - { - // get the list of rules for the property - List list = GetRulesForProperty(args.PropertyName, true).GetList(false); - - // we have the list, add out new rule - list.Add(new RuleMethod(handler, args, priority)); - } - - public void AddRule(RuleHandler handler, R args, int priority) where R : RuleArgs - { - // get the list of rules for the property - List list = GetRulesForProperty(args.PropertyName, true).GetList(false); - - // we have the list, add out new rule - list.Add(new RuleMethod(handler, args, priority)); - } - - #endregion - - #region Adding Dependencies - - /// - /// Adds a property to the list of dependencies for - /// the specified property - /// - /// - /// The name of the property. - /// - /// - /// The name of the dependant property. - /// - /// - /// When rules are checked for propertyName, they will - /// also be checked for any dependant properties associated - /// with that property. - /// - public void AddDependantProperty(string propertyName, string dependantPropertyName) - { - // get the list of rules for the property - List list = GetRulesForProperty(propertyName, true).GetDependancyList(true); - - // we have the list, add the dependency - list.Add(dependantPropertyName); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.cs deleted file mode 100644 index ace2f718..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.cs +++ /dev/null @@ -1,334 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// -// This source code was auto-generated by Microsoft.VSDesigner, Version 2.0.50727.42. -// -#pragma warning disable 1591 - -namespace Csla.WebServiceHost { - using System.Diagnostics; - using System.Web.Services; - using System.ComponentModel; - using System.Web.Services.Protocols; - using System; - using System.Xml.Serialization; - - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Web.Services.WebServiceBindingAttribute(Name="WebServicePortalSoap", Namespace="http://ws.lhotka.net/Csla")] - public partial class WebServicePortal : System.Web.Services.Protocols.SoapHttpClientProtocol { - - private System.Threading.SendOrPostCallback CreateOperationCompleted; - - private System.Threading.SendOrPostCallback FetchOperationCompleted; - - private System.Threading.SendOrPostCallback UpdateOperationCompleted; - - private System.Threading.SendOrPostCallback DeleteOperationCompleted; - - private bool useDefaultCredentialsSetExplicitly; - - /// - public WebServicePortal() { - this.Url = global::Csla.Properties.Settings.Default.Csla_WebServiceHost_WebServicePortal; - if ((this.IsLocalFileSystemWebService(this.Url) == true)) { - this.UseDefaultCredentials = true; - this.useDefaultCredentialsSetExplicitly = false; - } - else { - this.useDefaultCredentialsSetExplicitly = true; - } - } - - public new string Url { - get { - return base.Url; - } - set { - if ((((this.IsLocalFileSystemWebService(base.Url) == true) - && (this.useDefaultCredentialsSetExplicitly == false)) - && (this.IsLocalFileSystemWebService(value) == false))) { - base.UseDefaultCredentials = false; - } - base.Url = value; - } - } - - public new bool UseDefaultCredentials { - get { - return base.UseDefaultCredentials; - } - set { - base.UseDefaultCredentials = value; - this.useDefaultCredentialsSetExplicitly = true; - } - } - - /// - public event CreateCompletedEventHandler CreateCompleted; - - /// - public event FetchCompletedEventHandler FetchCompleted; - - /// - public event UpdateCompletedEventHandler UpdateCompleted; - - /// - public event DeleteCompletedEventHandler DeleteCompleted; - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Create", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Create([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Create", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void CreateAsync(byte[] requestData) { - this.CreateAsync(requestData, null); - } - - /// - public void CreateAsync(byte[] requestData, object userState) { - if ((this.CreateOperationCompleted == null)) { - this.CreateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateOperationCompleted); - } - this.InvokeAsync("Create", new object[] { - requestData}, this.CreateOperationCompleted, userState); - } - - private void OnCreateOperationCompleted(object arg) { - if ((this.CreateCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.CreateCompleted(this, new CreateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Fetch", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Fetch([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Fetch", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void FetchAsync(byte[] requestData) { - this.FetchAsync(requestData, null); - } - - /// - public void FetchAsync(byte[] requestData, object userState) { - if ((this.FetchOperationCompleted == null)) { - this.FetchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnFetchOperationCompleted); - } - this.InvokeAsync("Fetch", new object[] { - requestData}, this.FetchOperationCompleted, userState); - } - - private void OnFetchOperationCompleted(object arg) { - if ((this.FetchCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.FetchCompleted(this, new FetchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Update", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Update([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Update", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void UpdateAsync(byte[] requestData) { - this.UpdateAsync(requestData, null); - } - - /// - public void UpdateAsync(byte[] requestData, object userState) { - if ((this.UpdateOperationCompleted == null)) { - this.UpdateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateOperationCompleted); - } - this.InvokeAsync("Update", new object[] { - requestData}, this.UpdateOperationCompleted, userState); - } - - private void OnUpdateOperationCompleted(object arg) { - if ((this.UpdateCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.UpdateCompleted(this, new UpdateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Delete", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Delete([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Delete", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void DeleteAsync(byte[] requestData) { - this.DeleteAsync(requestData, null); - } - - /// - public void DeleteAsync(byte[] requestData, object userState) { - if ((this.DeleteOperationCompleted == null)) { - this.DeleteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteOperationCompleted); - } - this.InvokeAsync("Delete", new object[] { - requestData}, this.DeleteOperationCompleted, userState); - } - - private void OnDeleteOperationCompleted(object arg) { - if ((this.DeleteCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.DeleteCompleted(this, new DeleteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - public new void CancelAsync(object userState) { - base.CancelAsync(userState); - } - - private bool IsLocalFileSystemWebService(string url) { - if (((url == null) - || (url == string.Empty))) { - return false; - } - System.Uri wsUri = new System.Uri(url); - if (((wsUri.Port >= 1024) - && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { - return true; - } - return false; - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void CreateCompletedEventHandler(object sender, CreateCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class CreateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal CreateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void FetchCompletedEventHandler(object sender, FetchCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class FetchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal FetchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void UpdateCompletedEventHandler(object sender, UpdateCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class UpdateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal UpdateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void DeleteCompletedEventHandler(object sender, DeleteCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class DeleteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal DeleteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.map b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.map deleted file mode 100644 index 77abb3b5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.disco b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.disco deleted file mode 100644 index 93dff912..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.disco +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.wsdl b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.wsdl deleted file mode 100644 index 53313f75..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.wsdl +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSource.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSource.cs deleted file mode 100644 index 85c247de..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSource.cs +++ /dev/null @@ -1,210 +0,0 @@ -using System; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Reflection; -using Csla.Properties; - -namespace Csla.Web -{ - - /// - /// A Web Forms data binding control designed to support - /// CSLA .NET business objects as data sources. - /// - [Designer(typeof(Csla.Web.Design.CslaDataSourceDesigner))] - [DisplayName("CslaDataSource")] - [Description("CSLA .NET Data Source Control")] - [ToolboxData("<{0}:CslaDataSource runat=\"server\">")] - public class CslaDataSource : DataSourceControl - { - - private CslaDataSourceView _defaultView; - - /// - /// Event raised when an object is to be created and - /// populated with data. - /// - /// Handle this event in a page and set - /// e.BusinessObject to the populated business object. - /// - public event EventHandler SelectObject; - - /// - /// Event raised when an object is to be populated with data - /// and inserted. - /// - /// Handle this event in a page to create an - /// instance of the object, load the object with data and - /// insert the object into the database. - public event EventHandler InsertObject; - - /// - /// Event raised when an object is to be updated. - /// - /// Handle this event in a page to update an - /// existing instance of an object with new data and then - /// save the object into the database. - public event EventHandler UpdateObject; - - /// - /// Event raised when an object is to be deleted. - /// - /// Handle this event in a page to delete - /// an object from the database. - public event EventHandler DeleteObject; - - /// - /// Returns the default view for this data control. - /// - /// Ignored. - /// - /// This control only contains a "Default" view. - protected override DataSourceView GetView(string viewName) - { - if (_defaultView == null) - _defaultView = new CslaDataSourceView(this, "Default"); - return _defaultView; - } - - /// - /// Get or set the name of the assembly (no longer used). - /// - /// Obsolete - do not use. - public string TypeAssemblyName - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeAssemblyName; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeAssemblyName = value; } - } - - /// - /// Get or set the full type name of the business object - /// class to be used as a data source. - /// - /// Full type name of the business class, - /// including assembly name. - public string TypeName - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeName; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeName = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports paging. - /// - /// - /// To support paging, the business object - /// (collection) must implement - /// . - /// - public bool TypeSupportsPaging - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeSupportsPaging; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeSupportsPaging = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports sorting. - /// - public bool TypeSupportsSorting - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeSupportsSorting; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeSupportsSorting = value; } - } - - private static System.Collections.Generic.Dictionary _typeCache = - new System.Collections.Generic.Dictionary(); - - /// - /// Returns a Type object based on the - /// assembly and type information provided. - /// - /// Optional assembly name. - /// Full type name of the class, - /// including assembly name. - /// - internal static Type GetType( - string typeAssemblyName, string typeName) - { - Type result = null; - if (!string.IsNullOrEmpty(typeAssemblyName)) - { - // explicit assembly name provided - result = Type.GetType(string.Format( - "{0}, {1}", typeName, typeAssemblyName), true, true); - } - else if (typeName.IndexOf(",") > 0) - { - // assembly qualified type name provided - result = Type.GetType(typeName, true, true); - } - else - { - // no assembly name provided - result = _typeCache[typeName]; - if (result == null) - foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) - { - result = asm.GetType(typeName, false, true); - if (result != null) - { - _typeCache.Add(typeName, result); - break; - } - } - } - - if (result == null) - throw new TypeLoadException(String.Format(Resources.TypeLoadException, typeName)); - - return result; - } - - /// - /// Returns a list of views available for this control. - /// - /// This control only provides the "Default" view. - protected override System.Collections.ICollection GetViewNames() - { - return new string[] { "Default" }; - } - - /// - /// Raises the SelectObject event. - /// - internal void OnSelectObject(SelectObjectArgs e) - { - if (SelectObject != null) - SelectObject(this, e); - } - - /// - /// Raises the InsertObject event. - /// - internal void OnInsertObject(InsertObjectArgs e) - { - if (InsertObject != null) - InsertObject(this, e); - } - - /// - /// Raises the UpdateObject event. - /// - internal void OnUpdateObject(UpdateObjectArgs e) - { - if (UpdateObject != null) - UpdateObject(this, e); - } - - /// - /// Raises the DeleteObject event. - /// - internal void OnDeleteObject(DeleteObjectArgs e) - { - if (DeleteObject != null) - DeleteObject(this, e); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSourceView.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSourceView.cs deleted file mode 100644 index e0395d2a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSourceView.cs +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using System.Collections; -using System.Web.UI; - -namespace Csla.Web -{ - - /// - /// The object responsible for managing data binding - /// to a specific CSLA .NET object. - /// - public class CslaDataSourceView : DataSourceView - { - - private CslaDataSource _owner; - private string _typeAssemblyName; - private string _typeName; - private bool _typeSupportsPaging; - private bool _typeSupportsSorting; - - /// - /// Creates an instance of the object. - /// - /// The CslaDataSource object - /// that owns this view. - /// The name of the view. - public CslaDataSourceView(CslaDataSource owner, string viewName) - : base(owner, viewName) - { - _owner = owner; - } - - /// - /// Get or set the name of the assembly (no longer used). - /// - /// Obsolete - do not use. - public string TypeAssemblyName - { - get { return _typeAssemblyName; } - set { _typeAssemblyName = value; } - } - - /// - /// Get or set the full type name of the business object - /// class to be used as a data source. - /// - /// Full type name of the business class. - public string TypeName - { - get { return _typeName; } - set { _typeName = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports paging. - /// - /// - /// To support paging, the business object - /// (collection) must implement - /// . - /// - public bool TypeSupportsPaging - { - get { return _typeSupportsPaging; } - set { _typeSupportsPaging = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports sorting. - /// - public bool TypeSupportsSorting - { - get { return _typeSupportsSorting; } - set { _typeSupportsSorting = value; } - } - - #region Select - - /// - /// Implements the select behavior for - /// the control by raising the - /// event. - /// - /// Arguments object. - /// The data returned from the select. - protected override System.Collections.IEnumerable - ExecuteSelect(DataSourceSelectArguments arguments) - { - // get the object from the page - SelectObjectArgs args = new SelectObjectArgs(arguments); - _owner.OnSelectObject(args); - object result = args.BusinessObject; - - if (arguments.RetrieveTotalRowCount) - { - int rowCount; - if (result == null) - rowCount = 0; - else if (result is Csla.Core.IReportTotalRowCount) - rowCount = ((Csla.Core.IReportTotalRowCount)result).TotalRowCount; - else if (result is IList) - rowCount = ((IList)result).Count; - else if (result is IEnumerable) - { - IEnumerable temp = (IEnumerable)result; - int count = 0; - foreach (object item in temp) - count++; - rowCount = count; - } - else - rowCount = 1; - arguments.TotalRowCount = rowCount; - } - - // if the result isn't IEnumerable then - // wrap it in a collection - if (!(result is IEnumerable)) - { - ArrayList list = new ArrayList(); - if (result != null) - list.Add(result); - result = list; - } - - // now return the object as a result - return (IEnumerable)result; - } - - #endregion - - #region Insert - - /// - /// Gets a value indicating whether the data source can - /// insert data. - /// - public override bool CanInsert - { - get - { - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom( - CslaDataSource.GetType(_typeAssemblyName, _typeName))) - return true; - else - return false; - } - } - - /// - /// Implements the insert behavior for - /// the control by raising the - /// event. - /// - /// The values from - /// the UI that are to be inserted. - /// The number of rows affected. - protected override int ExecuteInsert( - IDictionary values) - { - // tell the page to insert the object - InsertObjectArgs args = - new InsertObjectArgs(values); - _owner.OnInsertObject(args); - return args.RowsAffected; - } - - #endregion - - #region Delete - - /// - /// Gets a value indicating whether the data source can - /// delete data. - /// - public override bool CanDelete - { - get - { - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom( - CslaDataSource.GetType(_typeAssemblyName, _typeName))) - return true; - else - return false; - } - } - - /// - /// Implements the delete behavior for - /// the control by raising the - /// event. - /// - /// The key values from - /// the UI that are to be deleted. - /// The old values - /// from the UI. - /// The number of rows affected. - protected override int ExecuteDelete(IDictionary keys, IDictionary oldValues) - { - - // tell the page to delete the object - DeleteObjectArgs args = new DeleteObjectArgs(keys, oldValues); - _owner.OnDeleteObject(args); - return args.RowsAffected; - } - - #endregion - - #region Update - - /// - /// Gets a value indicating whether the data source can - /// update data. - /// - public override bool CanUpdate - { - get - { - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom( - CslaDataSource.GetType(_typeAssemblyName, _typeName))) - return true; - else - return false; - } - } - - /// - /// Implements the update behavior for - /// the control by raising the - /// event. - /// - /// The key values from the UI - /// that identify the object to be updated. - /// The values from - /// the UI that are to be inserted. - /// The old values - /// from the UI. - /// The number of rows affected. - protected override int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) - { - // tell the page to update the object - UpdateObjectArgs args = new UpdateObjectArgs(keys, values, oldValues); - _owner.OnUpdateObject(args); - return args.RowsAffected; - } - - #endregion - - #region Other Operations - - /// - /// Gets a value indicating whether the data source supports - /// paging of the data. - /// - public override bool CanPage - { - get - { - return _typeSupportsPaging; - } - } - - /// - /// Gets a value indicating whether the data source can - /// retrieve the total number of rows of data. Always - /// returns . - /// - public override bool CanRetrieveTotalRowCount - { - get { return true; } - } - - /// - /// Gets a alue indicating whether the data source supports - /// sorting of the data. Always returns . - /// - public override bool CanSort - { - get - { - return _typeSupportsSorting; - } - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/DeleteObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/DeleteObjectArgs.cs deleted file mode 100644 index e1a4a9b5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/DeleteObjectArgs.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Web -{ - /// - /// Argument object used in the DeleteObject event. - /// - public class DeleteObjectArgs : EventArgs - { - private System.Collections.IDictionary _keys; - private System.Collections.IDictionary _oldValues; - private int _rowsAffected; - - /// - /// Gets or sets the number of rows affected - /// while handling this event. - /// - /// - /// - /// - /// The code handling the event should set this - /// value to indicate the number of rows affected - /// by the operation. - /// - public int RowsAffected - { - get { return _rowsAffected; } - set { _rowsAffected = value; } - } - - /// - /// The list of key values entered by the user. - /// - /// It is up to the event handler in the - /// web page to use the values to identify the - /// object to be deleted. - public System.Collections.IDictionary Keys - { - get { return _keys; } - } - - /// - /// The list of old data values maintained by - /// data binding. - /// - /// It is up to the event handler in the - /// web page to use the values to identify the - /// object to be deleted. - public System.Collections.IDictionary OldValues - { - get { return _oldValues; } - } - - /// - /// Create an instance of the object. - /// - public DeleteObjectArgs(System.Collections.IDictionary keys, System.Collections.IDictionary oldValues) - { - _keys = keys; - _oldValues = oldValues; - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.Designer.cs deleted file mode 100644 index fd6f4106..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -namespace Csla.Web.Design -{ - partial class CslaDataSourceConfiguration - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CslaDataSourceConfiguration)); - this.label2 = new System.Windows.Forms.Label(); - this.okButton = new System.Windows.Forms.Button(); - this.cancelButton = new System.Windows.Forms.Button(); - this.TypeComboBox = new System.Windows.Forms.ComboBox(); - this.SuspendLayout(); - // - // label2 - // - resources.ApplyResources(this.label2, "label2"); - this.label2.Name = "label2"; - // - // okButton - // - resources.ApplyResources(this.okButton, "okButton"); - this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.okButton.Name = "okButton"; - this.okButton.UseVisualStyleBackColor = true; - // - // cancelButton - // - resources.ApplyResources(this.cancelButton, "cancelButton"); - this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Name = "cancelButton"; - this.cancelButton.UseVisualStyleBackColor = true; - // - // TypeComboBox - // - resources.ApplyResources(this.TypeComboBox, "TypeComboBox"); - this.TypeComboBox.FormattingEnabled = true; - this.TypeComboBox.Name = "TypeComboBox"; - // - // CslaDataSourceConfiguration - // - this.AcceptButton = this.okButton; - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.cancelButton; - this.ControlBox = false; - this.Controls.Add(this.TypeComboBox); - this.Controls.Add(this.cancelButton); - this.Controls.Add(this.okButton); - this.Controls.Add(this.label2); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "CslaDataSourceConfiguration"; - this.ShowInTaskbar = false; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button okButton; - private System.Windows.Forms.Button cancelButton; - private System.Windows.Forms.ComboBox TypeComboBox; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.cs deleted file mode 100644 index 299899c8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.ComponentModel.Design; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace Csla.Web.Design -{ - /// - /// CslaDataSource configuration form. - /// - public partial class CslaDataSourceConfiguration : Form - { - private DataSourceControl _control; - - /// - /// Create instance of object. - /// - public CslaDataSourceConfiguration() - { - InitializeComponent(); - } - - /// - /// Create instance of object. - /// - /// Reference to the data source control. - /// Existing type name. - public CslaDataSourceConfiguration(DataSourceControl control, string oldTypeName) - : this() - { - _control = control; - DiscoverTypes(); - this.TypeComboBox.Text = oldTypeName; - } - - /// - /// Gets the type name entered by the user. - /// - public string TypeName - { - get { return this.TypeComboBox.Text; } - } - - private void DiscoverTypes() - { - // try to get a reference to the type discovery service - ITypeDiscoveryService discovery = null; - if (_control.Site != null) - discovery = (ITypeDiscoveryService)_control.Site.GetService(typeof(ITypeDiscoveryService)); - - if (discovery != null) - { - // saves the cursor and sets the wait cursor - Cursor previousCursor = Cursor.Current; - Cursor.Current = Cursors.WaitCursor; - try - { - // gets all types using the type discovery service - ICollection types = discovery.GetTypes(typeof(object), true); - TypeComboBox.BeginUpdate(); - TypeComboBox.Items.Clear(); - // adds the types to the list - foreach (Type type in types) - { - if (type.Assembly.FullName.Substring(0, type.Assembly.FullName.IndexOf(",")) != "Csla" && - typeof(Csla.Core.IBusinessObject).IsAssignableFrom(type)) - { - string name = type.AssemblyQualifiedName; - if (name.Substring(name.Length - 19, 19) == "PublicKeyToken=null") - name = name.Substring(0, name.IndexOf(",", name.IndexOf(",") + 1)); - TypeComboBox.Items.Add(name); - } - } - } - finally - { - Cursor.Current = previousCursor; - TypeComboBox.EndUpdate(); - } - } - } - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.resx deleted file mode 100644 index b04a81dc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.resx +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - True - - - - 12, 17 - - - 104, 13 - - - 0 - - - Business object type - - - label2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - - - - Top, Right - - - 562, 12 - - - 75, 23 - - - 2 - - - OK - - - okButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - Top, Right - - - 562, 41 - - - 75, 23 - - - 3 - - - Cancel - - - cancelButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - Top, Left, Right - - - 122, 14 - - - 429, 21 - - - 1 - - - TypeComboBox - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - - - True - - - 6, 13 - - - 649, 75 - - - CenterParent - - - Configure CslaDataSource - - - CslaDataSourceConfiguration - - - System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceDesigner.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceDesigner.cs deleted file mode 100644 index 298fbf4f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceDesigner.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Windows.Forms.Design; -using Csla.Web; - -namespace Csla.Web.Design -{ - /// - /// Implements designer support for CslaDataSource. - /// - public class CslaDataSourceDesigner : DataSourceDesigner - { - - private DataSourceControl _control = null; - private CslaDesignerDataSourceView _view = null; - - /// - /// Initialize the designer component. - /// - /// The CslaDataSource control to - /// be designed. - public override void Initialize(IComponent component) - { - base.Initialize(component); - _control = (DataSourceControl)component; - } - - internal System.ComponentModel.ISite Site - { - get - { - return _control.Site; - } - } - /// - /// Returns the default view for this designer. - /// - /// Ignored - /// - /// - /// This designer supports only a "Default" view. - /// - public override DesignerDataSourceView GetView(string viewName) - { - if (_view == null) - { - _view = new CslaDesignerDataSourceView(this, "Default"); - } - return _view; - } - - /// - /// Return a list of available views. - /// - /// - /// This designer supports only a "Default" view. - /// - public override string[] GetViewNames() - { - return new string[] { "Default" }; - } - - /// - /// Refreshes the schema for the data. - /// - /// - /// - public override void RefreshSchema(bool preferSilent) - { - this.OnSchemaRefreshed(EventArgs.Empty); - } - - /// - /// Get a value indicating whether the control can - /// refresh its schema. - /// - public override bool CanRefreshSchema - { - get - { - return true; - } - } - - /// - /// Invoke the design time configuration - /// support provided by the control. - /// - public override void Configure() - { - InvokeTransactedChange(_control, ConfigureCallback, null, "ConfigureDataSource"); - } - - private bool ConfigureCallback(object context) - { - bool result = false; - - string oldTypeName; - if (string.IsNullOrEmpty(((CslaDataSource)DataSourceControl).TypeAssemblyName)) - oldTypeName = ((CslaDataSource)DataSourceControl).TypeName; - else - oldTypeName = string.Format("{0}, {1}", - ((CslaDataSource)DataSourceControl).TypeName, ((CslaDataSource)DataSourceControl).TypeAssemblyName); - - IUIService uiService = (IUIService)_control.Site.GetService(typeof(IUIService)); - CslaDataSourceConfiguration cfg = new CslaDataSourceConfiguration(_control, oldTypeName); - if (uiService.ShowDialog(cfg) == System.Windows.Forms.DialogResult.OK) - { - SuppressDataSourceEvents(); - try - { - ((CslaDataSource)DataSourceControl).TypeAssemblyName = string.Empty; - ((CslaDataSource)DataSourceControl).TypeName = cfg.TypeName; - OnDataSourceChanged(EventArgs.Empty); - result = true; - } - finally - { - ResumeDataSourceEvents(); - } - } - cfg.Dispose(); - return result; - } - - /// - /// Get a value indicating whether this control - /// supports design time configuration. - /// - public override bool CanConfigure - { - get - { - return true; - } - } - - /// - /// Get a value indicating whether the control can - /// be resized. - /// - public override bool AllowResize - { - get - { - return false; - } - } - - /// - /// Get a reference to the CslaDataSource control being - /// designed. - /// - internal CslaDataSource DataSourceControl - { - get - { - return (CslaDataSource)_control; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDesignerDataSourceView.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDesignerDataSourceView.cs deleted file mode 100644 index 76b2a233..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDesignerDataSourceView.cs +++ /dev/null @@ -1,229 +0,0 @@ -using System; -using System.Collections; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.ComponentModel.Design; -using System.Reflection; -using System.Data; - -namespace Csla.Web.Design -{ - /// - /// Object responsible for providing details about - /// data binding to a specific CSLA .NET object. - /// - public class CslaDesignerDataSourceView : DesignerDataSourceView - { - - private CslaDataSourceDesigner _owner = null; - - /// - /// Creates an instance of the object. - /// - public CslaDesignerDataSourceView(CslaDataSourceDesigner owner, string viewName) - : base(owner, viewName) - { - _owner = owner; - } - - /// - /// Returns a set of sample data used to populate - /// controls at design time. - /// - /// Minimum number of sample rows - /// to create. - /// Returns True if the data - /// is sample data. - public override IEnumerable GetDesignTimeData(int minimumRows, out bool isSampleData) - { - IDataSourceViewSchema schema = this.Schema; - DataTable result = new DataTable(); - - // create the columns - foreach (IDataSourceFieldSchema item in schema.GetFields()) - { - result.Columns.Add(item.Name, item.DataType); - } - - // create sample data - for (int index = 1; index <= minimumRows; index++) - { - object[] values = new object[result.Columns.Count]; - int colIndex = 0; - foreach (DataColumn col in result.Columns) - { - if (col.DataType.Equals(typeof(string))) - values[colIndex] = "abc"; - else if (col.DataType.Equals(typeof(System.DateTime))) - values[colIndex] = System.DateTime.Today.ToShortDateString(); - else if (col.DataType.Equals(typeof(bool))) - values[colIndex] = false; - else if (col.DataType.IsPrimitive) - values[colIndex] = index; - else if (col.DataType.Equals(typeof(Guid))) - values[colIndex] = Guid.Empty; - else if (col.DataType.IsValueType) - values[colIndex] = Activator.CreateInstance(col.DataType); - else - values[colIndex] = null; - colIndex += 1; - } - result.LoadDataRow(values, LoadOption.OverwriteChanges); - } - - isSampleData = true; - return (IEnumerable)result.DefaultView; - } - - /// - /// Returns schema information corresponding to the properties - /// of the CSLA .NET business object. - /// - /// - /// All public properties are returned except for those marked - /// with the Browsable attribute - /// as False. - /// - public override IDataSourceViewSchema Schema - { - get - { - return new ObjectSchema( - _owner, - _owner.DataSourceControl.TypeName).GetViews()[0]; - } - } - - /// - /// Get a value indicating whether data binding can retrieve - /// the total number of rows of data. - /// - public override bool CanRetrieveTotalRowCount - { - get - { - return true; - } - } - - private Type GetObjectType() - { - Type result; - try - { - ITypeResolutionService typeService = null; - typeService = (ITypeResolutionService)(_owner.Site.GetService(typeof(ITypeResolutionService))); - result = typeService.GetType(this._owner.DataSourceControl.TypeName, true, false); - } - catch - { - result = typeof(object); - } - return result; - } - - /// - /// Get a value indicating whether data binding can directly - /// delete the object. - /// - /// - /// If this returns true, the web page must handle the - /// DeleteObject - /// event. - /// - public override bool CanDelete - { - get - { - Type objectType = GetObjectType(); - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(objectType)) - { - return true; - } - else if (objectType.GetMethod("Remove") != null) - { - return true; - } - else - { - return false; - } - } - } - - /// - /// Get a value indicating whether data binding can directly - /// insert an instance of the object. - /// - /// - /// If this returns true, the web page must handle the - /// InsertObject - /// event. - /// - public override bool CanInsert - { - get - { - Type objectType = GetObjectType(); - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(objectType)) - { - return true; - } - else - { - return false; - } - } - } - - /// - /// Get a value indicating whether data binding can directly - /// update or edit the object. - /// - /// - /// If this returns true, the web page must handle the - /// UpdateObject - /// event. - /// - public override bool CanUpdate - { - get - { - Type objectType = GetObjectType(); - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(objectType)) - { - return true; - } - else - { - return false; - } - } - } - - /// - /// Gets a value indicating whether the data source supports - /// paging. - /// - public override bool CanPage - { - get - { - return _owner.DataSourceControl.TypeSupportsPaging; - } - } - - /// - /// Gets a value indicating whether the data source supports - /// sorting. - /// - public override bool CanSort - { - get - { - return _owner.DataSourceControl.TypeSupportsSorting; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectFieldInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectFieldInfo.cs deleted file mode 100644 index dae0b9d3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectFieldInfo.cs +++ /dev/null @@ -1,181 +0,0 @@ -using System; -using System.Data; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Reflection; -using System.Collections; -using System.Collections.Generic; - -namespace Csla.Web.Design -{ - /// - /// Contains schema information for a single - /// object property. - /// - [Serializable] - public class ObjectFieldInfo : IDataSourceFieldSchema - { - private Type _dataType; - private bool _primaryKey; - private bool _isIdentity; - private bool _isNullable; - private int _length; - private bool _isReadOnly; - private string _name; - private bool _nullable; - - /// - /// Creates an instance of the object. - /// - /// The PropertyInfo object - /// describing the property. - public ObjectFieldInfo(PropertyDescriptor field) - { - DataObjectFieldAttribute attribute = - (DataObjectFieldAttribute) - field.Attributes[typeof(DataObjectFieldAttribute)]; - if (attribute != null) - { - _primaryKey = attribute.PrimaryKey; - _isIdentity = attribute.IsIdentity; - _isNullable = attribute.IsNullable; - _length = attribute.Length; - } - _dataType = Utilities.GetPropertyType( - field.PropertyType); - _isReadOnly = field.IsReadOnly; - _name = field.Name; - - // nullable - Type t = field.PropertyType; - if (!t.IsValueType || _isNullable) - _nullable = true; - else - { - if (t.IsGenericType) - _nullable = (t.GetGenericTypeDefinition() == typeof(Nullable<>)); - else - _nullable = false; - } - } - - /// - /// Gets the data type of the property. - /// - public Type DataType - { - get - { - return _dataType; - } - } - - /// - /// Gets a value indicating whether this property - /// is an identity key for the object. - /// - /// - /// Returns the optional value provided through - /// the DataObjectField - /// attribute on the property. - /// - public bool Identity - { - get { return _isIdentity; } - } - - /// - /// Gets a value indicating whether this property - /// is readonly. - /// - public bool IsReadOnly - { - get { return _isReadOnly; } - } - - /// - /// Gets a value indicating whether this property - /// must contain a unique value. - /// - /// - /// Always returns True if the property - /// is marked as a primary key, otherwise - /// returns False. - /// - public bool IsUnique - { - get { return _primaryKey; } - } - - /// - /// Gets the length of the property value. - /// - /// - /// Returns the optional value provided through - /// the DataObjectField - /// attribute on the property. - /// - public int Length - { - get { return _length; } - } - - /// - /// Gets the property name. - /// - public string Name - { - get { return _name; } - } - - /// - /// Gets a value indicating whether the property - /// is nullable - /// - /// - /// Returns True for reference types, and for - /// value types wrapped in the Nullable generic. - /// The result can also be set to True through - /// the DataObjectField - /// attribute on the property. - /// - public bool Nullable - { - get - { return _nullable; } - } - - /// - /// Gets the property's numeric precision. - /// - /// Always returns -1. - public int Precision - { - get { return -1; } - } - - /// - /// Gets a value indicating whether the property - /// is a primary key value. - /// - /// - /// Returns the optional value provided through - /// the DataObjectField - /// attribute on the property. - /// - public bool PrimaryKey - { - get { return _primaryKey; } - } - - /// - /// Gets the property's scale. - /// - /// Always returns -1. - public int Scale - { - get { return -1; } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectSchema.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectSchema.cs deleted file mode 100644 index 487678a3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectSchema.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Reflection; - -namespace Csla.Web.Design -{ - - /// - /// Object providing access to schema information for - /// a business object. - /// - /// - /// This object returns only one view, which corresponds - /// to the business object used by data binding. - /// - public class ObjectSchema : IDataSourceSchema - { - private string _typeName = ""; - private CslaDataSourceDesigner _designer; - - /// - /// Creates an instance of the object. - /// - /// Data source designer object. - /// Type name for - /// which the schema should be generated. - public ObjectSchema(CslaDataSourceDesigner designer, string typeName) - { - _typeName = typeName; - _designer = designer; - } - - - /// - /// Returns a single element array containing the - /// schema for the CSLA .NET business object. - /// - public System.Web.UI.Design.IDataSourceViewSchema[] GetViews() - { - IDataSourceViewSchema[] result = null; - result = new IDataSourceViewSchema[] { new ObjectViewSchema(_designer, _typeName) }; - return result; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectViewSchema.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectViewSchema.cs deleted file mode 100644 index 83f62505..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectViewSchema.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.ComponentModel.Design; -using System.Reflection; -using Csla; -using Csla.Web.Design; - -namespace Csla.Web.Design -{ - - /// - /// Object providing schema information for a - /// business object. - /// - [Serializable()] - public class ObjectViewSchema : IDataSourceViewSchema - { - private string _typeName = ""; - private CslaDataSourceDesigner _designer; - - /// - /// Create an instance of the object. - /// - /// Site containing the control. - /// The business class for - /// which to generate the schema. - public ObjectViewSchema(CslaDataSourceDesigner site, string typeName) - { - _typeName = typeName; - _designer = site; - } - - /// - /// Returns a list of child schemas belonging to the - /// object. - /// - /// This schema object only returns - /// schema for the object itself, so GetChildren will - /// always return Nothing (null in C#). - public System.Web.UI.Design.IDataSourceViewSchema[] GetChildren() - { - return null; - } - - /// - /// Returns schema information for each property on - /// the object. - /// - /// All public properties on the object - /// will be reflected in this schema list except - /// for those properties where the - /// Browsable attribute - /// is False. - /// - public System.Web.UI.Design.IDataSourceFieldSchema[] GetFields() - { - ITypeResolutionService typeService = null; - List result = new List(); - - if (_designer != null) - { - Type objectType = null; - try - { - typeService = (ITypeResolutionService)(_designer.Site.GetService(typeof(ITypeResolutionService))); - objectType = typeService.GetType(_typeName, true, false); - - if (typeof(IEnumerable).IsAssignableFrom(objectType)) - { - // this is a list so get the item type - objectType = Utilities.GetChildItemType(objectType); - } - PropertyDescriptorCollection props = TypeDescriptor.GetProperties(objectType); - foreach (PropertyDescriptor item in props) - { - if (item.IsBrowsable) - { - result.Add(new ObjectFieldInfo(item)); - } - } - } - catch - { /* do nothing - just swallow exception */ } - } - - return result.ToArray(); - } - - /// - /// Returns the name of the schema. - /// - public string Name - { - get - { - return "Default"; - } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/InsertObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/InsertObjectArgs.cs deleted file mode 100644 index 491f5486..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/InsertObjectArgs.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Web -{ - /// - /// Argument object used in the InsertObject event. - /// - public class InsertObjectArgs : EventArgs - { - - private System.Collections.IDictionary _values; - private int _rowsAffected; - - /// - /// Gets or sets the number of rows affected - /// while handling this event. - /// - /// - /// - /// - /// The code handling the event should set this - /// value to indicate the number of rows affected - /// by the operation. - /// - public int RowsAffected - { - get { return _rowsAffected; } - set { _rowsAffected = value; } - } - - /// - /// The list of data values entered by the user. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary Values - { - get { return _values; } - } - - /// - /// Create an instance of the object. - /// - public InsertObjectArgs(System.Collections.IDictionary values) - { - _values = values; - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/SelectObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/SelectObjectArgs.cs deleted file mode 100644 index c0b74cac..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/SelectObjectArgs.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Text; - -namespace Csla.Web -{ -/// -/// Argument object used in the SelectObject event. -/// - [Serializable] - public class SelectObjectArgs : EventArgs - { - - private object _businessObject; - private string _sortExpression; - private string _sortProperty; - private ListSortDirection _sortDirection; - private int _startRowIndex; - private int _maximumRows; - private bool _retrieveTotalRowCount; - - /// - /// Get or set a reference to the business object - /// that is created and populated by the SelectObject - /// event handler in the web page. - /// - /// A reference to a CSLA .NET business object. - public object BusinessObject - { - get { return _businessObject; } - set { _businessObject = value; } - } - - /// - /// Gets the sort expression that should be used to - /// sort the data being returned to the data source - /// control. - /// - public string SortExpression - { - get - { - return _sortExpression; - } - } - - /// - /// Gets the property name for the sort if only one - /// property/column name is specified. - /// - /// - /// If multiple properties/columns are specified - /// for the sort, you must parse the value from - /// to find all the - /// property names and sort directions for the sort. - /// - public string SortProperty - { - get - { - return _sortProperty; - } - } - - /// - /// Gets the sort direction for the sort if only - /// one property/column name is specified. - /// - /// - /// If multiple properties/columns are specified - /// for the sort, you must parse the value from - /// to find all the - /// property names and sort directions for the sort. - /// - public ListSortDirection SortDirection - { - get - { - return _sortDirection; - } - } - - /// - /// Gets the index for the first row that will be - /// displayed. This should be the first row in - /// the resulting collection set into the - /// property. - /// - public int StartRowIndex - { - get - { - return _startRowIndex; - } - } - - /// - /// Gets the maximum number of rows that - /// should be returned as a result of this - /// query. For paged collections, this is the - /// page size. - /// - public int MaximumRows - { - get - { - return _maximumRows; - } - } - - /// - /// Gets a value indicating whether the - /// query should return the total row count - /// through the - /// - /// interface. - /// - public bool RetrieveTotalRowCount - { - get - { - return _retrieveTotalRowCount; - } - } - - /// - /// Creates an instance of the object, initializing - /// it with values from data binding. - /// - /// Values provided from data binding. - public SelectObjectArgs(System.Web.UI.DataSourceSelectArguments args) - { - - _startRowIndex = args.StartRowIndex; - _maximumRows = args.MaximumRows; - _retrieveTotalRowCount = args.RetrieveTotalRowCount; - - _sortExpression = args.SortExpression; - if (!(string.IsNullOrEmpty(_sortExpression))) - { - if (_sortExpression.Length >= 5 && - _sortExpression.Substring(_sortExpression.Length - 5) == " DESC") - { - _sortProperty = _sortExpression.Substring(0, _sortExpression.Length - 5); - _sortDirection = ListSortDirection.Descending; - - } - else - { - _sortProperty = args.SortExpression; - _sortDirection = ListSortDirection.Ascending; - } - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/UpdateObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/UpdateObjectArgs.cs deleted file mode 100644 index 4424e8e3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/UpdateObjectArgs.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Web -{ - /// - /// Argument object used in the UpdateObject event. - /// - public class UpdateObjectArgs : EventArgs - { - - private System.Collections.IDictionary _keys; - private System.Collections.IDictionary _values; - private System.Collections.IDictionary _oldValues; - private int _rowsAffected; - - /// - /// Gets or sets the number of rows affected - /// while handling this event. - /// - /// - /// - /// - /// The code handling the event should set this - /// value to indicate the number of rows affected - /// by the operation. - /// - public int RowsAffected - { - get { return _rowsAffected; } - set { _rowsAffected = value; } - } - - /// - /// The list of key values entered by the user. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary Keys - { - get { return _keys; } - } - - /// - /// The list of data values entered by the user. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary Values - { - get { return _values; } - } - - /// - /// The list of old data values maintained by - /// data binding. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary OldValues - { - get { return _oldValues; } - } - - /// - /// Creates an instance of the object. - /// - public UpdateObjectArgs(System.Collections.IDictionary keys, System.Collections.IDictionary values, System.Collections.IDictionary oldValues) - { - _keys = keys; - _values = values; - _oldValues = oldValues; - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/BindingSourceRefresh.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/BindingSourceRefresh.cs deleted file mode 100644 index 31f4125f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/BindingSourceRefresh.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Windows.Forms; - -// code from Bill McCarthy -// http://msmvps.com/bill/archive/2005/10/05/69012.aspx -// used with permission - -namespace Csla.Windows -{ - /// - /// Windows Forms extender control that resolves the - /// data refresh issue with data bound detail controls - /// as discussed in Chapter 5. - /// - [DesignerCategory("")] - [ProvideProperty("ReadValuesOnChange", typeof(BindingSource))] - public class BindingSourceRefresh : Component, IExtenderProvider - { - - private Dictionary _sources = new Dictionary(); - - /// - /// Creates an instance of the object. - /// - /// Container of the control. - public BindingSourceRefresh(IContainer container) - { - container.Add(this); - } - - /// - /// Gets a value indicating whether the extender control - /// can extend the specified control. - /// - /// The control to be extended. - /// - /// This control only extends controls. - /// - public bool CanExtend(object extendee) - { - if (extendee is BindingSource) - return true; - return false; - } - - /// - /// Gets the value of the custom ReadValuesOnChange extender - /// property added to extended controls. - /// - /// Control being extended. - public bool GetReadValuesOnChange(BindingSource source) - { - if (_sources.ContainsKey(source)) - return _sources[source]; - return false; - } - - /// - /// Sets the value of the custom ReadValuesOnChange extender - /// property added to extended controls. - /// - /// Control being extended. - /// New value of property. - /// - public void SetReadValuesOnChange( - BindingSource source, bool value) - { - if (_sources.ContainsKey(source)) - _sources[source] = value; - else - _sources.Add(source, value); - if (value) - { - // hook - source.BindingComplete += - new BindingCompleteEventHandler(Source_BindingComplete); - } - else - { - // unhook - source.BindingComplete -= - new BindingCompleteEventHandler(Source_BindingComplete); - } - } - - private void Source_BindingComplete( - object sender, BindingCompleteEventArgs e) - { - e.Binding.ReadValue(); - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/ReadWriteAuthorization.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/ReadWriteAuthorization.cs deleted file mode 100644 index 23cd5d83..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/ReadWriteAuthorization.cs +++ /dev/null @@ -1,222 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Windows.Forms; -using System.Reflection; - -namespace Csla.Windows -{ - /// - /// Windows Forms extender control that automatically - /// enables and disables detail form controls based - /// on the authorization settings from a CSLA .NET - /// business object. - /// - [DesignerCategory("")] - [ProvideProperty("ApplyAuthorization", typeof(Control))] - public class ReadWriteAuthorization : Component, IExtenderProvider - { - - private Dictionary _sources = - new Dictionary(); - - /// - /// Creates an instance of the object. - /// - /// The container of the control. - public ReadWriteAuthorization(IContainer container) - { container.Add(this); } - - /// - /// Gets a value indicating whether the extender control - /// can extend the specified control. - /// - /// The control to be extended. - /// - /// Any control implementing either a ReadOnly property or - /// Enabled property can be extended. - /// - public bool CanExtend(object extendee) - { - if (IsPropertyImplemented(extendee, "ReadOnly") - || IsPropertyImplemented(extendee, "Enabled")) - return true; - else - return false; - } - - /// - /// Gets the custom ApplyAuthorization extender - /// property added to extended controls. - /// - /// Control being extended. - public bool GetApplyAuthorization(Control source) - { - if (_sources.ContainsKey(source)) - return _sources[source]; - else - return false; - } - - /// - /// Sets the custom ApplyAuthorization extender - /// property added to extended controls. - /// - /// Control being extended. - /// New value of property. - public void SetApplyAuthorization(Control source, bool value) - { - if (_sources.ContainsKey(source)) - _sources[source] = value; - else - _sources.Add(source, value); - } - - /// - /// Causes the ReadWriteAuthorization control - /// to apply authorization rules from the business - /// object to all extended controls on the form. - /// - /// - /// Call this method to refresh the display of detail - /// controls on the form any time the authorization - /// rules may have changed. Examples include: after - /// a user logs in or out, and after an object has - /// been updated, inserted, deleted or retrieved - /// from the database. - /// - public void ResetControlAuthorization() - { - foreach (KeyValuePair item in _sources) - { - if (item.Value) - { - // apply authorization rules - ApplyAuthorizationRules(item.Key); - } - } - } - - private void ApplyAuthorizationRules(Control control) - { - foreach (Binding binding in control.DataBindings) - { - // get the BindingSource if appropriate - if (binding.DataSource is BindingSource) - { - BindingSource bs = - (BindingSource)binding.DataSource; - // get the BusinessObject if appropriate - Csla.Security.IAuthorizeReadWrite ds = - bs.Current as Csla.Security.IAuthorizeReadWrite; - if (ds != null) - { - // get the object property name - string propertyName = - binding.BindingMemberInfo.BindingField; - - ApplyReadRules( - control, binding, - ds.CanReadProperty(propertyName)); - ApplyWriteRules( - control, binding, - ds.CanWriteProperty(propertyName)); - } - } - } - } - - private void ApplyReadRules( - Control ctl, Binding binding, - bool canRead) - { - // enable/disable reading of the value - if (canRead) - { - bool couldRead = ctl.Enabled; - ctl.Enabled = true; - binding.Format -= - new ConvertEventHandler(ReturnEmpty); - if (!couldRead) binding.ReadValue(); - } - else - { - ctl.Enabled = false; - binding.Format += - new ConvertEventHandler(ReturnEmpty); - - // clear the value displayed by the control - PropertyInfo propertyInfo = - ctl.GetType().GetProperty(binding.PropertyName, - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public); - if (propertyInfo != null) - { - propertyInfo.SetValue(ctl, - GetEmptyValue( - Utilities.GetPropertyType( - propertyInfo.PropertyType)), - new object[] { }); - } - } - } - - private void ApplyWriteRules( - Control ctl, Binding binding, - bool canWrite) - { - if (ctl is Label) return; - - // enable/disable writing of the value - PropertyInfo propertyInfo = - ctl.GetType().GetProperty("ReadOnly", - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public); - if (propertyInfo != null) - { - bool couldWrite = - (!(bool)propertyInfo.GetValue( - ctl, new object[] { })); - propertyInfo.SetValue( - ctl, !canWrite, new object[] { }); - if ((!couldWrite) && (canWrite)) - binding.ReadValue(); - } - else - { - bool couldWrite = ctl.Enabled; - ctl.Enabled = canWrite; - if ((!couldWrite) && (canWrite)) - binding.ReadValue(); - } - } - - private void ReturnEmpty( - object sender, ConvertEventArgs e) - { - e.Value = GetEmptyValue(e.DesiredType); - } - - private object GetEmptyValue(Type desiredType) - { - object result = null; - if (desiredType.IsValueType) - result = Activator.CreateInstance(desiredType); - return result; - } - - private static bool IsPropertyImplemented( - object obj, string propertyName) - { - if (obj.GetType().GetProperty(propertyName, - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public) != null) - return true; - else - return false; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/app.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/app.config deleted file mode 100644 index 7eb143a4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/app.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
    - - - - - - http://localhost:4804/WSPortalcs/Service.asmx - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddACriteriaClass.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddACriteriaClass.snippet deleted file mode 100644 index 11cf2341..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddACriteriaClass.snippet +++ /dev/null @@ -1,57 +0,0 @@ - - - -
    - Add a criteria class - Rockford Lhotka - Add a nested criteria class to a CSLA .NET business class. - cslacrit -
    - - - - ClassName - Criteria - - - IdField - String - _id - - - IdType - String - Type of the id field - int - - - IdProperty - String - Name of the id property - Id - - - IdParam - String - Parameter name for id value - id - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddBusinessRegions.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddBusinessRegions.snippet deleted file mode 100644 index e1156177..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddBusinessRegions.snippet +++ /dev/null @@ -1,41 +0,0 @@ - - - -
    - Insert business regions - Rockford Lhotka - Insert CSLA .NET business regions. - cslabiz -
    - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddDataAccessRegion.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddDataAccessRegion.snippet deleted file mode 100644 index ae124145..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddDataAccessRegion.snippet +++ /dev/null @@ -1,66 +0,0 @@ - - - -
    - Insert data access region - Rockford Lhotka - Insert CSLA .NET data access region. - csladata -
    - - - - IdType - Replace with the Id variable type. - int - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddFactoryMethods.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddFactoryMethods.snippet deleted file mode 100644 index 8396c857..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddFactoryMethods.snippet +++ /dev/null @@ -1,59 +0,0 @@ - - - -
    - Define common Csla Factory Methods - Rockford Lhotka - Defines common Csla-style factory methods. - cslafact -
    - - - - ClassName - String - Replace with class name. - BusinessClass - - - CriteriaClassName - String - Replace with the Criteria class name. - Criteria - - - IdName - String - Replace with Id (primary key) variable name. - id - - - IdType - Replace with the Id (primary key) variable type. - int - - - (); -} - -public static $ClassName$ Get$ClassName$($IdType$ $IdName$) -{ - return DataPortal.Fetch<$ClassName$>(new $CriteriaClassName$($IdName$)); -} - -public static void Delete$ClassName$($IdType$ $IdName$) -{ - DataPortal.Delete(new $CriteriaClassName$($IdName$)); -} - -private $ClassName$() -{ /* Require use of factory methods */ } - -#endregion]]> - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaProperty.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaProperty.snippet deleted file mode 100644 index b4a42c0e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaProperty.snippet +++ /dev/null @@ -1,53 +0,0 @@ - - - -
    - Define a Csla Property - Rockford Lhotka - Defines a Csla-style Property with a backing field. - cslaprop -
    - - - - PropertyName - String - Replace with property name. - NewProperty - - - PropertyType - Replace with the property type. - int - - - PrivateVariable - Object - Replace this with the private variable name. - newPropertyValue - - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaReadonlyProperty.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaReadonlyProperty.snippet deleted file mode 100644 index 32494ded..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaReadonlyProperty.snippet +++ /dev/null @@ -1,43 +0,0 @@ - - - -
    - Define a Csla Readonly Property - Rockford Lhotka - Defines a Csla-style readonly Property with a backing field. - cslaroprop -
    - - - - PropertyName - String - Replace with property name. - NewProperty - - - PropertyType - Replace with the property type. - int - - - PrivateVariable - Object - Replace this with the private variable name. - newPropertyValue - - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/CommandObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/CommandObject.cs deleted file mode 100644 index 84f6d45f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/CommandObject.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Templates -{ - [Serializable()] - class CommandObject : CommandBase - { - #region Authorization Methods - - public static bool CanExecuteCommand() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Client-side Code - - // TODO: add your own fields and properties - bool _result; - - public bool Result - { - get { return _result; } - } - - private void BeforeServer() - { - // TODO: implement code to run on client - // before server is called - } - - private void AfterServer() - { - // TODO: implement code to run on client - // after server is called - } - - #endregion - - #region Factory Methods - - public static bool Execute() - { - CommandObject cmd = new CommandObject(); - cmd.BeforeServer(); - cmd = DataPortal.Execute(cmd); - cmd.AfterServer(); - return cmd.Result; - } - - private CommandObject() - { /* require use of factory methods */ } - - #endregion - - #region Server-side Code - - protected override void DataPortal_Execute() - { - // TODO: implement code to run on server - // and set result value(s) - _result = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/DynamicRootList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/DynamicRootList.cs deleted file mode 100644 index c1edf24d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/DynamicRootList.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Data.SqlClient; -using Csla; - -[Serializable()] -public class DynamicRootList : - EditableRootListBase -{ - -#region Authorization Rules - - public static bool CanGetObject() - { - // TODO: customize to check user role - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - return ApplicationContext.User.IsInRole(""); - } - -#endregion - -#region Factory Methods - - public static DynamicRootList NewDynamicRootList() - { - return new DynamicRootList(); - } - - public static DynamicRootList GetDynamicRootList() - { - return DataPortal.Fetch(); - } - - private DynamicRootList() - { - // require use of factory methods - } - -#endregion - -#region Data Access - - private void DataPortal_Fetch() - { - - // TODO: load values - RaiseListChangedEvents = false; - using (SqlDataReader dr = null) - { - while (dr.Read()) - { - Add(EditableRoot.GetEditableRoot(dr)); - } - } - RaiseListChangedEvents = true; - - } - -#endregion - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChild.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChild.cs deleted file mode 100644 index 367cc001..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChild.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableChild : BusinessBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - //ValidationRules.AddRule(null, ""); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowWrite("", ""); - } - - #endregion - - #region Factory Methods - - internal static EditableChild NewEditableChild() - { - // TODO: change to use new keyword if not loading defaults - //return new EditableChild(); - return DataPortal.Create(); - } - - internal static EditableChild GetEditableChild(SqlDataReader dr) - { - return new EditableChild(dr); - } - - private EditableChild() - { - MarkAsChild(); - } - - private EditableChild(SqlDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - protected override void DataPortal_Create() - { - // TODO: load default values, or remove method - } - - private void Fetch(SqlDataReader dr) - { - // TODO: load values - MarkOld(); - } - - internal void Insert(object parent) - { - // TODO: insert values - MarkOld(); - } - - internal void Update(object parent) - { - // TODO: update values - MarkOld(); - } - - internal void DeleteSelf() - { - // TODO: delete values - MarkNew(); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChildList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChildList.cs deleted file mode 100644 index abee2013..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChildList.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableChildList : - BusinessListBase - { - #region Factory Methods - - internal static EditableChildList NewEditableChildList() - { - return new EditableChildList(); - } - - internal static EditableChildList GetEditableChildList( - SqlDataReader dr) - { - return new EditableChildList(dr); - } - - private EditableChildList() - { - MarkAsChild(); - } - - private EditableChildList(SqlDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SqlDataReader dr) - { - RaiseListChangedEvents = false; - while (dr.Read()) - { - this.Add(EditableChild.GetEditableChild(dr)); - } - RaiseListChangedEvents = true; - } - - internal void Update(object parent) - { - RaiseListChangedEvents = false; - foreach (EditableChild item in DeletedList) - item.DeleteSelf(); - DeletedList.Clear(); - - foreach (EditableChild item in this) - if (item.IsNew) - item.Insert(parent); - else - item.Update(parent); - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRoot.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRoot.cs deleted file mode 100644 index c90b763a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRoot.cs +++ /dev/null @@ -1,159 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableRoot : BusinessBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - //ValidationRules.AddRule(null, ""); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowWrite("", ""); - } - - public static bool CanAddObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanDeleteObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static EditableRoot NewEditableRoot() - { - return DataPortal.Create(); - } - - public static EditableRoot GetEditableRoot(int id) - { - return DataPortal.Fetch(new Criteria(id)); - } - - public static void DeleteEditableRoot(int id) - { - DataPortal.Delete(new Criteria(id)); - } - - private EditableRoot() - { /* Require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - public Criteria(int id) - { _id = id; } - } - - protected override void DataPortal_Create() - { - // TODO: load default values - } - - private void DataPortal_Fetch(Criteria criteria) - { - // TODO: load values - } - - protected override void DataPortal_Insert() - { - // TODO: insert values - } - - protected override void DataPortal_Update() - { - // TODO: update values - } - - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - private void DataPortal_Delete(Criteria criteria) - { - // TODO: delete values - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootList.cs deleted file mode 100644 index 42b0cc34..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootList.cs +++ /dev/null @@ -1,107 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableRootList : - BusinessListBase - { - #region Authorization Rules - - public static bool CanAddObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanDeleteObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static EditableRootList NewEditableRootList() - { - return new EditableRootList(); - } - - public static EditableRootList GetEditableRootList(int id) - { - return DataPortal.Fetch(new Criteria(id)); - } - - private EditableRootList() - { /* Require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - public Criteria(int id) - { _id = id; } - } - - private void DataPortal_Fetch(Criteria criteria) - { - RaiseListChangedEvents = false; - // TODO: load values - using (SqlDataReader dr = null) - { - while (dr.Read()) - { - this.Add(EditableChild.GetEditableChild(dr)); - } - } - RaiseListChangedEvents = true; - } - - protected override void DataPortal_Update() - { - RaiseListChangedEvents = false; - foreach (EditableChild item in DeletedList) - item.DeleteSelf(); - DeletedList.Clear(); - - foreach (EditableChild item in this) - if (item.IsNew) - item.Insert(this); - else - item.Update(this); - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootParent.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootParent.cs deleted file mode 100644 index 90f69dfe..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootParent.cs +++ /dev/null @@ -1,178 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableRootParent : BusinessBase - { - #region Business Methods - - private int _id; - private EditableChildList _children = - EditableChildList.NewEditableChildList(); - - public int id - { - get - { - CanReadProperty(true); - return _id; - } - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - public EditableChildList Children - { - get { return _children; } - } - - public override bool IsValid - { - get - { - return base.IsValid && _children.IsValid; - } - } - - public override bool IsDirty - { - get - { - return base.IsDirty || _children.IsDirty; - } - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - } - - public static bool CanAddObject() - { - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanGetObject() - { - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanEditObject() - { - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanDeleteObject() - { - return ApplicationContext.User.IsInRole(""); - } - - #endregion - - #region Factory Methods - - public static EditableRootParent NewEditableRootParent() - { - return DataPortal.Create(); - } - - public static EditableRootParent GetEditableRootParent(int id) - { - return DataPortal.Create(new Criteria(id)); - } - - public static void DeleteEditableRootParent(int id) - { - DataPortal.Delete(new Criteria(id)); - } - - private EditableRootParent() - { /* Require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - public Criteria(int id) - { _id = id; } - } - - protected override void DataPortal_Create() - { - // TODO: load default values - } - - private void DataPortal_Fetch(Criteria criteria) - { - // TODO: load values - using (SqlDataReader dr = null) - { - _children = - EditableChildList.GetEditableChildList(dr); - } - } - - protected override void DataPortal_Insert() - { - // TODO: insert values - _children.Update(this); - } - - protected override void DataPortal_Update() - { - // TODO: update values - _children.Update(this); - } - - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - private void DataPortal_Delete(Criteria criteria) - { - // TODO: delete values - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/NameValueList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/NameValueList.cs deleted file mode 100644 index efa1f2eb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/NameValueList.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class NameValueList : NameValueListBase - { - #region Factory Methods - - private static NameValueList _list; - - public static NameValueList GetNameValueList() - { - if (_list == null) - _list = DataPortal.Fetch( - new Criteria(typeof(NameValueList))); - return _list; - } - - public static void InvalidateCache() - { - _list = null; - } - - private NameValueList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - protected override void DataPortal_Fetch(object criteria) - { - RaiseListChangedEvents = false; - IsReadOnly = false; - // TODO: load values - using (SqlDataReader dr = null) - { - while (dr.Read()) - { - Add(new NameValueListBase. - NameValuePair(dr.GetInt32(0), dr.GetString(1))); - } - } - IsReadOnly = true; - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Properties/AssemblyInfo.cs deleted file mode 100644 index 895462f1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Templates")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Magenic Technologies")] -[assembly: AssemblyProduct("Templates")] -[assembly: AssemblyCopyright("Copyright © Magenic Technologies 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0e5f6790-52c6-495d-87ec-ec3dc6f1ea22")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyChild.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyChild.cs deleted file mode 100644 index 7c955784..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyChild.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class ReadOnlyChild : ReadOnlyBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - private string _data = string.Empty; - - public int Id - { - get { return _id; } - } - - public string Data - { - get { return _data; } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Factory Methods - - internal static ReadOnlyChild GetReadOnlyChild(SqlDataReader dr) - { - return new ReadOnlyChild(dr); - } - - private ReadOnlyChild() - { /* require use of factory methods */ } - - private ReadOnlyChild(SqlDataReader dr) - { - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SqlDataReader dr) - { - // load values - _id = dr.GetInt32(0); - _data = dr.GetString(1); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyList.cs deleted file mode 100644 index 4d9b63f6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyList.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class ReadOnlyList : - ReadOnlyListBase - { - #region Authorization Rules - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static ReadOnlyList GetReadOnlyList(string filter) - { - return DataPortal.Fetch(new Criteria(filter)); - } - - private ReadOnlyList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private string _filter; - public string Filter - { - get { return _filter; } - } - public Criteria(string filter) - { - _filter = filter; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - RaiseListChangedEvents = false; - IsReadOnly = false; - // TODO: load values - using (SqlDataReader dr = null) - { - while (dr.Read()) - Add(ReadOnlyChild.GetReadOnlyChild(dr)); - } - IsReadOnly = true; - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyRoot.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyRoot.cs deleted file mode 100644 index 87d62cec..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyRoot.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Templates -{ - [Serializable()] - class ReadOnlyRoot : ReadOnlyBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowRead("", ""); - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static ReadOnlyRoot GetReadOnlyRoot(int id) - { - return DataPortal.Fetch(new Criteria(id)); - } - - private ReadOnlyRoot() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - - public int Id - { - get { return _id; } - } - public Criteria(int id) - { - _id = id; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - // TODO: load values - _id = criteria.Id; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/SwitchableObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/SwitchableObject.cs deleted file mode 100644 index bd141a27..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/SwitchableObject.cs +++ /dev/null @@ -1,211 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class SwitchableObject : BusinessBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - //ValidationRules.AddRule(null, ""); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowWrite("", ""); - } - - public static bool CanAddObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanDeleteObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static SwitchableObject NewSwitchableRoot() - { - return DataPortal.Create( - new RootCriteria()); - } - - internal static SwitchableObject NewSwitchableChild() - { - return DataPortal.Create( - new ChildCriteria()); - } - - public static SwitchableObject GetSwitchableRoot(int id) - { - return DataPortal.Fetch( - new RootCriteria(id)); - } - - internal static SwitchableObject GetSwitchableChild( - SqlDataReader dr) - { - return new SwitchableObject(dr); - } - - public static void DeleteSwitchableObject(int id) - { - DataPortal.Delete(new RootCriteria(id)); - } - - private SwitchableObject() - { /* Require use of factory methods */ } - - private SwitchableObject(SqlDataReader dr) - { - Fetch(dr); - } - - #endregion - - #region Data Access - - [Serializable()] - private class RootCriteria - { - private int _id; - public int Id - { - get { return _id; } - } - public RootCriteria(int id) - { _id = id; } - public RootCriteria() - { } - } - - [Serializable()] - private class ChildCriteria - { } - - private void DataPortal_Create(RootCriteria criteria) - { - DoCreate(); - } - - private void DataPortal_Create(ChildCriteria criteria) - { - MarkAsChild(); - DoCreate(); - } - - private void DoCreate() - { - // TODO: load default values - } - - private void DataPortal_Fetch(RootCriteria criteria) - { - // TODO: create data reader to load values - using (SqlDataReader dr = null) - { - DoFetch(dr); - } - } - - private void Fetch(SqlDataReader dr) - { - MarkAsChild(); - DoFetch(dr); - } - - private void DoFetch(SqlDataReader dr) - { - // TODO: load values - } - - protected override void DataPortal_Insert() - { - // TODO: insert values - } - - protected override void DataPortal_Update() - { - // TODO: update values - } - - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new RootCriteria(_id)); - } - - private void DataPortal_Delete(RootCriteria criteria) - { - // TODO: delete values - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.csproj deleted file mode 100644 index ad746b00..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.csproj +++ /dev/null @@ -1,62 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {614537E1-9171-4052-BA7C-044CE96BBD62} - Library - Properties - Templates - Templates - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\Csla\bin\Debug\Csla.dll - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.sln b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.sln deleted file mode 100644 index 6e5f4984..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Templates", "Templates.csproj", "{614537E1-9171-4052-BA7C-044CE96BBD62}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {614537E1-9171-4052-BA7C-044CE96BBD62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {614537E1-9171-4052-BA7C-044CE96BBD62}.Debug|Any CPU.Build.0 = Debug|Any CPU - {614537E1-9171-4052-BA7C-044CE96BBD62}.Release|Any CPU.ActiveCfg = Release|Any CPU - {614537E1-9171-4052-BA7C-044CE96BBD62}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/cslacs.sln b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/cslacs.sln deleted file mode 100644 index 5a2886d1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/cslacs.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Csla", "Csla\Csla.csproj", "{9DA591ED-C570-47AC-8E5D-35B039E07973}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F19F70D9-566D-4303-B0CD-69327F32FCFF}" - ProjectSection(SolutionItems) = preProject - license.txt = license.txt - readme.txt = readme.txt - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(TestCaseManagementSettings) = postSolution - CategoryFile = cslacs.vsmdi - EndGlobalSection -EndGlobal diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/license.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/license.txt deleted file mode 100644 index 3ed9d350..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/license.txt +++ /dev/null @@ -1,99 +0,0 @@ -LICENSE AND WARRANTY - -The CSLA .NET framework is Copyright 2007 by Rockford Lhotka. - -You can use this Software for any noncommercial purpose, including -distributing derivative works. You can use this Software for any commercial -purpose other than you may not use it, in whole or in part, to create a -commercial framework product. - -In short, you can use CSLA .NET and modify it to create other commercial or -business software, you just can't take the framework itself, modify it and -sell it as a product. - -In return, the owner simply requires that you agree: - -This Software License Agreement ("Agreement") is effective -upon your use of CSLA .NET ("Software"). - -1. Ownership. -The CSLA .NET framework is Copyright 2007 by Rockford Lhotka, -Eden Prairie, MN, USA. - -2. Copyright Notice. -You must not remove any copyright notices from the Software source code. - -3. License. -The owner hereby grants a perpetual, non-exclusive, limited license to use -the Software as set forth in this Agreement. - -4. Source Code Distribution. -If you distribute the Software in source code form you must do so only under -this License (i.e. you must include a complete copy of this License with -your distribution). - -5. Binary or Object Distribution. -You may distribute the Software in binary or object form with no requirement -to display copyright notices to the end user. The binary or object form must -retain the copyright notices included in the Software source code. - -6. Restrictions. -You may not sell the Software. If you create a software development framework -based on the Software as a derivative work, you may not sell that derivative -work. This does not restrict the use of the Software for creation of other -types of non-commercial or commercial applications or derivative works. - -7. Disclaimer of Warranty. -The Software comes "as is", with no warranties. None whatsoever. This means -no express, implied, statutory or other warranty, including without -limitation, warranties of merchantability or fitness for a particular -purpose, noninfringement, or the presence or absence of errors, whether or -not discoverable. Also, you must pass this disclaimer on whenever you -distribute the Software. - -8. Liability. -Neither Rockford Lhotka nor any contributor to the Software will be liable -for any of those types of damages known as indirect, special, consequential, -incidental, punitive or exemplary related to the Software or this License, to -the maximum extent the law permits, no matter what legal theory its based -on. Also, you must pass this limitation of liability on whenever you -distribute the Software. - -9. Patents. -If you sue anyone over patents that you think may apply to the Software -for a person's use of the Software, your license to the Software ends -automatically. - -The patent rights, if any, licensed hereunder only apply to the Software, -not to any derivative works you make. - -10. Termination. -Your rights under this License end automatically if you breach it in any way. - -Rockford Lhotka reserves the right to release the Software under different -license terms or to stop distributing the Software at any time. Such an -election will not serve to withdraw this Agreement, and this Agreement will -continue in full force and effect unless terminated as stated above. - -11. Governing Law. -This Agreement shall be construed and enforced in accordance with the laws -of the state of Minnesota, USA. - -12. No Assignment. -Neither this Agreement nor any interest in this Agreement may be assigned -by Licensee without the prior express written approval of Developer. - -13. Final Agreement. -This Agreement terminates and supersedes all prior understandings or -agreements on the subject matter hereof. This Agreement may be modified -only by a further writing that is duly executed by both parties. - -14. Severability. -If any term of this Agreement is held by a court of competent jurisdiction -to be invalid or unenforceable, then this Agreement, including all of the -remaining terms, will remain in full force and effect as if such invalid -or unenforceable term had never been included. - -15. Headings. -Headings used in this Agreement are provided for convenience only and shall -not be used to construe meaning or intent. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/readme.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/readme.txt deleted file mode 100644 index 302e8c18..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -For information on installation, book errata, updates to the framework and so forth, -please visit http://www.lhotka.net/cslanet. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesHostcs.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesHostcs.csproj deleted file mode 100644 index fe16b439..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesHostcs.csproj +++ /dev/null @@ -1,67 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {B390C88E-66FD-4E84-8149-29852AFA8723} - Library - Properties - EnterpriseServicesHostcs - EnterpriseServicesHostcs - true - eskey.snk - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\csla20cs\Csla\bin\Debug\Csla.dll - - - - - - - - - - - - - - - - - - - - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96} - ProjectTracker.Library - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesPortal.cs deleted file mode 100644 index b1f397b7..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesPortal.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.EnterpriseServices; -using System.Runtime.InteropServices; - -namespace EnterpriseServicesHost -{ - [EventTrackingEnabled(true)] - [ComVisible(true)] - public class EnterpriseServicesPortal : - Csla.Server.Hosts.EnterpriseServicesPortal - { - // no code needed - implementation is in the base class - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesProxy.cs deleted file mode 100644 index d5cf7350..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesProxy.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace EnterpriseServicesHost -{ - public class EnterpriseServicesProxy : - Csla.DataPortalClient.EnterpriseServicesProxy - { - protected override - Csla.Server.Hosts.EnterpriseServicesPortal GetServerObject() - { - return new EnterpriseServicesPortal(); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesSettings.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesSettings.cs deleted file mode 100644 index b0b67fc4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System; -using System.EnterpriseServices; - -[assembly: ApplicationActivation(ActivationOption.Server)] -[assembly: ApplicationName("ProjectTracker20cs Portal")] -[assembly: Description("Project Tracker DataPortal host")] -[assembly: ApplicationAccessControl(false)] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/Properties/AssemblyInfo.cs deleted file mode 100644 index 779fa26e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("EnterpriseServicesHostcs")] -[assembly: AssemblyDescription("Enterprise Services host")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ProjectTracker")] -[assembly: AssemblyCopyright("Copyright © Rockford Lhotka 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0baa668e-9d03-48e3-860e-36628322b5ef")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.config deleted file mode 100644 index 593792d5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.manifest b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.manifest deleted file mode 100644 index 4b971cc5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.manifest +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/eskey.snk b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/eskey.snk deleted file mode 100644 index 3b77aa01..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/eskey.snk and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTData.dbp b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTData.dbp deleted file mode 100644 index 5cbb4758..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTData.dbp +++ /dev/null @@ -1,25 +0,0 @@ -# Microsoft Developer Studio Project File - Database Project -Begin DataProject = "PTData" - MSDTVersion = "80" - DefDBRef = "PTracker.mdf" - Begin DBRefFolder = "Database References" - Begin DBRefNode = "PTracker.mdf" - ConnectStr = "Data Source=.\SQLEXPRESS;AttachDbFilename=""D:\Visual Studio Projects\csla20\ProjectTracker20vb\PTracker.mdf"";Integrated Security=True;Connect Timeout=30;User Instance=True" - Provider = "{91510608-8809-4020-8897-FBA057E22D54}" - Colorizer = 6 - End - Begin DBRefNode = "Security.mdf" - ConnectStr = "Data Source=.\SQLEXPRESS;AttachDbFilename=""D:\Visual Studio Projects\csla20\ProjectTracker20vb\Security.mdf"";Integrated Security=True;Connect Timeout=30;User Instance=True" - Provider = "{91510608-8809-4020-8897-FBA057E22D54}" - Colorizer = 6 - End - End - Begin Folder = "PTracker" - Script = "StoredProcedures.SQL" - Script = "Tables.SQL" - End - Begin Folder = "Security" - Script = "StoredProcedures.SQL" - Script = "Tables.SQL" - End -End diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/StoredProcedures.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/StoredProcedures.SQL deleted file mode 100644 index 6c66fd28..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/StoredProcedures.SQL +++ /dev/null @@ -1,997 +0,0 @@ -/****** Object: StoredProcedure [dbo].[addAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addAssignment]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addAssignment] - -GO - -/****** Object: StoredProcedure [dbo].[updateRole] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateRole]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateRole] - -GO - -/****** Object: StoredProcedure [dbo].[addProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addProject] - -GO - -/****** Object: StoredProcedure [dbo].[addResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addResource] - -GO - -/****** Object: StoredProcedure [dbo].[addRole] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addRole]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addRole] - -GO - -/****** Object: StoredProcedure [dbo].[deleteAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteAssignment]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteAssignment] - -GO - -/****** Object: StoredProcedure [dbo].[deleteProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteProject] - -GO - -/****** Object: StoredProcedure [dbo].[deleteResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteResource] - -GO - -/****** Object: StoredProcedure [dbo].[deleteRole] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteRole]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteRole] - -GO - -/****** Object: StoredProcedure [dbo].[existsProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[existsProject] - -GO - -/****** Object: StoredProcedure [dbo].[existsResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[existsResource] - -GO - -/****** Object: StoredProcedure [dbo].[getProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getProject] - -GO - -/****** Object: StoredProcedure [dbo].[getProjects] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProjects]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getProjects] - -GO - -/****** Object: StoredProcedure [dbo].[getResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getResource] - -GO - -/****** Object: StoredProcedure [dbo].[getResources] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResources]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getResources] - -GO - -/****** Object: StoredProcedure [dbo].[getRoles] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getRoles]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getRoles] - -GO - -/****** Object: StoredProcedure [dbo].[updateAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateAssignment]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateAssignment] - -GO - -/****** Object: StoredProcedure [dbo].[updateProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateProject] - -GO - -/****** Object: StoredProcedure [dbo].[updateResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateResource] - -GO - -/****** Object: StoredProcedure [dbo].[addAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addAssignment]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE addAssignment - - ( - - @projectId uniqueidentifier, - - @resourceId int, - - @assigned datetime, - - @role int, - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Assignments - - (ProjectId,ResourceId,Assigned,Role) - - VALUES - - (@projectId,@resourceId,@assigned,@role) - - - - SELECT @newLastChanged = LastChanged - - FROM Assignments - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateRole] Script Date: 01/18/2006 09:28:49 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateRole]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[updateRole] - - ( - - @id int, - - @name varchar(50), - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Roles - - SET - - Name=@name - - WHERE Id=@id - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - SELECT @newLastChanged = LastChanged - - FROM Roles WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[addProject] Script Date: 01/18/2006 09:28:49 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE addProject - - ( - - @id uniqueidentifier, - - @name varchar(50), - - @started datetime, - - @ended datetime, - - @description varchar(MAX), - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Projects - - (Id,Name,Started,Ended,Description) - - VALUES - - (@id,@name,@started,@ended,@description) - - - SELECT @newLastChanged = LastChanged - - FROM Projects WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[addResource] Script Date: 01/18/2006 09:28:50 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE addResource - - ( - - @lastName varchar(50), - - @firstName varchar(50), - - @newId int output, - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Resources - - (LastName,FirstName) - - VALUES - - (@lastName,@firstName) - - - - SELECT @newId = Id, @newLastChanged = LastChanged - - FROM Resources WHERE Id=SCOPE_IDENTITY() - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[addRole] Script Date: 01/18/2006 09:28:51 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addRole]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[addRole] - - ( - - @id int, - - @name varchar(50), - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Roles - - (Id,Name) - - VALUES - - (@id,@name) - - - SELECT @newLastChanged = LastChanged - - FROM Roles WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteAssignment] Script Date: 01/18/2006 09:28:51 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteAssignment]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE deleteAssignment - - ( - - @projectId uniqueidentifier, - - @resourceId int - - ) - -AS - - DELETE Assignments - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteProject] Script Date: 01/18/2006 09:28:52 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE deleteProject - - ( - - @id uniqueidentifier - - ) - -AS - - DELETE Assignments - - WHERE ProjectId=@id - - - - DELETE Projects - - WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteResource] Script Date: 01/18/2006 09:28:52 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE deleteResource - - ( - - @id int - - ) - -AS - - DELETE Assignments - - WHERE ResourceId=@id - - - DELETE Resources - - WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteRole] Script Date: 01/18/2006 09:28:52 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteRole]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[deleteRole] - - ( - - @id int - - ) - -AS - - DELETE Roles - - WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[existsProject] Script Date: 01/18/2006 09:28:53 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE dbo.existsProject - - ( - - @id uniqueidentifier - - ) - -AS - - SELECT COUNT(*) - - FROM Projects WHERE Id=@id - - RETURN - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[existsResource] Script Date: 01/18/2006 09:28:53 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE dbo.existsResource - - ( - - @id int - - ) - -AS - - SELECT COUNT(*) - - FROM Resources WHERE Id=@id - - RETURN - - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getProject] Script Date: 01/18/2006 09:28:54 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getProject - - ( - - @id uniqueidentifier - - ) - -AS - - SELECT Id,Name,Started,Ended,Description,LastChanged - - FROM Projects - - WHERE Id=@id - - - SELECT ResourceId,LastName,FirstName,Assigned,Role,Assignments.LastChanged AS LastChanged - - FROM Resources,Assignments - - WHERE ProjectId=@id AND ResourceId=Id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getProjects] Script Date: 01/18/2006 09:28:54 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProjects]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getProjects - -AS - - SELECT Id, Name - - FROM Projects - - RETURN ' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getResource] Script Date: 01/18/2006 09:28:54 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getResource - - ( - - @id int - - ) - -AS - - SELECT Id,LastName,FirstName,LastChanged - - FROM Resources - - WHERE Id=@id - - - SELECT ProjectId,Name,Assigned,Role,Assignments.LastChanged AS LastChanged - - FROM Projects,Assignments - - WHERE ResourceId=@id AND ProjectId=Id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getResources] Script Date: 01/18/2006 09:28:55 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResources]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getResources - -AS - - SELECT Id,LastName,FirstName - - FROM Resources - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getRoles] Script Date: 01/18/2006 09:28:55 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getRoles]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[getRoles] - -AS - - SELECT Id,Name,LastChanged - - FROM Roles - - RETURN ' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateAssignment] Script Date: 01/18/2006 09:28:55 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateAssignment]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE updateAssignment - - ( - - @projectId uniqueidentifier, - - @resourceId int, - - @assigned datetime, - - @role int, - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Assignments - - SET - - Assigned=@assigned, - - Role=@role - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - SELECT @newLastChanged = LastChanged - - FROM Assignments - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - RETURN - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateProject] Script Date: 01/18/2006 09:28:56 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE updateProject - - ( - - @id uniqueidentifier, - - @name varchar(50), - - @started datetime, - - @ended datetime, - - @description varchar(MAX), - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Projects - - SET - - Name=@name, - - Started=@started, - - Ended=@ended, - - Description=@description - - WHERE Id=@id - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - SELECT @newLastChanged = LastChanged - - FROM Projects WHERE Id=@id - - RETURN - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateResource] Script Date: 01/18/2006 09:28:57 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE updateResource - - ( - - @id int, - - @lastName varchar(50), - - @firstName varchar(50), - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Resources - - SET - - LastName=@lastName, - - FirstName=@firstName - - WHERE Id=@id - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - - SELECT @newLastChanged = LastChanged - - FROM Resources WHERE Id=@id - - RETURN' - -END - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/Tables.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/Tables.SQL deleted file mode 100644 index 6586dd22..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/Tables.SQL +++ /dev/null @@ -1,256 +0,0 @@ -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Projects]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] DROP CONSTRAINT [FK_Assignments_Projects] - -GO - -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Resources]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] DROP CONSTRAINT [FK_Assignments_Resources] - -GO - -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Roles]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] DROP CONSTRAINT [FK_Assignments_Roles] - -GO - -/****** Object: Table [dbo].[Assignments] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Assignments]') AND type in (N'U')) - -DROP TABLE [dbo].[Assignments] - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -DROP TABLE [dbo].[Roles] - -GO - -/****** Object: Table [dbo].[Projects] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Projects]') AND type in (N'U')) - -DROP TABLE [dbo].[Projects] - -GO - -/****** Object: Table [dbo].[Resources] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Resources]') AND type in (N'U')) - -DROP TABLE [dbo].[Resources] - -GO - -/****** Object: Table [dbo].[Assignments] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Assignments]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Assignments]( - - [ProjectId] [uniqueidentifier] NOT NULL, - - [ResourceId] [int] NOT NULL, - - [Assigned] [datetime] NOT NULL, - - [Role] [int] NOT NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Assignments] PRIMARY KEY CLUSTERED - -( - - [ProjectId] ASC, - - [ResourceId] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Roles]( - - [Id] [int] NOT NULL, - - [Name] [varchar](50) NOT NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED - -( - - [Id] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -/****** Object: Table [dbo].[Projects] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Projects]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Projects]( - - [Id] [uniqueidentifier] NOT NULL, - - [Name] [varchar](50) NOT NULL, - - [Started] [datetime] NULL, - - [Ended] [datetime] NULL, - - [Description] [varchar](max) NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Projects] PRIMARY KEY CLUSTERED - -( - - [Id] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -/****** Object: Table [dbo].[Resources] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Resources]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Resources]( - - [Id] [int] IDENTITY(1,1) NOT NULL, - - [LastName] [varchar](50) NULL, - - [FirstName] [varchar](50) NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Resources] PRIMARY KEY CLUSTERED - -( - - [Id] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Projects]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Projects] FOREIGN KEY([ProjectId]) - -REFERENCES [dbo].[Projects] ([Id]) - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Resources]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Resources] FOREIGN KEY([ResourceId]) - -REFERENCES [dbo].[Resources] ([Id]) - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Roles]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Roles] FOREIGN KEY([Role]) - -REFERENCES [dbo].[Roles] ([Id]) - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/StoredProcedures.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/StoredProcedures.SQL deleted file mode 100644 index 79325bc5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/StoredProcedures.SQL +++ /dev/null @@ -1,56 +0,0 @@ -/****** Object: StoredProcedure [dbo].[Login] Script Date: 12/06/2005 11:21:14 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Login]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[Login] - -GO - -/****** Object: StoredProcedure [dbo].[Login] Script Date: 12/06/2005 11:21:14 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Login]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE Login - - ( - - @user varchar(20), - - @pw varchar(20) - - ) - -AS - - SELECT Username - - FROM Users - - WHERE Username=@user AND Password=@pw; - - - - SELECT R.Role - - FROM Users AS U INNER JOIN Roles AS R ON - - R.UserName = U.UserName - - WHERE U.Username = @user and U.Password = @pw - - RETURN' - -END - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/Tables.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/Tables.SQL deleted file mode 100644 index 7590c296..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/Tables.SQL +++ /dev/null @@ -1,116 +0,0 @@ -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Roles_Users]') AND parent_object_id = OBJECT_ID(N'[dbo].[Roles]')) - -ALTER TABLE [dbo].[Roles] DROP CONSTRAINT [FK_Roles_Users] - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:21:00 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -DROP TABLE [dbo].[Roles] - -GO - -/****** Object: Table [dbo].[Users] Script Date: 12/06/2005 11:21:00 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U')) - -DROP TABLE [dbo].[Users] - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:21:00 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Roles]( - - [Username] [varchar](20) NOT NULL, - - [Role] [varchar](20) NOT NULL, - - CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED - -( - - [Username] ASC, - - [Role] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -/****** Object: Table [dbo].[Users] Script Date: 12/06/2005 11:21:00 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Users]( - - [Username] [varchar](20) NOT NULL, - - [Password] [varchar](20) NULL, - - CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED - -( - - [Username] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Roles_Users]') AND parent_object_id = OBJECT_ID(N'[dbo].[Roles]')) - -ALTER TABLE [dbo].[Roles] WITH CHECK ADD CONSTRAINT [FK_Roles_Users] FOREIGN KEY([Username]) - -REFERENCES [dbo].[Users] ([Username]) - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.Designer.cs deleted file mode 100644 index c5e6803d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.Designer.cs +++ /dev/null @@ -1,667 +0,0 @@ -namespace PTServiceClient -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label DescriptionLabel; - System.Windows.Forms.Label EndedLabel; - System.Windows.Forms.Label StartedLabel; - System.Windows.Forms.Label NameLabel; - System.Windows.Forms.Label IdLabel; - System.Windows.Forms.Label NameLabel3; - System.Windows.Forms.Label IdLabel4; - System.Windows.Forms.Label NameLabel1; - System.Windows.Forms.Label IdLabel2; - this.Label3 = new System.Windows.Forms.Label(); - this.Label2 = new System.Windows.Forms.Label(); - this.Label1 = new System.Windows.Forms.Label(); - this.Label5 = new System.Windows.Forms.Label(); - this.Label4 = new System.Windows.Forms.Label(); - this.NameLabel2 = new System.Windows.Forms.Label(); - this.ProjectDataBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.AssignToProjectButton = new System.Windows.Forms.Button(); - this.NameLabel4 = new System.Windows.Forms.Label(); - this.ResourceDataBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.GroupBox1 = new System.Windows.Forms.GroupBox(); - this.ProjectResourcesDataGridView = new System.Windows.Forms.DataGridView(); - this.RoleDataBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ProjectResourcesBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ProjectDetailBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ClearProjectButton = new System.Windows.Forms.Button(); - this.SaveProjectButton = new System.Windows.Forms.Button(); - this.DescriptionTextBox = new System.Windows.Forms.TextBox(); - this.EndedTextBox = new System.Windows.Forms.TextBox(); - this.StartedTextBox = new System.Windows.Forms.TextBox(); - this.NameTextBox = new System.Windows.Forms.TextBox(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.ResourceIdLabel = new System.Windows.Forms.Label(); - this.ProjectIdLabel = new System.Windows.Forms.Label(); - this.GroupBox2 = new System.Windows.Forms.GroupBox(); - this.RoleInfoDataGridView = new System.Windows.Forms.DataGridView(); - this.idDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ProjectDataDataGridView = new System.Windows.Forms.DataGridView(); - this.DataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ResourceDataDataGridView = new System.Windows.Forms.DataGridView(); - this.DataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.label6 = new System.Windows.Forms.Label(); - this.usernameTextBox = new System.Windows.Forms.TextBox(); - this.label7 = new System.Windows.Forms.Label(); - this.passwordTextBox = new System.Windows.Forms.TextBox(); - this.DataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewComboBoxColumn(); - DescriptionLabel = new System.Windows.Forms.Label(); - EndedLabel = new System.Windows.Forms.Label(); - StartedLabel = new System.Windows.Forms.Label(); - NameLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - NameLabel3 = new System.Windows.Forms.Label(); - IdLabel4 = new System.Windows.Forms.Label(); - NameLabel1 = new System.Windows.Forms.Label(); - IdLabel2 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataBindingSource)).BeginInit(); - this.GroupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleDataBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDetailBindingSource)).BeginInit(); - this.GroupBox2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.RoleInfoDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataDataGridView)).BeginInit(); - this.SuspendLayout(); - // - // DescriptionLabel - // - DescriptionLabel.AutoSize = true; - DescriptionLabel.Location = new System.Drawing.Point(7, 148); - DescriptionLabel.Name = "DescriptionLabel"; - DescriptionLabel.Size = new System.Drawing.Size(63, 13); - DescriptionLabel.TabIndex = 8; - DescriptionLabel.Text = "Description:"; - // - // EndedLabel - // - EndedLabel.AutoSize = true; - EndedLabel.Location = new System.Drawing.Point(7, 117); - EndedLabel.Name = "EndedLabel"; - EndedLabel.Size = new System.Drawing.Size(41, 13); - EndedLabel.TabIndex = 6; - EndedLabel.Text = "Ended:"; - // - // StartedLabel - // - StartedLabel.AutoSize = true; - StartedLabel.Location = new System.Drawing.Point(7, 88); - StartedLabel.Name = "StartedLabel"; - StartedLabel.Size = new System.Drawing.Size(44, 13); - StartedLabel.TabIndex = 4; - StartedLabel.Text = "Started:"; - // - // NameLabel - // - NameLabel.AutoSize = true; - NameLabel.Location = new System.Drawing.Point(7, 59); - NameLabel.Name = "NameLabel"; - NameLabel.Size = new System.Drawing.Size(38, 13); - NameLabel.TabIndex = 2; - NameLabel.Text = "Name:"; - // - // IdLabel - // - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(7, 30); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 0; - IdLabel.Text = "Id:"; - // - // NameLabel3 - // - NameLabel3.AutoSize = true; - NameLabel3.Location = new System.Drawing.Point(9, 153); - NameLabel3.Name = "NameLabel3"; - NameLabel3.Size = new System.Drawing.Size(38, 13); - NameLabel3.TabIndex = 7; - NameLabel3.Text = "Name:"; - // - // IdLabel4 - // - IdLabel4.AutoSize = true; - IdLabel4.Location = new System.Drawing.Point(9, 130); - IdLabel4.Name = "IdLabel4"; - IdLabel4.Size = new System.Drawing.Size(19, 13); - IdLabel4.TabIndex = 5; - IdLabel4.Text = "Id:"; - // - // NameLabel1 - // - NameLabel1.AutoSize = true; - NameLabel1.Location = new System.Drawing.Point(7, 68); - NameLabel1.Name = "NameLabel1"; - NameLabel1.Size = new System.Drawing.Size(38, 13); - NameLabel1.TabIndex = 2; - NameLabel1.Text = "Name:"; - // - // IdLabel2 - // - IdLabel2.AutoSize = true; - IdLabel2.Location = new System.Drawing.Point(9, 44); - IdLabel2.Name = "IdLabel2"; - IdLabel2.Size = new System.Drawing.Size(19, 13); - IdLabel2.TabIndex = 0; - IdLabel2.Text = "Id:"; - // - // Label3 - // - this.Label3.AutoSize = true; - this.Label3.Location = new System.Drawing.Point(596, 93); - this.Label3.Name = "Label3"; - this.Label3.Size = new System.Drawing.Size(34, 13); - this.Label3.TabIndex = 13; - this.Label3.Text = "Roles"; - // - // Label2 - // - this.Label2.AutoSize = true; - this.Label2.Location = new System.Drawing.Point(293, 93); - this.Label2.Name = "Label2"; - this.Label2.Size = new System.Drawing.Size(204, 13); - this.Label2.TabIndex = 12; - this.Label2.Text = "Resources (double-click to change name)"; - // - // Label1 - // - this.Label1.AutoSize = true; - this.Label1.Location = new System.Drawing.Point(10, 93); - this.Label1.Name = "Label1"; - this.Label1.Size = new System.Drawing.Size(45, 13); - this.Label1.TabIndex = 11; - this.Label1.Text = "Projects"; - // - // Label5 - // - this.Label5.AutoSize = true; - this.Label5.Location = new System.Drawing.Point(9, 109); - this.Label5.Name = "Label5"; - this.Label5.Size = new System.Drawing.Size(56, 13); - this.Label5.TabIndex = 4; - this.Label5.Text = "Resource:"; - // - // Label4 - // - this.Label4.AutoSize = true; - this.Label4.Location = new System.Drawing.Point(9, 25); - this.Label4.Name = "Label4"; - this.Label4.Size = new System.Drawing.Size(43, 13); - this.Label4.TabIndex = 4; - this.Label4.Text = "Project:"; - // - // NameLabel2 - // - this.NameLabel2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDataBindingSource, "Name", true)); - this.NameLabel2.Location = new System.Drawing.Point(53, 68); - this.NameLabel2.Name = "NameLabel2"; - this.NameLabel2.Size = new System.Drawing.Size(227, 23); - this.NameLabel2.TabIndex = 3; - // - // ProjectDataBindingSource - // - this.ProjectDataBindingSource.DataSource = typeof(PTServiceClient.PTService.ProjectData); - // - // AssignToProjectButton - // - this.AssignToProjectButton.Location = new System.Drawing.Point(196, 205); - this.AssignToProjectButton.Name = "AssignToProjectButton"; - this.AssignToProjectButton.Size = new System.Drawing.Size(75, 23); - this.AssignToProjectButton.TabIndex = 9; - this.AssignToProjectButton.Text = "Assign"; - this.AssignToProjectButton.UseVisualStyleBackColor = true; - this.AssignToProjectButton.Click += new System.EventHandler(this.AssignToProjectButton_Click); - // - // NameLabel4 - // - this.NameLabel4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceDataBindingSource, "Name", true)); - this.NameLabel4.Location = new System.Drawing.Point(53, 153); - this.NameLabel4.Name = "NameLabel4"; - this.NameLabel4.Size = new System.Drawing.Size(218, 23); - this.NameLabel4.TabIndex = 8; - // - // ResourceDataBindingSource - // - this.ResourceDataBindingSource.DataSource = typeof(PTServiceClient.PTService.ResourceData); - // - // GroupBox1 - // - this.GroupBox1.Controls.Add(this.ProjectResourcesDataGridView); - this.GroupBox1.Controls.Add(this.ClearProjectButton); - this.GroupBox1.Controls.Add(this.SaveProjectButton); - this.GroupBox1.Controls.Add(DescriptionLabel); - this.GroupBox1.Controls.Add(this.DescriptionTextBox); - this.GroupBox1.Controls.Add(EndedLabel); - this.GroupBox1.Controls.Add(this.EndedTextBox); - this.GroupBox1.Controls.Add(StartedLabel); - this.GroupBox1.Controls.Add(this.StartedTextBox); - this.GroupBox1.Controls.Add(NameLabel); - this.GroupBox1.Controls.Add(this.NameTextBox); - this.GroupBox1.Controls.Add(IdLabel); - this.GroupBox1.Controls.Add(this.IdLabel1); - this.GroupBox1.Location = new System.Drawing.Point(10, 335); - this.GroupBox1.Name = "GroupBox1"; - this.GroupBox1.Size = new System.Drawing.Size(583, 282); - this.GroupBox1.TabIndex = 14; - this.GroupBox1.TabStop = false; - this.GroupBox1.Text = "Project"; - // - // ProjectResourcesDataGridView - // - this.ProjectResourcesDataGridView.AllowUserToAddRows = false; - this.ProjectResourcesDataGridView.AllowUserToDeleteRows = false; - this.ProjectResourcesDataGridView.AutoGenerateColumns = false; - this.ProjectResourcesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn4, - this.DataGridViewTextBoxColumn3, - this.DataGridViewTextBoxColumn5, - this.DataGridViewTextBoxColumn10, - this.DataGridViewTextBoxColumn11}); - this.ProjectResourcesDataGridView.DataSource = this.ProjectResourcesBindingSource; - this.ProjectResourcesDataGridView.Location = new System.Drawing.Point(257, 56); - this.ProjectResourcesDataGridView.MultiSelect = false; - this.ProjectResourcesDataGridView.Name = "ProjectResourcesDataGridView"; - this.ProjectResourcesDataGridView.ReadOnly = true; - this.ProjectResourcesDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ProjectResourcesDataGridView.Size = new System.Drawing.Size(313, 220); - this.ProjectResourcesDataGridView.TabIndex = 12; - // - // RoleDataBindingSource - // - this.RoleDataBindingSource.DataSource = typeof(PTServiceClient.PTService.RoleInfo); - // - // ProjectResourcesBindingSource - // - this.ProjectResourcesBindingSource.DataMember = "ProjectResources"; - this.ProjectResourcesBindingSource.DataSource = this.ProjectDetailBindingSource; - // - // ProjectDetailBindingSource - // - this.ProjectDetailBindingSource.DataSource = typeof(PTServiceClient.PTService.ProjectData); - // - // ClearProjectButton - // - this.ClearProjectButton.Location = new System.Drawing.Point(95, 253); - this.ClearProjectButton.Name = "ClearProjectButton"; - this.ClearProjectButton.Size = new System.Drawing.Size(75, 23); - this.ClearProjectButton.TabIndex = 11; - this.ClearProjectButton.Text = "Clear"; - this.ClearProjectButton.UseVisualStyleBackColor = true; - this.ClearProjectButton.Click += new System.EventHandler(this.ClearProjectButton_Click); - // - // SaveProjectButton - // - this.SaveProjectButton.Location = new System.Drawing.Point(176, 253); - this.SaveProjectButton.Name = "SaveProjectButton"; - this.SaveProjectButton.Size = new System.Drawing.Size(75, 23); - this.SaveProjectButton.TabIndex = 10; - this.SaveProjectButton.Text = "Save"; - this.SaveProjectButton.UseVisualStyleBackColor = true; - this.SaveProjectButton.Click += new System.EventHandler(this.SaveProjectButton_Click); - // - // DescriptionTextBox - // - this.DescriptionTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Description", true)); - this.DescriptionTextBox.Location = new System.Drawing.Point(76, 145); - this.DescriptionTextBox.Multiline = true; - this.DescriptionTextBox.Name = "DescriptionTextBox"; - this.DescriptionTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.DescriptionTextBox.Size = new System.Drawing.Size(175, 102); - this.DescriptionTextBox.TabIndex = 9; - // - // EndedTextBox - // - this.EndedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Ended", true)); - this.EndedTextBox.Location = new System.Drawing.Point(76, 114); - this.EndedTextBox.Name = "EndedTextBox"; - this.EndedTextBox.Size = new System.Drawing.Size(175, 20); - this.EndedTextBox.TabIndex = 7; - // - // StartedTextBox - // - this.StartedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Started", true)); - this.StartedTextBox.Location = new System.Drawing.Point(76, 85); - this.StartedTextBox.Name = "StartedTextBox"; - this.StartedTextBox.Size = new System.Drawing.Size(175, 20); - this.StartedTextBox.TabIndex = 5; - // - // NameTextBox - // - this.NameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Name", true)); - this.NameTextBox.Location = new System.Drawing.Point(76, 56); - this.NameTextBox.Name = "NameTextBox"; - this.NameTextBox.Size = new System.Drawing.Size(175, 20); - this.NameTextBox.TabIndex = 3; - // - // IdLabel1 - // - this.IdLabel1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Id", true)); - this.IdLabel1.Location = new System.Drawing.Point(73, 30); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(175, 23); - this.IdLabel1.TabIndex = 1; - // - // ResourceIdLabel - // - this.ResourceIdLabel.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceDataBindingSource, "Id", true)); - this.ResourceIdLabel.Location = new System.Drawing.Point(53, 130); - this.ResourceIdLabel.Name = "ResourceIdLabel"; - this.ResourceIdLabel.Size = new System.Drawing.Size(218, 23); - this.ResourceIdLabel.TabIndex = 6; - // - // ProjectIdLabel - // - this.ProjectIdLabel.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDataBindingSource, "Id", true)); - this.ProjectIdLabel.Location = new System.Drawing.Point(53, 44); - this.ProjectIdLabel.Name = "ProjectIdLabel"; - this.ProjectIdLabel.Size = new System.Drawing.Size(227, 23); - this.ProjectIdLabel.TabIndex = 1; - // - // GroupBox2 - // - this.GroupBox2.Controls.Add(this.AssignToProjectButton); - this.GroupBox2.Controls.Add(NameLabel3); - this.GroupBox2.Controls.Add(this.NameLabel4); - this.GroupBox2.Controls.Add(IdLabel4); - this.GroupBox2.Controls.Add(this.ResourceIdLabel); - this.GroupBox2.Controls.Add(this.Label5); - this.GroupBox2.Controls.Add(this.Label4); - this.GroupBox2.Controls.Add(NameLabel1); - this.GroupBox2.Controls.Add(this.NameLabel2); - this.GroupBox2.Controls.Add(IdLabel2); - this.GroupBox2.Controls.Add(this.ProjectIdLabel); - this.GroupBox2.Location = new System.Drawing.Point(600, 335); - this.GroupBox2.Name = "GroupBox2"; - this.GroupBox2.Size = new System.Drawing.Size(300, 282); - this.GroupBox2.TabIndex = 15; - this.GroupBox2.TabStop = false; - this.GroupBox2.Text = "Add assignment"; - // - // RoleInfoDataGridView - // - this.RoleInfoDataGridView.AutoGenerateColumns = false; - this.RoleInfoDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.idDataGridViewTextBoxColumn, - this.nameDataGridViewTextBoxColumn}); - this.RoleInfoDataGridView.DataSource = this.RoleDataBindingSource; - this.RoleInfoDataGridView.Location = new System.Drawing.Point(599, 109); - this.RoleInfoDataGridView.MultiSelect = false; - this.RoleInfoDataGridView.Name = "RoleInfoDataGridView"; - this.RoleInfoDataGridView.ReadOnly = true; - this.RoleInfoDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.RoleInfoDataGridView.Size = new System.Drawing.Size(300, 220); - this.RoleInfoDataGridView.TabIndex = 10; - // - // idDataGridViewTextBoxColumn - // - this.idDataGridViewTextBoxColumn.DataPropertyName = "Id"; - this.idDataGridViewTextBoxColumn.HeaderText = "Id"; - this.idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn"; - this.idDataGridViewTextBoxColumn.ReadOnly = true; - // - // nameDataGridViewTextBoxColumn - // - this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; - this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; - this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; - this.nameDataGridViewTextBoxColumn.ReadOnly = true; - // - // ProjectDataDataGridView - // - this.ProjectDataDataGridView.AutoGenerateColumns = false; - this.ProjectDataDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn1, - this.DataGridViewTextBoxColumn2}); - this.ProjectDataDataGridView.DataSource = this.ProjectDataBindingSource; - this.ProjectDataDataGridView.Location = new System.Drawing.Point(10, 109); - this.ProjectDataDataGridView.MultiSelect = false; - this.ProjectDataDataGridView.Name = "ProjectDataDataGridView"; - this.ProjectDataDataGridView.ReadOnly = true; - this.ProjectDataDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ProjectDataDataGridView.Size = new System.Drawing.Size(277, 220); - this.ProjectDataDataGridView.TabIndex = 8; - this.ProjectDataDataGridView.SelectionChanged += new System.EventHandler(this.ProjectDataDataGridView_SelectionChanged); - // - // DataGridViewTextBoxColumn1 - // - this.DataGridViewTextBoxColumn1.DataPropertyName = "Id"; - this.DataGridViewTextBoxColumn1.HeaderText = "Id"; - this.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1"; - this.DataGridViewTextBoxColumn1.ReadOnly = true; - // - // DataGridViewTextBoxColumn2 - // - this.DataGridViewTextBoxColumn2.DataPropertyName = "Name"; - this.DataGridViewTextBoxColumn2.HeaderText = "Name"; - this.DataGridViewTextBoxColumn2.Name = "DataGridViewTextBoxColumn2"; - this.DataGridViewTextBoxColumn2.ReadOnly = true; - // - // ResourceDataDataGridView - // - this.ResourceDataDataGridView.AutoGenerateColumns = false; - this.ResourceDataDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn6, - this.DataGridViewTextBoxColumn7}); - this.ResourceDataDataGridView.DataSource = this.ResourceDataBindingSource; - this.ResourceDataDataGridView.Location = new System.Drawing.Point(293, 109); - this.ResourceDataDataGridView.MultiSelect = false; - this.ResourceDataDataGridView.Name = "ResourceDataDataGridView"; - this.ResourceDataDataGridView.ReadOnly = true; - this.ResourceDataDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ResourceDataDataGridView.Size = new System.Drawing.Size(300, 220); - this.ResourceDataDataGridView.TabIndex = 9; - this.ResourceDataDataGridView.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ResourceDataDataGridView_CellDoubleClick); - // - // DataGridViewTextBoxColumn6 - // - this.DataGridViewTextBoxColumn6.DataPropertyName = "Id"; - this.DataGridViewTextBoxColumn6.HeaderText = "Id"; - this.DataGridViewTextBoxColumn6.Name = "DataGridViewTextBoxColumn6"; - this.DataGridViewTextBoxColumn6.ReadOnly = true; - // - // DataGridViewTextBoxColumn7 - // - this.DataGridViewTextBoxColumn7.DataPropertyName = "Name"; - this.DataGridViewTextBoxColumn7.HeaderText = "Name"; - this.DataGridViewTextBoxColumn7.Name = "DataGridViewTextBoxColumn7"; - this.DataGridViewTextBoxColumn7.ReadOnly = true; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(10, 21); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(58, 13); - this.label6.TabIndex = 16; - this.label6.Text = "Username:"; - // - // usernameTextBox - // - this.usernameTextBox.Location = new System.Drawing.Point(70, 18); - this.usernameTextBox.Name = "usernameTextBox"; - this.usernameTextBox.Size = new System.Drawing.Size(127, 20); - this.usernameTextBox.TabIndex = 17; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(10, 47); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(56, 13); - this.label7.TabIndex = 18; - this.label7.Text = "Password:"; - // - // passwordTextBox - // - this.passwordTextBox.Location = new System.Drawing.Point(70, 44); - this.passwordTextBox.Name = "passwordTextBox"; - this.passwordTextBox.PasswordChar = '*'; - this.passwordTextBox.Size = new System.Drawing.Size(127, 20); - this.passwordTextBox.TabIndex = 19; - // - // DataGridViewTextBoxColumn4 - // - this.DataGridViewTextBoxColumn4.DataPropertyName = "ResourceId"; - this.DataGridViewTextBoxColumn4.HeaderText = "ResourceId"; - this.DataGridViewTextBoxColumn4.Name = "DataGridViewTextBoxColumn4"; - this.DataGridViewTextBoxColumn4.ReadOnly = true; - this.DataGridViewTextBoxColumn4.Visible = false; - // - // DataGridViewTextBoxColumn3 - // - this.DataGridViewTextBoxColumn3.DataPropertyName = "LastName"; - this.DataGridViewTextBoxColumn3.HeaderText = "LastName"; - this.DataGridViewTextBoxColumn3.Name = "DataGridViewTextBoxColumn3"; - this.DataGridViewTextBoxColumn3.ReadOnly = true; - // - // DataGridViewTextBoxColumn5 - // - this.DataGridViewTextBoxColumn5.DataPropertyName = "FirstName"; - this.DataGridViewTextBoxColumn5.HeaderText = "FirstName"; - this.DataGridViewTextBoxColumn5.Name = "DataGridViewTextBoxColumn5"; - this.DataGridViewTextBoxColumn5.ReadOnly = true; - // - // DataGridViewTextBoxColumn10 - // - this.DataGridViewTextBoxColumn10.DataPropertyName = "Assigned"; - this.DataGridViewTextBoxColumn10.HeaderText = "Assigned"; - this.DataGridViewTextBoxColumn10.Name = "DataGridViewTextBoxColumn10"; - this.DataGridViewTextBoxColumn10.ReadOnly = true; - // - // DataGridViewTextBoxColumn11 - // - this.DataGridViewTextBoxColumn11.DataPropertyName = "Role"; - this.DataGridViewTextBoxColumn11.DataSource = this.RoleDataBindingSource; - this.DataGridViewTextBoxColumn11.DisplayMember = "Name"; - this.DataGridViewTextBoxColumn11.HeaderText = "Role"; - this.DataGridViewTextBoxColumn11.Name = "DataGridViewTextBoxColumn11"; - this.DataGridViewTextBoxColumn11.ReadOnly = true; - this.DataGridViewTextBoxColumn11.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.DataGridViewTextBoxColumn11.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.DataGridViewTextBoxColumn11.ValueMember = "Id"; - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(914, 638); - this.Controls.Add(this.passwordTextBox); - this.Controls.Add(this.label7); - this.Controls.Add(this.usernameTextBox); - this.Controls.Add(this.label6); - this.Controls.Add(this.Label3); - this.Controls.Add(this.Label2); - this.Controls.Add(this.Label1); - this.Controls.Add(this.GroupBox1); - this.Controls.Add(this.GroupBox2); - this.Controls.Add(this.RoleInfoDataGridView); - this.Controls.Add(this.ProjectDataDataGridView); - this.Controls.Add(this.ResourceDataDataGridView); - this.Name = "MainForm"; - this.Text = "Project Tracker Client"; - this.Load += new System.EventHandler(this.MainForm_Load); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataBindingSource)).EndInit(); - this.GroupBox1.ResumeLayout(false); - this.GroupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleDataBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDetailBindingSource)).EndInit(); - this.GroupBox2.ResumeLayout(false); - this.GroupBox2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.RoleInfoDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataDataGridView)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Label Label3; - internal System.Windows.Forms.Label Label2; - internal System.Windows.Forms.Label Label1; - internal System.Windows.Forms.BindingSource RoleDataBindingSource; - internal System.Windows.Forms.BindingSource ProjectResourcesBindingSource; - internal System.Windows.Forms.BindingSource ProjectDetailBindingSource; - internal System.Windows.Forms.Label Label5; - internal System.Windows.Forms.Label Label4; - internal System.Windows.Forms.Label NameLabel2; - internal System.Windows.Forms.BindingSource ProjectDataBindingSource; - internal System.Windows.Forms.Button AssignToProjectButton; - internal System.Windows.Forms.Label NameLabel4; - internal System.Windows.Forms.BindingSource ResourceDataBindingSource; - internal System.Windows.Forms.GroupBox GroupBox1; - internal System.Windows.Forms.DataGridView ProjectResourcesDataGridView; - internal System.Windows.Forms.Button ClearProjectButton; - internal System.Windows.Forms.Button SaveProjectButton; - internal System.Windows.Forms.TextBox DescriptionTextBox; - internal System.Windows.Forms.TextBox EndedTextBox; - internal System.Windows.Forms.TextBox StartedTextBox; - internal System.Windows.Forms.TextBox NameTextBox; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.Label ResourceIdLabel; - internal System.Windows.Forms.Label ProjectIdLabel; - internal System.Windows.Forms.GroupBox GroupBox2; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn1; - internal System.Windows.Forms.DataGridView RoleInfoDataGridView; - internal System.Windows.Forms.DataGridView ProjectDataDataGridView; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn2; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn6; - internal System.Windows.Forms.DataGridView ResourceDataDataGridView; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn7; - private System.Windows.Forms.DataGridViewTextBoxColumn idDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox usernameTextBox; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox passwordTextBox; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn4; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn3; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn5; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn10; - private System.Windows.Forms.DataGridViewComboBoxColumn DataGridViewTextBoxColumn11; - } -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.cs deleted file mode 100644 index c3a28790..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.cs +++ /dev/null @@ -1,151 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using PTServiceClient; - -namespace PTServiceClient -{ - public partial class MainForm : Form - { - public MainForm() - { - InitializeComponent(); - } - - private void MainForm_Load(object sender, EventArgs e) - { - using (PTService.PTService svc = new PTService.PTService()) - { - this.ProjectDataBindingSource.DataSource = - svc.GetProjectList(); - this.ResourceDataBindingSource.DataSource = - svc.GetResourceList(); - this.RoleDataBindingSource.DataSource = - svc.GetRoles(); - } - } - - private void ProjectDataDataGridView_SelectionChanged(object sender, EventArgs e) - { - if (this.ProjectDataDataGridView.SelectedRows.Count > 0) - { - string projectId = this.ProjectDataDataGridView.SelectedRows[0].Cells[0].Value.ToString(); - if (projectId != this.IdLabel1.Text) - { - using (PTService.PTService svc = new PTService.PTService()) - { - PTService.ProjectRequest request = new PTServiceClient.PTService.ProjectRequest(); - request.Id = new Guid(projectId); - this.ProjectDetailBindingSource.DataSource = svc.GetProject(request); - } - } - } - } - - private void SaveProjectButton_Click(object sender, EventArgs e) - { - using (PTService.PTService svc = new PTService.PTService()) - { - SetCredentials(svc); - Guid id = new Guid(this.IdLabel1.Text); - if (Guid.Empty.Equals(id)) - { - // adding - this.ProjectDetailBindingSource.DataSource = - svc.AddProject( - this.NameTextBox.Text, - this.StartedTextBox.Text, - this.EndedTextBox.Text, - this.DescriptionTextBox.Text); - } - else - { - // updating - this.ProjectDetailBindingSource.DataSource = - svc.EditProject(new Guid(this.IdLabel1.Text), - this.NameTextBox.Text, - this.StartedTextBox.Text, - this.EndedTextBox.Text, - this.DescriptionTextBox.Text); - } - // refresh project list - this.ProjectDataBindingSource.DataSource = svc.GetProjectList(); - } - } - - private void ClearProjectButton_Click(object sender, EventArgs e) - { - this.ProjectDetailBindingSource.Clear(); - this.ProjectDetailBindingSource.AddNew(); - } - - private void AssignToProjectButton_Click( - object sender, EventArgs e) - { - if (this.ResourceIdLabel.Text.Trim().Length == 0) - MessageBox.Show( - "You must select a resource first", "Assign resource", - MessageBoxButtons.OK, MessageBoxIcon.Information); - if (this.ProjectIdLabel.Text.Trim().Length == 0 || - Guid.Empty.Equals(new Guid(this.ProjectIdLabel.Text))) - MessageBox.Show( - "You must select a project first", "Assign resource", - MessageBoxButtons.OK, MessageBoxIcon.Information); - using (PTService.PTService svc = new PTService.PTService()) - { - SetCredentials(svc); - try - { - // do the assignment - svc.AssignResource( - int.Parse(this.ResourceIdLabel.Text), - new Guid(this.ProjectIdLabel.Text)); - // refresh the detail view - PTService.ProjectRequest request = - new PTServiceClient.PTService.ProjectRequest(); - request.Id = new Guid(this.ProjectIdLabel.Text); - this.ProjectDetailBindingSource.DataSource = - svc.GetProject(request); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Assign resource", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - } - - private void ResourceDataDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) - { - ResourceName dlg = new ResourceName(this.ResourceDataDataGridView.SelectedRows[0].Cells[0].Value.ToString(), - this.ResourceDataDataGridView.SelectedRows[0].Cells[1].Value.ToString()); - if (dlg.ShowDialog() == DialogResult.OK) - { - using (PTService.PTService svc = new PTService.PTService()) - { - SetCredentials(svc); - // save the changes - int resourceId = int.Parse(dlg.IdLabel1.Text); - string firstName = dlg.FirstNameTextBox.Text; - string lastName = dlg.LastNameTextBox.Text; - svc.ChangeResourceName(resourceId, firstName, lastName); - // refresh the resource list. - this.ResourceDataBindingSource.DataSource = svc.GetResourceList(); - } - } - } - - private void SetCredentials(PTService.PTService svc) - { - PTService.CslaCredentials credentials = - new PTService.CslaCredentials(); - credentials.Username = usernameTextBox.Text; - credentials.Password = passwordTextBox.Text; - svc.CslaCredentialsValue = credentials; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.resx deleted file mode 100644 index e822beea..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - 375, 17 - - - 184, 17 - - - 17, 17 - - - 555, 17 - - - 763, 17 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/PTServiceClient.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/PTServiceClient.csproj deleted file mode 100644 index 8aafe230..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/PTServiceClient.csproj +++ /dev/null @@ -1,129 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {457C09F3-B15D-474F-A761-DC3419E745EF} - WinExe - Properties - PTServiceClient - PTServiceClient - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - Form - - - MainForm.cs - - - - - Designer - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - Designer - ResourceName.cs - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - Form - - - ResourceName.cs - - - True - True - Reference.map - - - - - - - - Dynamic - Web References\PTService\ - http://localhost/PTWebServicecs/PTService.asmx - - - - - Settings - PTServiceClient_PTService_PTService - - - - - - Reference.map - - - - - MSDiscoCodeGenerator - Reference.cs - - - Reference.map - - - Reference.map - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Program.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Program.cs deleted file mode 100644 index ac37cedf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PTServiceClient -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/AssemblyInfo.cs deleted file mode 100644 index 1bc9a99a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PTServiceClient")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PTServiceClient")] -[assembly: AssemblyCopyright("Copyright © 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ffc67a41-6945-4a9a-83ab-9d0d88fe37d7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.Designer.cs deleted file mode 100644 index d89152a8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTServiceClient.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PTServiceClient.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.Designer.cs deleted file mode 100644 index c6b28669..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTServiceClient.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] - [global::System.Configuration.DefaultSettingValueAttribute("http://localhost/PTWebServicecs/PTService.asmx")] - public string PTServiceClient_PTService_PTService { - get { - return ((string)(this["PTServiceClient_PTService_PTService"])); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.settings b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.settings deleted file mode 100644 index a8b60571..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.settings +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - http://localhost/PTWebServicecs/PTService.asmx - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.Designer.cs deleted file mode 100644 index 5438b5c8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.Designer.cs +++ /dev/null @@ -1,192 +0,0 @@ -namespace PTServiceClient -{ - partial class ResourceName - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Windows.Forms.Label NameLabel; - System.Windows.Forms.Label IdLabel; - this.Cancel_Button = new System.Windows.Forms.Button(); - this.NameLabel1 = new System.Windows.Forms.Label(); - this.OK_Button = new System.Windows.Forms.Button(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.LastNameTextBox = new System.Windows.Forms.TextBox(); - this.Label2 = new System.Windows.Forms.Label(); - this.FirstNameTextBox = new System.Windows.Forms.TextBox(); - this.Label1 = new System.Windows.Forms.Label(); - this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - NameLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - this.TableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // NameLabel - // - NameLabel.AutoSize = true; - NameLabel.Location = new System.Drawing.Point(10, 38); - NameLabel.Name = "NameLabel"; - NameLabel.Size = new System.Drawing.Size(38, 13); - NameLabel.TabIndex = 15; - NameLabel.Text = "Name:"; - // - // Cancel_Button - // - this.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(76, 3); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(67, 23); - this.Cancel_Button.TabIndex = 1; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // NameLabel1 - // - this.NameLabel1.Location = new System.Drawing.Point(97, 38); - this.NameLabel1.Name = "NameLabel1"; - this.NameLabel1.Size = new System.Drawing.Size(236, 23); - this.NameLabel1.TabIndex = 17; - // - // OK_Button - // - this.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.OK_Button.Location = new System.Drawing.Point(3, 3); - this.OK_Button.Name = "OK_Button"; - this.OK_Button.Size = new System.Drawing.Size(67, 23); - this.OK_Button.TabIndex = 0; - this.OK_Button.Text = "OK"; - this.OK_Button.Click += new System.EventHandler(this.OK_Button_Click); - // - // IdLabel - // - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(10, 15); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 14; - IdLabel.Text = "Id:"; - // - // IdLabel1 - // - this.IdLabel1.Location = new System.Drawing.Point(97, 15); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(236, 23); - this.IdLabel1.TabIndex = 16; - // - // LastNameTextBox - // - this.LastNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.LastNameTextBox.Location = new System.Drawing.Point(100, 106); - this.LastNameTextBox.Name = "LastNameTextBox"; - this.LastNameTextBox.Size = new System.Drawing.Size(244, 20); - this.LastNameTextBox.TabIndex = 13; - // - // Label2 - // - this.Label2.AutoSize = true; - this.Label2.Location = new System.Drawing.Point(10, 109); - this.Label2.Name = "Label2"; - this.Label2.Size = new System.Drawing.Size(59, 13); - this.Label2.TabIndex = 12; - this.Label2.Text = "Last name:"; - // - // FirstNameTextBox - // - this.FirstNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.FirstNameTextBox.Location = new System.Drawing.Point(100, 80); - this.FirstNameTextBox.Name = "FirstNameTextBox"; - this.FirstNameTextBox.Size = new System.Drawing.Size(244, 20); - this.FirstNameTextBox.TabIndex = 11; - // - // Label1 - // - this.Label1.AutoSize = true; - this.Label1.Location = new System.Drawing.Point(10, 83); - this.Label1.Name = "Label1"; - this.Label1.Size = new System.Drawing.Size(58, 13); - this.Label1.TabIndex = 10; - this.Label1.Text = "First name:"; - // - // TableLayoutPanel1 - // - this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.TableLayoutPanel1.ColumnCount = 2; - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Controls.Add(this.OK_Button, 0, 0); - this.TableLayoutPanel1.Controls.Add(this.Cancel_Button, 1, 0); - this.TableLayoutPanel1.Location = new System.Drawing.Point(198, 148); - this.TableLayoutPanel1.Name = "TableLayoutPanel1"; - this.TableLayoutPanel1.RowCount = 1; - this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Size = new System.Drawing.Size(146, 29); - this.TableLayoutPanel1.TabIndex = 9; - // - // ResourceName - // - this.AcceptButton = this.OK_Button; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.Cancel_Button; - this.ClientSize = new System.Drawing.Size(355, 193); - this.Controls.Add(NameLabel); - this.Controls.Add(this.NameLabel1); - this.Controls.Add(IdLabel); - this.Controls.Add(this.IdLabel1); - this.Controls.Add(this.LastNameTextBox); - this.Controls.Add(this.Label2); - this.Controls.Add(this.FirstNameTextBox); - this.Controls.Add(this.Label1); - this.Controls.Add(this.TableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ResourceName"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "ResourceName"; - this.TableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.Label NameLabel1; - internal System.Windows.Forms.Button OK_Button; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.TextBox LastNameTextBox; - internal System.Windows.Forms.Label Label2; - internal System.Windows.Forms.TextBox FirstNameTextBox; - internal System.Windows.Forms.Label Label1; - internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.cs deleted file mode 100644 index e1db4240..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace PTServiceClient -{ - public partial class ResourceName : Form - { - public ResourceName(string id, string name) - { - InitializeComponent(); - this.IdLabel1.Text = id; - this.NameLabel1.Text = name; - } - - private void OK_Button_Click(object sender, EventArgs e) - { - this.DialogResult = DialogResult.OK; - this.Close(); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.DialogResult = DialogResult.Cancel; - this.Close(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.resx deleted file mode 100644 index 551559a6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - False - - - False - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.disco b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.disco deleted file mode 100644 index 55c41078..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.disco +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.wsdl b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.wsdl deleted file mode 100644 index b2b46256..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.wsdl +++ /dev/null @@ -1,515 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get a list of projects - - - - - Get a project - - - - - Add a project - - - - - Edit a project - - - - - Get a list of resources - - - - - Get a resource - - - - - Change a resource's name - - - - - Assign resource to a project - - - - - Get a list of roles - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ProjectData.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ProjectData.datasource deleted file mode 100644 index 5bc6c325..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ProjectData.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - PTServiceClient.PTService.ProjectData, Web References.PTService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.cs deleted file mode 100644 index 1a72a1fb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.cs +++ /dev/null @@ -1,1010 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// -// This source code was auto-generated by Microsoft.VSDesigner, Version 2.0.50727.42. -// -#pragma warning disable 1591 - -namespace PTServiceClient.PTService { - using System.Diagnostics; - using System.Web.Services; - using System.ComponentModel; - using System.Web.Services.Protocols; - using System; - using System.Xml.Serialization; - - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Web.Services.WebServiceBindingAttribute(Name="PTServiceSoap", Namespace="http://ws.lhotka.net/")] - public partial class PTService : System.Web.Services.Protocols.SoapHttpClientProtocol { - - private System.Threading.SendOrPostCallback GetProjectListOperationCompleted; - - private System.Threading.SendOrPostCallback GetProjectOperationCompleted; - - private CslaCredentials cslaCredentialsValueField; - - private System.Threading.SendOrPostCallback AddProjectOperationCompleted; - - private System.Threading.SendOrPostCallback EditProjectOperationCompleted; - - private System.Threading.SendOrPostCallback GetResourceListOperationCompleted; - - private System.Threading.SendOrPostCallback GetResourceOperationCompleted; - - private System.Threading.SendOrPostCallback ChangeResourceNameOperationCompleted; - - private System.Threading.SendOrPostCallback AssignResourceOperationCompleted; - - private System.Threading.SendOrPostCallback GetRolesOperationCompleted; - - private bool useDefaultCredentialsSetExplicitly; - - /// - public PTService() { - this.Url = global::PTServiceClient.Properties.Settings.Default.PTServiceClient_PTService_PTService; - if ((this.IsLocalFileSystemWebService(this.Url) == true)) { - this.UseDefaultCredentials = true; - this.useDefaultCredentialsSetExplicitly = false; - } - else { - this.useDefaultCredentialsSetExplicitly = true; - } - } - - public CslaCredentials CslaCredentialsValue { - get { - return this.cslaCredentialsValueField; - } - set { - this.cslaCredentialsValueField = value; - } - } - - public new string Url { - get { - return base.Url; - } - set { - if ((((this.IsLocalFileSystemWebService(base.Url) == true) - && (this.useDefaultCredentialsSetExplicitly == false)) - && (this.IsLocalFileSystemWebService(value) == false))) { - base.UseDefaultCredentials = false; - } - base.Url = value; - } - } - - public new bool UseDefaultCredentials { - get { - return base.UseDefaultCredentials; - } - set { - base.UseDefaultCredentials = value; - this.useDefaultCredentialsSetExplicitly = true; - } - } - - /// - public event GetProjectListCompletedEventHandler GetProjectListCompleted; - - /// - public event GetProjectCompletedEventHandler GetProjectCompleted; - - /// - public event AddProjectCompletedEventHandler AddProjectCompleted; - - /// - public event EditProjectCompletedEventHandler EditProjectCompleted; - - /// - public event GetResourceListCompletedEventHandler GetResourceListCompleted; - - /// - public event GetResourceCompletedEventHandler GetResourceCompleted; - - /// - public event ChangeResourceNameCompletedEventHandler ChangeResourceNameCompleted; - - /// - public event AssignResourceCompletedEventHandler AssignResourceCompleted; - - /// - public event GetRolesCompletedEventHandler GetRolesCompleted; - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetProjectList", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData[] GetProjectList() { - object[] results = this.Invoke("GetProjectList", new object[0]); - return ((ProjectData[])(results[0])); - } - - /// - public void GetProjectListAsync() { - this.GetProjectListAsync(null); - } - - /// - public void GetProjectListAsync(object userState) { - if ((this.GetProjectListOperationCompleted == null)) { - this.GetProjectListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectListOperationCompleted); - } - this.InvokeAsync("GetProjectList", new object[0], this.GetProjectListOperationCompleted, userState); - } - - private void OnGetProjectListOperationCompleted(object arg) { - if ((this.GetProjectListCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetProjectListCompleted(this, new GetProjectListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetProject", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData GetProject(ProjectRequest request) { - object[] results = this.Invoke("GetProject", new object[] { - request}); - return ((ProjectData)(results[0])); - } - - /// - public void GetProjectAsync(ProjectRequest request) { - this.GetProjectAsync(request, null); - } - - /// - public void GetProjectAsync(ProjectRequest request, object userState) { - if ((this.GetProjectOperationCompleted == null)) { - this.GetProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectOperationCompleted); - } - this.InvokeAsync("GetProject", new object[] { - request}, this.GetProjectOperationCompleted, userState); - } - - private void OnGetProjectOperationCompleted(object arg) { - if ((this.GetProjectCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetProjectCompleted(this, new GetProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/AddProject", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData AddProject(string name, string started, string ended, string description) { - object[] results = this.Invoke("AddProject", new object[] { - name, - started, - ended, - description}); - return ((ProjectData)(results[0])); - } - - /// - public void AddProjectAsync(string name, string started, string ended, string description) { - this.AddProjectAsync(name, started, ended, description, null); - } - - /// - public void AddProjectAsync(string name, string started, string ended, string description, object userState) { - if ((this.AddProjectOperationCompleted == null)) { - this.AddProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddProjectOperationCompleted); - } - this.InvokeAsync("AddProject", new object[] { - name, - started, - ended, - description}, this.AddProjectOperationCompleted, userState); - } - - private void OnAddProjectOperationCompleted(object arg) { - if ((this.AddProjectCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.AddProjectCompleted(this, new AddProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/EditProject", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData EditProject(System.Guid id, string name, string started, string ended, string description) { - object[] results = this.Invoke("EditProject", new object[] { - id, - name, - started, - ended, - description}); - return ((ProjectData)(results[0])); - } - - /// - public void EditProjectAsync(System.Guid id, string name, string started, string ended, string description) { - this.EditProjectAsync(id, name, started, ended, description, null); - } - - /// - public void EditProjectAsync(System.Guid id, string name, string started, string ended, string description, object userState) { - if ((this.EditProjectOperationCompleted == null)) { - this.EditProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEditProjectOperationCompleted); - } - this.InvokeAsync("EditProject", new object[] { - id, - name, - started, - ended, - description}, this.EditProjectOperationCompleted, userState); - } - - private void OnEditProjectOperationCompleted(object arg) { - if ((this.EditProjectCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.EditProjectCompleted(this, new EditProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetResourceList", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ResourceData[] GetResourceList() { - object[] results = this.Invoke("GetResourceList", new object[0]); - return ((ResourceData[])(results[0])); - } - - /// - public void GetResourceListAsync() { - this.GetResourceListAsync(null); - } - - /// - public void GetResourceListAsync(object userState) { - if ((this.GetResourceListOperationCompleted == null)) { - this.GetResourceListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResourceListOperationCompleted); - } - this.InvokeAsync("GetResourceList", new object[0], this.GetResourceListOperationCompleted, userState); - } - - private void OnGetResourceListOperationCompleted(object arg) { - if ((this.GetResourceListCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetResourceListCompleted(this, new GetResourceListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetResource", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ResourceData GetResource(ResourceRequest request) { - object[] results = this.Invoke("GetResource", new object[] { - request}); - return ((ResourceData)(results[0])); - } - - /// - public void GetResourceAsync(ResourceRequest request) { - this.GetResourceAsync(request, null); - } - - /// - public void GetResourceAsync(ResourceRequest request, object userState) { - if ((this.GetResourceOperationCompleted == null)) { - this.GetResourceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResourceOperationCompleted); - } - this.InvokeAsync("GetResource", new object[] { - request}, this.GetResourceOperationCompleted, userState); - } - - private void OnGetResourceOperationCompleted(object arg) { - if ((this.GetResourceCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetResourceCompleted(this, new GetResourceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/ChangeResourceName", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ResourceData ChangeResourceName(int id, string firstName, string lastName) { - object[] results = this.Invoke("ChangeResourceName", new object[] { - id, - firstName, - lastName}); - return ((ResourceData)(results[0])); - } - - /// - public void ChangeResourceNameAsync(int id, string firstName, string lastName) { - this.ChangeResourceNameAsync(id, firstName, lastName, null); - } - - /// - public void ChangeResourceNameAsync(int id, string firstName, string lastName, object userState) { - if ((this.ChangeResourceNameOperationCompleted == null)) { - this.ChangeResourceNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeResourceNameOperationCompleted); - } - this.InvokeAsync("ChangeResourceName", new object[] { - id, - firstName, - lastName}, this.ChangeResourceNameOperationCompleted, userState); - } - - private void OnChangeResourceNameOperationCompleted(object arg) { - if ((this.ChangeResourceNameCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.ChangeResourceNameCompleted(this, new ChangeResourceNameCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/AssignResource", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public void AssignResource(int resourceId, System.Guid projectId) { - this.Invoke("AssignResource", new object[] { - resourceId, - projectId}); - } - - /// - public void AssignResourceAsync(int resourceId, System.Guid projectId) { - this.AssignResourceAsync(resourceId, projectId, null); - } - - /// - public void AssignResourceAsync(int resourceId, System.Guid projectId, object userState) { - if ((this.AssignResourceOperationCompleted == null)) { - this.AssignResourceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAssignResourceOperationCompleted); - } - this.InvokeAsync("AssignResource", new object[] { - resourceId, - projectId}, this.AssignResourceOperationCompleted, userState); - } - - private void OnAssignResourceOperationCompleted(object arg) { - if ((this.AssignResourceCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.AssignResourceCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetRoles", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public RoleInfo[] GetRoles() { - object[] results = this.Invoke("GetRoles", new object[0]); - return ((RoleInfo[])(results[0])); - } - - /// - public void GetRolesAsync() { - this.GetRolesAsync(null); - } - - /// - public void GetRolesAsync(object userState) { - if ((this.GetRolesOperationCompleted == null)) { - this.GetRolesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRolesOperationCompleted); - } - this.InvokeAsync("GetRoles", new object[0], this.GetRolesOperationCompleted, userState); - } - - private void OnGetRolesOperationCompleted(object arg) { - if ((this.GetRolesCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetRolesCompleted(this, new GetRolesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - public new void CancelAsync(object userState) { - base.CancelAsync(userState); - } - - private bool IsLocalFileSystemWebService(string url) { - if (((url == null) - || (url == string.Empty))) { - return false; - } - System.Uri wsUri = new System.Uri(url); - if (((wsUri.Port >= 1024) - && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { - return true; - } - return false; - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - [System.Xml.Serialization.XmlRootAttribute(Namespace="http://ws.lhotka.net/", IsNullable=false)] - public partial class CslaCredentials : System.Web.Services.Protocols.SoapHeader { - - private string usernameField; - - private string passwordField; - - private System.Xml.XmlAttribute[] anyAttrField; - - /// - public string Username { - get { - return this.usernameField; - } - set { - this.usernameField = value; - } - } - - /// - public string Password { - get { - return this.passwordField; - } - set { - this.passwordField = value; - } - } - - /// - [System.Xml.Serialization.XmlAnyAttributeAttribute()] - public System.Xml.XmlAttribute[] AnyAttr { - get { - return this.anyAttrField; - } - set { - this.anyAttrField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class RoleInfo { - - private int idField; - - private string nameField; - - /// - public int Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - - /// - public string Name { - get { - return this.nameField; - } - set { - this.nameField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ResourceRequest { - - private int idField; - - /// - public int Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ResourceAssignmentData { - - private System.Guid projectIdField; - - private string projectNameField; - - private string assignedField; - - private int roleField; - - /// - public System.Guid ProjectId { - get { - return this.projectIdField; - } - set { - this.projectIdField = value; - } - } - - /// - public string ProjectName { - get { - return this.projectNameField; - } - set { - this.projectNameField = value; - } - } - - /// - public string Assigned { - get { - return this.assignedField; - } - set { - this.assignedField = value; - } - } - - /// - public int Role { - get { - return this.roleField; - } - set { - this.roleField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ResourceData { - - private int idField; - - private string nameField; - - private ResourceAssignmentData[] resourceAssignmentsField; - - /// - public int Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - - /// - public string Name { - get { - return this.nameField; - } - set { - this.nameField = value; - } - } - - /// - public ResourceAssignmentData[] ResourceAssignments { - get { - return this.resourceAssignmentsField; - } - set { - this.resourceAssignmentsField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ProjectRequest { - - private System.Guid idField; - - /// - public System.Guid Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ProjectResourceData { - - private int resourceIdField; - - private string firstNameField; - - private string lastNameField; - - private string assignedField; - - private int roleField; - - /// - public int ResourceId { - get { - return this.resourceIdField; - } - set { - this.resourceIdField = value; - } - } - - /// - public string FirstName { - get { - return this.firstNameField; - } - set { - this.firstNameField = value; - } - } - - /// - public string LastName { - get { - return this.lastNameField; - } - set { - this.lastNameField = value; - } - } - - /// - public string Assigned { - get { - return this.assignedField; - } - set { - this.assignedField = value; - } - } - - /// - public int Role { - get { - return this.roleField; - } - set { - this.roleField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ProjectData { - - private System.Guid idField; - - private string nameField; - - private string startedField; - - private string endedField; - - private string descriptionField; - - private ProjectResourceData[] projectResourcesField; - - /// - public System.Guid Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - - /// - public string Name { - get { - return this.nameField; - } - set { - this.nameField = value; - } - } - - /// - public string Started { - get { - return this.startedField; - } - set { - this.startedField = value; - } - } - - /// - public string Ended { - get { - return this.endedField; - } - set { - this.endedField = value; - } - } - - /// - public string Description { - get { - return this.descriptionField; - } - set { - this.descriptionField = value; - } - } - - /// - public ProjectResourceData[] ProjectResources { - get { - return this.projectResourcesField; - } - set { - this.projectResourcesField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetProjectListCompletedEventHandler(object sender, GetProjectListCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetProjectListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetProjectListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetProjectCompletedEventHandler(object sender, GetProjectCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void AddProjectCompletedEventHandler(object sender, AddProjectCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class AddProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal AddProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void EditProjectCompletedEventHandler(object sender, EditProjectCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class EditProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal EditProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetResourceListCompletedEventHandler(object sender, GetResourceListCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetResourceListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetResourceListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ResourceData[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ResourceData[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetResourceCompletedEventHandler(object sender, GetResourceCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetResourceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetResourceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ResourceData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ResourceData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void ChangeResourceNameCompletedEventHandler(object sender, ChangeResourceNameCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class ChangeResourceNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal ChangeResourceNameCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ResourceData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ResourceData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void AssignResourceCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetRolesCompletedEventHandler(object sender, GetRolesCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetRolesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetRolesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public RoleInfo[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((RoleInfo[])(this.results[0])); - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.map b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.map deleted file mode 100644 index 5155e89c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ResourceData.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ResourceData.datasource deleted file mode 100644 index 7d2fe35e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ResourceData.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - PTServiceClient.PTService.ResourceData, Web References.PTService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/RoleInfo.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/RoleInfo.datasource deleted file mode 100644 index a7e9f7c2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/RoleInfo.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - PTServiceClient.PTService.RoleInfo, Web References.PTService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/app.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/app.config deleted file mode 100644 index af1a26ed..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/app.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
    - - - - - - http://localhost/PTWebServicecs/PTService.asmx - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/App.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/App.config deleted file mode 100644 index b23924a5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/App.config +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.Designer.cs deleted file mode 100644 index 3ba6d825..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.Designer.cs +++ /dev/null @@ -1,141 +0,0 @@ -namespace PTWin -{ - partial class LoginForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm)); - this.Cancel = new System.Windows.Forms.Button(); - this.OK = new System.Windows.Forms.Button(); - this.PasswordTextBox = new System.Windows.Forms.TextBox(); - this.UsernameTextBox = new System.Windows.Forms.TextBox(); - this.PasswordLabel = new System.Windows.Forms.Label(); - this.UsernameLabel = new System.Windows.Forms.Label(); - this.LogoPictureBox = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.LogoPictureBox)).BeginInit(); - this.SuspendLayout(); - // - // Cancel - // - this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel.Location = new System.Drawing.Point(300, 161); - this.Cancel.Name = "Cancel"; - this.Cancel.Size = new System.Drawing.Size(94, 23); - this.Cancel.TabIndex = 12; - this.Cancel.Text = "&Cancel"; - this.Cancel.Click += new System.EventHandler(this.Cancel_Click); - // - // OK - // - this.OK.Location = new System.Drawing.Point(197, 161); - this.OK.Name = "OK"; - this.OK.Size = new System.Drawing.Size(94, 23); - this.OK.TabIndex = 11; - this.OK.Text = "&OK"; - this.OK.Click += new System.EventHandler(this.OK_Click); - // - // PasswordTextBox - // - this.PasswordTextBox.Location = new System.Drawing.Point(174, 101); - this.PasswordTextBox.Name = "PasswordTextBox"; - this.PasswordTextBox.PasswordChar = '*'; - this.PasswordTextBox.Size = new System.Drawing.Size(220, 20); - this.PasswordTextBox.TabIndex = 10; - // - // UsernameTextBox - // - this.UsernameTextBox.Location = new System.Drawing.Point(174, 44); - this.UsernameTextBox.Name = "UsernameTextBox"; - this.UsernameTextBox.Size = new System.Drawing.Size(220, 20); - this.UsernameTextBox.TabIndex = 8; - // - // PasswordLabel - // - this.PasswordLabel.Location = new System.Drawing.Point(172, 81); - this.PasswordLabel.Name = "PasswordLabel"; - this.PasswordLabel.Size = new System.Drawing.Size(220, 23); - this.PasswordLabel.TabIndex = 9; - this.PasswordLabel.Text = "&Password"; - this.PasswordLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // UsernameLabel - // - this.UsernameLabel.Location = new System.Drawing.Point(172, 24); - this.UsernameLabel.Name = "UsernameLabel"; - this.UsernameLabel.Size = new System.Drawing.Size(220, 23); - this.UsernameLabel.TabIndex = 6; - this.UsernameLabel.Text = "&User name"; - this.UsernameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // LogoPictureBox - // - this.LogoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("LogoPictureBox.Image"))); - this.LogoPictureBox.Location = new System.Drawing.Point(0, 0); - this.LogoPictureBox.Name = "LogoPictureBox"; - this.LogoPictureBox.Size = new System.Drawing.Size(165, 193); - this.LogoPictureBox.TabIndex = 7; - this.LogoPictureBox.TabStop = false; - // - // LoginForm - // - this.AcceptButton = this.OK; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.Cancel; - this.ClientSize = new System.Drawing.Size(401, 192); - this.Controls.Add(this.Cancel); - this.Controls.Add(this.OK); - this.Controls.Add(this.PasswordTextBox); - this.Controls.Add(this.UsernameTextBox); - this.Controls.Add(this.PasswordLabel); - this.Controls.Add(this.UsernameLabel); - this.Controls.Add(this.LogoPictureBox); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "LoginForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Log in"; - this.Load += new System.EventHandler(this.LoginForm_Load); - ((System.ComponentModel.ISupportInitialize)(this.LogoPictureBox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button Cancel; - internal System.Windows.Forms.Button OK; - internal System.Windows.Forms.TextBox PasswordTextBox; - internal System.Windows.Forms.TextBox UsernameTextBox; - internal System.Windows.Forms.Label PasswordLabel; - internal System.Windows.Forms.Label UsernameLabel; - internal System.Windows.Forms.PictureBox LogoPictureBox; - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.cs deleted file mode 100644 index 349837b4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace PTWin -{ - public partial class LoginForm : Form - { - public LoginForm() - { - InitializeComponent(); - } - - private void OK_Click(object sender, EventArgs e) - { - using (StatusBusy busy = - new StatusBusy("Verifying credentials...")) - { - ProjectTracker.Library.Security.PTPrincipal.Login( - this.UsernameTextBox.Text, this.PasswordTextBox.Text); - } - this.Close(); - } - - private void Cancel_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void LoginForm_Load(object sender, EventArgs e) - { - this.UsernameTextBox.Focus(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.resx deleted file mode 100644 index 31526951..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.resx +++ /dev/null @@ -1,772 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - iVBORw0KGgoAAAANSUhEUgAAAXIAAADBCAYAAADSDTtmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAlvxJREFUeF7tXQV8FNfeDRbHNZ5ggQQJ7u5OW6BU0EKhtDjFihSo0VLcneIUd3dpgbr7 - 1/fa2egG92G/c2bnhpthdhPee21JMrx3frvZpJGZ2bNnzz3/c7P5zvdVPPDPcd/h4aHizj3gDj6+g4/x - f4/7/KQE3FUvqB53D97lf9YWuA7c1sEHCX4Xfjci5bs48I//kfUv9RHIli2bZ86cuf7v4495KB/+99VX - dz22bLnlYbP97nH3brKLw3ff4969ZA9VvebhcNzzuH+fpyH14XY47nv8/PMgntERD860x03cvwXw9oZ+ - y49xFWjgN9LOJU4f/1vrn3UErCPwuB0BErmAzxwfxWcWMA1400fxft1b8Z4IjNfxGm6Jsd5Kjmo5+AIw - BSgHlALCgGJAQSAP4At4AbmAHEB2IBu53ELqY8DjAzJXPvnkjinWrr2htG+fpFSt+qlSseIRFzikREdv - UsqUWa5ERi5WSpWaB8w1YA7P2Z/AM0AnoD3QHKgPVAWigAggECikn0cfcQ6t82Zdu9Y18HheAx4ykfvO - 81U0Mp8BvAsinwLSJplP0Il8nE7kIHOv/l5K9ojsJIa+QDRQEggFigIFJDL3tMjc/clPi8g3bbqhdOyY - fiIvXXpReoi8s4HIq+nnsbhF5I/nk9UiUeu8uLoGPHwXPFDkJHWfuSDx2cB04B2Q+SSdzE1UuWdnTyVb - 7mwk82a6miuB2xCdzPPjNjdARUcyz0nCAixVbnhXwhc6WCsuFfmWLTf/AyI3qvG5SsmSs3mu/gCeBQSR - t8B9KvI0idw6dxaRWC8mj+c18BCRa2QuWyxvGSwWocphr9BiydkwJ8lhNhADlAX41jwIKALkA/wBb5KV - TuaWxfIwkfv5+Pi5JPJt2/5XRD6D5+p3EyJvgMeqA7TJ+GLM8/eQtWIR+eP5JLbI1TovTiI3qPIUMp8J - Vf6eicUieeVew7yUHGU1v3wYUAGIBMIB4bPmxX0/wPLLXawP4NgUyJu3oEsi3779Zjo88oNKVNQGzSN3 - WisPK/ISJd7jefr1EYmcax1incN6N2Wt8VhrXI/hNfCAyI1kTr/clcViUOWez8Jiya9ZLFw8Kw+UBswW - P2W/3CIF/YLAsQouVizELZG3a5ekVKnyiZvFzgMakUdGLgORLzQl8uLF3+I5+iGdRF4YXycWrS0ifwyf - vJYSt5S4uAY8fBfqitxEmWt+OVMs75ukWCRV7j0GFksjzWJZAFQBxOKnO7/cslgeEHmZEiWi3ForrVsn - gsgvuiTyChX2g8jXuSXy8PDXeY6+MiHyhnishm6tcNGa1opF5BZ5W+o7g1wDbok8lcXCFMtkk4VP3Sv3 - GgqLJVKzWIYClQD65UxACFLIh/uWX25yYeC4VKtYsZbbxc4WLUjkF1wQ+WGFRF627Fq3RB4aOobn5xOJ - yDvgfktAEDnfTZHIgy0it9SepfgzzjXg4bsIityNKtciicJiedtk4VMncqpyzy6wWPw1i4VJiIqA8MsD - cF8sntFztSwWidBxPJrVq9fGJZEzftikCYn8vBsi3wsi/0An8gWm1kpw8FCem7MWkWecJ6hFpta5Ss81 - 4CTyNMg8JcXChc83DNlyfUCIRK5ZLLU1i+V9gAMmYlhIzpcbI4lZ3mLBcXq6bdtuLol8zZobSsOGCUrl - yh+7JfIyZVaByJfCIzcn8sDAfjw3RyQi55oGX3SFIuf5sqyVDPJ2Oj1PcOtrssYLgYfvYonIZWUuTXym - WCwcFDJmy7nwKalybVAoWBsU6g1UBjgtyEgb365bkURza2VAt27DXBL5smXXlbp1SeTnXBJ5+fJ7kFhZ - 6ZbIixbtxvOy24TIzeKHlkduEbrlkWeQa8BJ5Okg81QLnyJbLiY+Dao8V6tcJIw1ABfQYoAyQDggj35b - FsuDxc4JQ4dOdUnkc+deU2rXtoHIz7oh8l06kS+BIp9vaq0ULvwkz8umdBK5bIVZqZUM8oS2FHjWUODG - 8+wk8iUGMhcJFuPUJweFmC03LnwKVa7bK94j0cXizJaP0i0WLqKxj8WyWMwV+bw33/zAJZG/++5VpVat - fyuVKp1y2bNSrtwOEPkKrWfFFZEXKNCc52TFIxJ5StcK/jsrMmoRuqXSH8NrwOmRk8iXuiBz2WKRFz6N - E5+yKh+NhU+O73unjO8zkmhmsViDQs5CyC2LFx92SeQTJlxRatb8FUR+0g2Rb0shcvPCrLlKnjy1SORz - TIjcGtF/DJ+clrrOmur6PznvztIsqnISeTrIPMVi4cKnHEc0qnKQeY4qmip/y8RiYYpFbknM0l0sOBZn - d+z43iWRDx16SalR4wcXRH4Y5H4QzYebJSJ/eKqTk55+fuV4Pt4E2H5olWZZ5G2p60xyDXgwkaKpckHk - gszdDQrRYhGlWnLVrVGVd4Mqz6ep8qd0i8WYYhHFWlm2i4XrBkWLBivnz99wSeQvvJCsVKv2jRITc8JE - kZPID6RU2LoazyeRe3mF8FyM0YncqrHNJE/i/0TBWf9N5lL7Hpzc1FQ5CXyZDlotxkii3FsuJj7lHha2 - IxqI3HsU4oi1tDjiTKA2wBSLKNaSu1iM3eVZxovF8ahVpUp9lyTOjvLOne0g8i9A5MdMidw51bne7TBQ - yZKzlBw5cvNcDAC6AoLI2VxZT3+hFX3k4h0To6LiRTa79eTPXE9+63xmnvPpoXWPg5g1e4VEviKdFovo - LWcc0ajKxaIniNyrt5eSrZCmylmdWh0QxVqii4Xd5SJbnuUaEqmOO3bs5ZLIz5y5rXA8n5tKxMQcdUHk - HAZa7XYYSB/P/xo/r5tO5HyX1A4gkdcFuI7BF9lwgEQuzotF5JZytyyYx/wa8NB6VDC5qU13UpWTyGUy - d5Ut58KnvptQypCQK1VeV1Pl84A6OmGkZ+EzS6hyHI9xgwa95ZLId+y4qQ0DcarTnMgPKeXL74Y/7n4Y - KChoIM/BKYnIn8R9btVnRuTc6cki8sf8yWsp6syjqP/bc+nBmlpGCjV7hZYKSXylRObuLBajKhe5cg4I - UZVjwZP2ilefFFX+PAiiJhADiGy5q4XPLDHxieOw4v33t7gk8sWLr6dkyB8mcvrjh5QH0UPXGfKiRZ8j - ke8EeA6eBkjkbYCm+gssbS9xTrjLE9cv2I3D+mFuCmJZKxaxW8r8Mb0GnETOhUux6LkcJL5KJ3NaLbRc - XC18yqpcbAtnVOUgcs0rr5Oiyvk2XozvcxxcNCTmk4gjSwyg4O/NkT17DmXr1q9dEvmkSYwe/obEymkX - C50HQeRb04weFijQgkS+UiLyJ3Qib6ITOYvO2I1Dy8si8sf0CfvfKjfrv8+cKt6Dwz2avSIvepLIiXRY - LCl7fAqvnKpcjiLqRK555c7OckbfagGiITEc980mPjUVCGRaiwV/W3RkZEW3C50vvXRJqV7ddfSQC53O - TZdXuNxQgokVf//KogPnOV2Rk8hbA4318xGD29KAGNriCytz/iIammnPg0VumZPcstJ5dRL5NN1egcLW - FDgJ/AOJzN2lWIQqN+bKmWCR7BVNldfQVPkMgCkJ7hFpnPgkechVt5l6j0/8rZ3atHkuHYmVL11GDytU - 2KslVpw7A5lvKOGMHgaL6CGJvAvQEWgFNAJod3ERmtO3fIckOnEsIreUuWWnZIBrwIMlWBqRM71Ce4U2 - Cu0VEvlqnczNLBY5jii8clFzS3vFRJV7Po9cua+mykkiruKIYlcaoQQzrSrHMXDbsXLy5G2lWTPW135i - Ej10+uMsy0qrvjYi4g0le3YvHve+gNh4Oa0ucm7RJ/pw+O7IUuQZ4AmdlVSo9bc+eCflwQ5xjcjpkzO9 - wn4VpldorazRyZyLn3zM1cKnUZVPBJGTzMWip26vUJXnqKhNe3K6kGPhIo4o97BkGVWOv3/TwoUHXCry - VauuK3XqxGv1te4XOtl66HqhMyjoFR7zk0B3ichFhS2bD/nuyGzjZWu/Tou8LUWeAa4Bj+wlsmukqxG5 - 8MlppehE7rfWz6nOabcYFz6NqpzfQ3SwyIueenqFRO75lCdJZS9Ab5ZxRLMhoUyvyvF3hwcHF1eOHYtz - SeQTJzoXOitXPuOCyDnRuSXNhc7ChTvxmG/WiZxrFK6mOrmjk7xeYRVmZYAnsaVMLY8fz1uPN3O1yeW0 - Vkjk9MmpvEncUOR+6/0UjcxJ7OlR5WxGnAQ17mLRk2TOFw/83FezsirH396hRYsubv3x3r2TsdD5nYvW - Q27vti9dC51589bh8Z4PpHcYiD041lSnReKWGs8g1wCJvGb2gOyK10gv54APpzyFTw6PXCNyQLNZ0qPK - kYB5aECIi56SvZKrudZXvi4rq3L87a8PG/aeWyJv2zZJH803dqzI/rjYp9N8VyAudHp7R/B4jwfSkyHn - MJDowGGGnFFQK0OeQZ7QljrPmuqcRJ4PGJuzWU4nkYsFT90n14h8o07msio36SzXmhHZVy6iiC7sFa+X - UgaEekmq3FWCRZBJpkqw4O/etWLFSbf7dNarx4nOiy4WOg9ioXNnmrsChYdPxEKnZmf1Acyih1x0jgGY - IZejh9YwkEXeliLPINcAiZx+dIVsBbMpXiOgyknk0oKn3zqQ+CYdtFjSUuXcqBmLp1rFrZtFz5zVU6KI - 9MpJJnKuXJ72FD5tppkuxN9atWLFWsrFi7fTGAT6XdsVyGyh05kfT9sfDwh4gSR+COihEzmjh0ysWNHD - DPIktVR21lTZj3LeSeTMCjNq9mrOplDltFZI5Pq4Pv1xjcg/TKcqF1FE46KnwV7xfFpTiURzQOTKxea/ - xixzypg4vjbDx+DwNwzo3n24W1ule3f6499r/nhqInfaKsyPp2cQSJ/oXIWf6SqxwuQQ3w1xypb7qsp7 - dTICmqneCT3Kk8P6WotAM8o1QCJnux0XtsqzpZBDPBqRi8EgLniSyLfoZJ6WKhdRRC56shWRi56i3lZK - r2iLnhHaoucIgEMpYtpT9H3IxU2ZKj2Bv3XVjBnbXBL5uXO3lRYt2Hj4uckgkPDHdyM/vsZt4yH9cV/f - siLuKRY6XdXXWokVS6FbVkoGvQZI5FRdzAvTYhnLjZO1xU6ZyOmRk8gJ3E9JsLjoYNHG9rnoyf4V2V4x - EHnOhpq9shIQDXzsYIkGSkjq0DiYkqEHhPB3lYuMjFFOnEhwSeQLFnCz5Vi98fC4oWPFuZFEuXLbJX/c - fLPl8PBJ6CD35zFmBzkXOtlD7q710LS+NjO8C8ooysr6Pa13Af/JNUAiZyqB1gUtlipMsPhMhr0imhCZ - XNmgk/g23G7W44j0yt0NCHHRU570FCP7UnrFs2fKvp7sxm4IcFS8ImAsb5KjcBn6rT7+thefe26wW1vl - lVe4tdvPJv64sFUYO/wwza3dihXrTRI/APQE5IVOth6yLEusTVhlWRlUif0nT3rrv8l8LxYkci4iksxp - X5Aw38zVCapcdJOLCCLV+HaAZA6rRVPlJHtXqpyLnuxfke0Vg0+uTXqW1iY9xwGsUxUbHIidalyWaWXU - ixF/46qZM13bKtwRqF07xg6/0vboNPPHOZYfFbVO71dZpNBCMUP+/I15bJcBaS10lsbXuCrLsqKHFslb - lstjfg2QyKlwZVXeJHspqHKmV6i6ZSLfARLfqatzeuXsYKEqN4si6vt6aplyN/ZKrqZapnwt0ALguLir - sX2+Y8jQi57822Ji6ihnz152qchXrOBYvogdmuXHaavs0DeSWIaiLHf58eI8thMBLnTKGy7Lx1osMJst - dFodK4/5EzijChrr9/7fvisgkdNzFqpcLHwu8XzR05zId+vKnF45O1hcje2LRU85U27SvaLV23prRVrc - 1d1VFNG4HVyGtFfw97360ksT3doqgwZdwlj+r7BVzhny47Ktslm3VZZAic8zVeMhIcNwTLXjyqy+u4lO - s3c/mWpx2SKN/y1pWMfz8TueJPJsEpmLhc9nc9bM6bRPhCKnNw417r/HX/EjmcNq0doRacG4W/QU9ooY - DjKxV7KX1NIrtFfkjYDFomcQHjdG4jJcphx/Q948efIrq1addkvkTlvla5exQ6etwtpa9/3jhQp15DHd - BPQExESn2ExC3hVI7NNpur0brw/rifv4PXGtc2KdE/kakIlcWCxU5UHZ/BBFRHQwpW9FEPlef8V/H8ic - NgtH98Wipzt7RQwHiWpbacFT6yl3pleYdW4JNATkRU/h3cpbj2W4HYTwNz3RsmVXtyQ+f/41re3QOc0p - 2ypU4+xW2a+nVbg/p3tbxc+vPI/pu4Dsj3fEx/IgEBeWzfxxa3s3y1KxfPEMdA2QyEnghLBXRIJlfK6n - cmmFWdqYPhc7qchB4v4HACpzkLum2l1tByfsFXk4iPaKIYbInnL8fIKbAQu1aNzVnUVOjEhmyLf9+L3n - vfnmB26JvG/fZD2t4spW4RCQSKu4tlVCQ8diLN9XxA7d+ePGQSCrgzwDPXktVW6pcnENkMjZDc4nO1Vw - PoCKnAuLjXNE5lD8VuhETkUOFe5PRX7ISeZaioWLnu7sFaZXxHCQO3slSLNXhgCc9GRXuejIlicOH8qU - Z4SLGX9LjUqV6rrNjh89ektp3jwRtsqXLmwVdqvswhDQ2jTTKoULd+ax3ApY/rhFzJayzgLXgMf0eqWU - F6KKKTWL5lb8cmpkuhxgxSzV8Vbv4d5KSt8KiFtT5CRyYjfInIueadkrHA4S1bYmeXLNXqmm2StzAPHW - n5OeMYCrjLPWygc89h4ufsfxQ4a841aNv/76FaVWrT9hq1wwsVU4kk9bZZs+BOTeVvH3j+GxnAYIW+Vp - 3DfbbNlsipYv5Bnm2GaEF3Lrd7SU8199DXjcHdRYuTugnnL3xZrK953KKRsahiujyxdRmgf62wp65bic - PTj7Dc8enpcxpZkIe8VG8s59ILeS72A+p1fORU+mVxhDFBtNCL+cH9NeQde595t6DNGFT56rvRZD3AVw - WEXOlHMxLgJgpjzD2Sv4nUsXL15W2br1G7dE3qmTXetWcZZkHZOmOR/uVomMXOwyOx4aOlq2VUjkrrZ2 - 4x6dVn48C6i1v5pErO//z79Qedwb3lq5O7ipcvelusrdvjWUu70qK3e7V1DuPB9t+6ZtyYS5tQLUPpXz - q1WK+6jZ82VTUXZ11WeSjz3/5vxxuffltmkDQh+AzOmTSzsGafe5SQVutXpcYwzR4JN79UcM0UeLyzHv - nGnsFfwtQ/r0GeuWxBctuq7UrZuAbpVPDUNA8iLnDm1vzrQ2WZbSKrKtYtwRyLi1m1kq6LF/p2MRyD9P - INY5eDzOgce9cZ2VeyPbKfeGNIMyr68p87u9qzjJ/Lkom61T6Ru/PV9a/alHKXV92xD11TqF1CZl/dV8 - RXOp3p29r2GT5WSQeBxg852rwUngErgXaCqf3GTBUyrRGiPZK/TtM6y9gt89LCgoQlm37nyaOwE5R/I/ - ghqXu1VkNS6y40sxBGTerWIoyeqJn+8qdmi2kMyp3gy5kGyRyeNBJtZ5+OfOg8e9yd2Ue+O7KPdGdVDu - DW2u3B3YSLnbv45y94Vqyp0eFW3JXcte/v2Z0uqvPUurP4LMvwe+615K3doxTB1Tr4jaFKSet1BONVfb - XFe9XvGy+84Cmc/WQVIHNCJnR3ka4/o5a2k++ULJXuGenhmWdPC7D+jRY4RbEt+y5abSpAkXOb8wLHI6 - 1TgLsrjI6RzJX4HYoWtbxbnJsvauprfkj3fBfWP/eIZ9cbTI4p8jC+vYP77H3uPeGz2Ue68/q2jKfFR7 - 5d7wVsrdQU00q+VO3xq26z0qJf75dBn1j96R6m+9oMx7gsxB5N92L61+1a2U+tnzJdW1bYLVQdULqjWK - +6rZ82RTcz2Z6zIihgkaoZPYgZQ2RFFra7BWqMhzddR88r0Ad3g32itsRHQ1HPTY2QBCja9efS7Ngqya - Nf9Pbzo8IXWryJOc3EBiZZrZ8fz5m4jFamGrmG20nGnSQBaxPL7EYp2bv/fceNx77SlFw5gnnET+ahvl - 3rCWIHPnIuidF2vaYp+tcOvP3lHqny9Eqv/Xu7T6C9T5Dz1Kg8wj1S9B5p8+V1K98EwJ9eOnS6izGweo - z5TPqxYP8FQx6HPNqx9U+kyNyG0+U3xs3uO9bVo/OYl8pA59QMjrRS8FeQmSEVWkGA6qgfsZbmEOv/Og - 3r1HuyXx/ftvab3jnOSsXPmMtMgp1Dgjh7uhxjekqcYjIqYonp4BPHajAdlWYW1tplpAtkji7yUJ63g/ - /sfbQ1vg5ELnyw2ctgrVOMH7eOzOS3VtST2rXf2zd0X1z37lVKVvGfXfIPRfe0WqP/cso5N5SfXTZ0uq - 50Hk57oUV890Lq5ubhOqjqhRSK1dwlfNWTnnzVxP57rkPdY7DiRuw+YVNihwm/erIHJCEDpuszvz5Nxs - QlSt0l7hNnAZJirH37VEiWhl48ZP3RL58OGXETn8tzbJmbrp8IEad0YOxSTnQpdplSJFuvK47QCoxkVa - xWirZJpIp0Uujz+5WOfo7ztHHnGdIxV7lzLKtWfKcnETi5zlnckVeOQayQNXelWz/9mzkvrnSxVVpX95 - 1da3LNR5WfVfAMn8O6jzL2CxfApVrpE5iJxkfrJThHrsqQj1zXpF1bZlc6v5C+RUsZ3cZSjveBC4zXuE - BJ3Uc1TQam1nSPaKu2rbx3JxDr/72IED33BL4ocO3VJatUpE5PBbQ+TQqMY3plmQxUVOP79yYiQ/PWmV - DD9kZZHE30cS1rF+/I+1x9ftSijftS+p/NShlPLbE6WUP58qrcSD3JOffkDuN5+Liv+zK8j7RSjy/uVU - W79oNbYvEQUyj1J/gTrnAuiXsFg+A5lfkMj8BIicZH74yXB1VqNiapfovGpQ4Vxqjno5rnj19ErwHgYy - J4Y7ST1XY80n3wB0NNgrGWKcHL9z7SpVGih79/6aDjX+B9T4J27U+PZ0RQ4DA/vxmB2V1LhxE4lMWXtg - EczjTzDWOfp7zpHHhdbFlYvAp22KK5+3KaF81dZJ7D92KKn8CmL/95OlFVunSNsvHUvd/KVbac1WoRq3 - 9YnSyNzWJ1pX5qW1RdCvYbF81rWEehFk/lHnEpoyJ5kffTJCPdQxXD3YIVxd0ChAfa5cXjWsiKeao3aO - q17dHxC6ZydPGwjpBMBdgzhdympb2RIwboDwWBU84XedPmHCYrckvnev0xt/oMZF5FBW43tSNleOjFzi - NnKYN28dEvkCncjlTZaZVsm0RWQWSfw9JGEd58f/OHucb1VcESCpE5/oxP4FSF0o9s/blrh68akSWlLl - ux6RWPAsq/7eK0r944VokHsUEi3wzBFN/AGf/wbK/Aso809A5h93cZI5bZajT0SoB0Hm+9uHq3vbhakL - Ggeqz0bnA6FDodeFQu/tFe/V18uGXURJ5iQkQUTsXhH7eXLK87HcW5IvPq1bP6ucP38jzaRKrVr/SsMb - l9W4612AQkKGY1/O3CTyQUBPQOzNyRfCdkCmrQa2CObxJxjrHP095ygVkcukzvuyWv+oZfHk420i1DMg - 5/PPQHVjSOirbmWQK4/CsBC98kj1RyhyEvkPzz8g80+hzknmZ0nmVOYkc6jyfSDyPcDONmHqnIbF1M5R - edSiBeGhN855OXuh7HEgIPa9cLMJqvJGANMrtFeMGzM/Fj45fq/ggIBQZcGC/W5JfMOGG0rTpiKpwnF8 - oxpnbny3pMbdDwDlz9+UJL7SYKtwkbMj0Fp/RyP25hTd4/IL4WNx/Kwn/N/zhLeOc+Y8zm6JXCb2c60i - Eg62CFOPIpVyvEtJ9fTTpdSPu0aqnzxbRv3suTJY7HQueH4NNf6dDirzL3WrRfjmp54qrh6TyHw3iHxH - 61B1GzC1blG1dancqr93dhUEtB3gru9U5cyUc9HTmF5hG6K8Bdw/lifH7zGif/8Jbkmc+3H27p2MHYB+ - SzOp8mAc37UaZ11trlyFSeR80TPLjmf67fMsYsqcxGSd10c7r+km8o9bFbftbxKmHnqiuHoE3vexziXV - k0+XhkKPVM+B0M91La1+9Exx9TwUOD1yWisk8a8A3n/gmxdXT8EvP9YRnjksln1tw1RB5ltB5luAMZUK - qXWL+F4HOe0BOLLPKKJRlXM4qBDAjnLR2Jfjn7gA8POb1KnTStm//3e3RD5nzjWlfv0EbWPlh3Pjh6Qp - zgdJFXfj+AUKtCaJrzGocbnpMEtsaP1PnHPrZz4a0VjH6689Xh4gaEWG0V6RPz7SNPzGoQ4g8k4l1aOd - S0GZl1ZPdIlUTwInuvBj2CddYL/ARuFCJ1U4rRWSuMDFp4urH+Pzp0Hmx0Hmh2Gz7G8XrpH5dpA4yfzD - piHqhnrBN18pU8AeldcrCUS1FCBByao8BB8XBfLpqtwTt3/7ZsF8MSlQoIjy/vub01TjnTvbtY0jqlQ5 - r1XVxsQc1VsO5U4VTnGuSrNzPCxsnBgA4gsd1bhxAwmzRc4w/ZhxtyV2q6S8AOL+P/ZuxnqS/7VPcuv4 - Zv7j63GmRYRytmWE8pEEV8R+vFn4lYNtI6DIdSLvTAIvo4GkfgQEfbhTuHqEJA0//FSn4po3To+cKRYu - fhIXQfgf43Nn8HUnYbMYyXxLCyjzBiG3dzYKtS+oEZDUKSxPUgHPHIkgm7EAvXLu/F4cYLXtQ6qcpPR3 - ERN+zrC+fcelSeJjx15WateORcPh53qniqiqFSS+X+9UEVOc7pMqBQtqanytTuI9cSsKsjjJyXUFLnLy - hU8sEhvXFnzxOfHilyF63S1CyvyEZJ3j/+wce+xrHKYcbhqmHGsWrpxsHq6c1on9nE7sMqmfaB6RfLAV - Fiyhxo91Lq0e14n8ZJey2v3DnUqoB0HkB5EZP/REuJYdZ4aciRWqdA4KfQwSvwCcB5GTzM/y8yDzIx0i - 1ANCmbfSiPzuLhD5joah9m0NQ5LGly+cWKuwbwLIZ7FOVGLhjqqcClN45WI/z7+cnPAzWzVs2D5NS4XF - WM64IfvG2XBoVOMHsXEEt3Fjw6HoVHE9xRkWNtZMjcu94/LmHK6mYq1FTquL3No9KJNcAx6b6gcrH9YP - UUCWyu5GocqBJk5iPw5SJ7FTsQtSP9U8PHF/CyhuEPlRicRPdonSVDktlwNPhasHQOIHdciEzjz5aSx2 - ngWBf4RbErkg81Mgc/rmB+Cb74Fvvr1RiLqncdglqvLtIPLtDUISV9cNSugekS8+wCdnPEh0IFAKCAaK - APkAqkzmyknmtFk0Mv8r1Dl/dlhYKWX+/L1pqvFevbjA+bs+/HPKtBirXDnGDbmNm2g4nOdyHL9AgRZU - 4x8Y1DgXho2RQ7kgi1aUOE7yAvFf/oJnqaz/TGVZx806bum9BjzW1wtWiI2AIHWoYQUEqhjV+qnmEXF7 - moaBsEHkneiPl4UnHqWjrKbUBZEfQF5cgKQuCJ2DQScALnjSWjkHcieozAWZHySZNw1VDzQJvby3SZgd - yjxpZ8OQRLzYJGxtEJLweoXC8bUL+zKiOB3gsJC88CksA0Hm3Fj6f0pW+ovEW6++OiNNEp8y5Yq2aQT3 - 4nTu/nNcJ3KnpeKsqRVxw7QbDkNCRiCpUohEPlwncjEAJCKHVOMcojKLHBp3WNJe7NJ7sVhfZxGLdQ08 - nteAx+o6QcqausHKWmAdQFLHQqNLUoc6vrOvY0nYKJGwU0DknaPUU12iNTI/CrvlAGwUKnKZyB8idHz+ - KNQ3FztJ3lz4JKkTgswPNccLRtOwq4eahtn3NQlL2tMoNHGHTuZ4oYlfUTso7pnwvLHYji4WZMS6Vmaj - hV9OMudCHj3g/7k6x/fs37Xry8rFi7fdEvmOHTeVNm2SsMD5A0j8Y5cLnOXKbU0ZxXfXN85OlXz5GpDE - l6ShxjlAVR1g7p7vWuRpWH98LN618EXOWuTMJG+vLZJ9PEn27zgvHitrBymrQOaEGanLSh1qmGR/c1ub - EureJyPVQ53KwiuPhjLXiRwq/SDskv3wxvdLitxI6pzu5FDQYdwehTdOQqdPLkhdI/NW4erJFuHXTjQL - t8PqSUoh80ZU5aHxm+uHxMESih0ZXSi2Yn5vToKyvpWEJcichEUfWCbz/1qd4/u1rV+/jbJjx/dpqnFa - KpzgdG7hRkvFbIFzp1RTy+GfBS4tlcDAlzDF6Usif9mFGhcDQGyMrAzI+53KL3LWIqdF3pY/nomuAY/l - tYIUAgpXcUXqQqWT1FfUDry+ulmEurl9aXVnxzLqgSej1MNPlYPVEg3LBR/D+973RJhG5DJSkTlI/IAO - 2ihMrciETlI/0SZchT9/Hf68/WTzCPuRZuFJB5uEJe5pHJqABdB4vKjEbW4QEksyn1UtwNY6KLcNZjhJ - jpYCSSsfwIidUZ2nkPmjqlF8fZXSpSsoCxceSJPEx4+/otSpIzLjtFTkBU5hqbBP5UNpgdP18E/JkrOU - 3Lmr8O+bmU41zg53MzVuRQ4z0RP471B71s94/JV+CpELQjeS+ge69UL7hdbL8tqBV1c2DlfXtS2lbmxX - Rt3aoay6+4loqPBokHoZdc+TxfFxmLoXW8Ht6+DEQ4ROEgeBy5AJnYuex51EfgM5djvJ/FSLiCQkaxIP - Ng1L2Ns4LH5nw9A4Qeab6ofYiN4l8ivFfLTt4ugXc2GvAMCBof9anVPtMy8+efKKNEl85crrekrFaak8 - 3DXuTKmwa7xs2dXpWuAsUuRZ/l27AG7jJnLjTKoYvXFLjVtEbantLHYNmBK5TOpGlb6sVtClpQ3D1LVt - S2Mz5jLqpnZloc6j1S3to9TtHSJB7MWBUHVH+1B1d3v0qehknorQZSJH5JCxQ0HqnPbUFDqI/ETz8FsX - QOQk849aRSSB2BORpkmA1RKPhdg4KPO4bU5VrhE50zejyhVSyufDTkMeHoMBRhON6lxOtaTLatGV/duD - B7+dJomfPn1b4eCPcwyfFbX/vaUSHj5R8fEpwb9psk7i3DjCrBxLeOOWGs9iT2RLNT/+qvmvPEcec6oF - aNZKWqD1Qh99Sa3A5EX1QtTVbSJB5mWhyqNA5tHqhyByKvQ1GBha0zZY3dgmRN3aFoTezknoe42EDsJm - C6JG4jLwGNX5IUx6HmsWduvjlk4iP9+6eNLHrSISMbyUgFhkvCBzKPPYrQ01EtfInMmbaVWKKo2K+ZH4 - 3gK4s1BhgFlzqnNG7+SF0DStFnz9qJ49X02TxNml0r//JQz+/KkN/jjH8F2lVNJnqXCBU48brjJR4ywV - Exsri6SK5Y1bJG4p8ix2DXgU8c6p1Cjko3QNz6u8Vq6wAsXtltQX1wxMml8nRF3VOlJd06YsVHm0ugHY - CDKnQv8ADYnLWgWpK1oGqWtbBaubQOjbTAidJK4BJE4YyfwAsuRIrdymrYLmRTsGk5JA6InnW0ckCDJH - ZUDc/sZhsSRzJFlSVDnJHF6+8mRoHiVXdm1XeU44Up0zfseiLTOrxTRzjq8d8OSTfZRjx2LTJPIJE64o - 9erRF+cenK4Hfx6kVNLOjAcGDlBy5swr3mGIbdzExhHyFGc9/K7MjbtKqljeeBZ7cv+VCtD63o/XOwA8 - 7z36AW8D64CzJXN7Ki0D/ZVBZQoq86o/rNaX1AxMmFMrWF3ZGuq7TZSGdQAJnQp9Zevi6mIQ+dIWgerS - 5kHqShD6utbB6oc6oe+EOtcUOsAqW0HkRjLfD2sF0cM78MaTz7YAmcNaoSInSOb4OJ659qNNw2M1Mm8U - asPip2avkMgFepXIpyCiSCJkN3exR7FaaGO0bNlV2bXrpzRJfP78a0qzZpze/EHrUnG9B+d2pFTW6764 - +5RKiRLvKv7+MfzdmZcnifcEugGMW1KNtwfYqcJCMebpOcUpJl7l+gJrHN8icUulZ+JrgEROgiMh8C16 - R4CDJtxt5mCoXy6leYC/MhikvrBGoKbUl9YMip9dAwTdqqy6qlWU+kFrJ5kTa6HQV7QuoS4EeS9qHqgu - aUYydxL6By2D1fWtQ7Apc4i6HXbLLr2PnGTOBkQjoe9vC5XeJOwuEivJqA2wQ4UnQZ1rZE4iPw8ih1KP - A5nHamTeJMxGMucwk5HMB5UpoITjb8HfRF+ZBMeFUGG1iFSLcYDoWY7fb9r0eZokzhH89u2ZF2chFjdS - duWL79J7xsXgj+uUCi2VQoU68nfeBIgFTnrjxm3c5E4VdtBwP065UMzKjWfiJ7CljB8vZfxPnQ8SOYmg - ua7smENmZawgd47BzyGpl4JSfyIkD+2XuNnVgzQSFyCZr9YJfXmrEur8FkHqfJD4wqaB6iLcCkJfBkJf - A7tlIwh9axv458BukPhewEjmMpGDrO1nQOIEyJyqXCNyWC1xIPNYjcybhbNm14YpUMVI5oxNjsUiKJoU - SYwvAZwEpdUiUi1G37xr3bqtlTVrPkqTxE+duq107WpPyYu79sUZNWSXirPZ0Dn443oMPyhokLFrvKf+ - QsRR/E76iy/7xhsCNYEYgOsB4QCHo8QUp6XGLSK31HgmvwZI5PRWmXYgIXDBjB3WJHeSBMe9BbFTqS/z - y5k9tmohX3VQjQh1UYsyDxH6spYl1Xkg8rlNA9T5IPIFOpkvltS5ZrdAoW9uBf8cZM5dgtivQjJPRehN - wu5RkZPIocqTCCjzRG5yATKPR6IlDmQeew5kjs/ZSObsimG9AAaGUilzkvnkikWUygW8SebDAKFajb75 - c3XqtFQ++OBMmiTOxc0XXkjWFjerVftCH8E35sVF1JDTm2t0S4XNhq4Hf5yWSmX+njMAV3FDvug2ARg3 - rAJEAaLh0NipIorErCnOTP6E/qcUofVz/9l3BiRykgAXyVgPS5+VxEBybwDQeyVZyMTePUeuHFdrNKtx - q2rxomrPymHqe41LpxD60lYl1blQ3nNA5HOaBKjzABL6Q+q8GdR5C6jzllDn6CDnLkHsJE+lzkHkbFwk - kQsyZwSRRE6PHAugGpHjNvYjbHxBMmeLo0zmwisnkRPvVi6q1CrsQ5JkJS4nQWXfvDeUuG3VqtM2knRa - GDToEoZ+4tOxuCn74svckjgtlYIF2/H32yCRuGypcIFT7MUpxw0j8Tj7xvn38J0Gh6FEw2FKgZj1hPtn - n3DW8beO/19xDZDIqeTorTJ7HAMwvkZyZ1cH37KT2Jn6ILFTsbfKkSOH/c01b9r7Tex3ucmTTW6UDS2s - Pl0xRH2rQSl1actSIPJgdbZO5CTzuTqZy+pcs1uawmsHoa8DoWvqHGS+S1bnjUM1Iudkp0zkTK3AYtGI - nCROIJ5ow2M2tjWSzGGzKMiZa8pcJnP2yMysWkypX0QbdZ+gkx+tiIENGrSLXb36nA0dKhrcEfmoUZe1 - hEr16t+6GPo5hKGffSjE4gg+d/xJny8eGNgPKZV84l1DWgucnGI1ixsymSM3QVqdKpYSt+yVTHwNkMi5 - Kz3fknORjKqOqQeSO2NsFQEmIbg5AYmdir1etmzZkt7f8n7Su5veTXp7/dv2oe8NvdTquVbXS4UUVjuU - K6aOrFMERB6ozm4coEGQeSp1js8vbgL/HLfLmkCdg/w36eqcVgvV+T4QOTaz0IhcI3NYK1Tkgsi52CnI - nEROcIMMmcxR8vWQxUIyn4NETsOiWtZ8EjC+RYun4zZu/DT2woVbsYLIXZE5Y4YNG5LEv5cSKuYbRURH - b9JIPD2+OAd/fH3L8nd6BzCzVJ7A47S6xBZuPC98EZZH8Y27/1hqPBM/gf8KdWd9z4z3roFEzhQHF//o - GdNqCNfJncRe2kDsMSR1EHni3L1zE2ftnJU4fft0jdSnbpyaNHL2yOS6z9W9XjTAS21eJrc6ulbhVGQu - Wy0LQOKLAI3MgaUg8w+aBasbZKulUeg9qOtkFmcJIod9korISeZc8BREzq3pSObcIAOeuVbFK5M57RUS - Oftj3q9SzBbh73mlXbseV1GCFXfhwk3gllsyZy1tkyaJWqOh+4QKq2nF4qYzL+5u/01ns2FDkvgyicRl - S0V0jXNhmu+OaIXxfKS1wGmpcYvILTWeya8BEjkX+zjGzgUyJjnosZLcuWGDIHZuqyYUe/kcOXMkLD66 - OGHhoYUJ8w/MT5yzZ46T1LdNTxq8enBSsTHFknM1ynU9oGgutV1UHnVy3aKaKhfQlDnIe0FjeOfAIkCQ - eYrVAkIHAd873DQ8GWRuJ5lTkZPIkV7RrBWdxDUi5+bQBImcuxqRzPH1GpnvbRyqbZwhYokk89nVisW1 - Ccp9re/zA9Xd279WT55MvOokctdk/tZbV01I3GxykwmVLVKPivvFTZJ44cKdQeLa8NKLgGypMKVizIzT - UknvAuf/tIvdUmsZT61Z5yzznzMSOcfWCfqq+QAulJHYOdYuEzsVOxfTory8veJXnVsVv+L0ioSlx5dq - pL7g0ILEefvmJY7cMjIxeGZwkvco7yTP5zyTc9bIeaNUkJf6XIV86izdZtGsFtyfDwInFjZykvlindCX - wzun1fJh/eB78LqTMcFpJ5ljND+JuxSRyGGvuCRyQebc2YhkjuZEjcxFLPHNmCKJ4UWKqiMGjFfPH1fU - j44p6vHDf6inTiVdcUXmb755xda0KZX4j5ISf5jEnWVYTKiI3X7cD/2QxAMD+4uoIat4BYnLG0aYWSrG - CU55gdMT38eyVDK5CrMIOvMTdHrPMYmcyQYujBEcHmHawYzYhWKP9s/nH7fhsw1xay+ujV99frVG6stP - LU9YcmxJwvg94xOCFwQneo/zTvQa4pXkNcgrKVenXJdzxuS8WT3CVx1YraBTmYPI5zbSyRxEbiRzzTev - E3RvV8PQZJA5OsnD7SjM0oj8dItwjcgRO6Qaf0iRk8hlMueWddy+DhW4CvrL7ZXLlFPfGjdHI3GBc27I - fPLky7YmTRJssFNsziKs01KHypGUnX5Eo2FU1Do9ZsiEiuu9N0nioaFj4YtHUolPBcwGf0RKxZWlYjbB - acUNLRK37JQsdA2QyPmkJ6ji2AzITg5B7hyUkYmdC2nlCwcUjt3y7Za4D7/+MG7Tl5viNny6IW7NxTXx - H3z8QfzkI5Pjg5YHJXhP8U7wHumd6D0ChD7UK9FrMAi9Za4rBQvlVNuUzaO+CbuFRK6ROYicWCArc6hz - 9L7chR2SzH07SebsJMfip0bkZ1qEa0SuI5W1IhM5LRaQPpIsYcqA0vkvtarfQl0888NUJC6T+TFNmdsv - C2U+fvyl2MaN42Nr1PgeJH7BhqlN24MiLEHiIitujBm6n9xkXjxPnpok8UUGEhfNhmLwR4zhi5SKWWac - L8KiT8VS41noSZxe1WZ9XeZV8CRyLoYRfPIT7oidZFE1rFRY7K6fd8Xu/HFn7Pbvt6eQ+sbPN8a9dfqt - +IDVAfHe73jHQ5UneI+RCH2YV6LnC7BbauW8Hh3krfaNKaAR+byGD5P5IpD60lqBd9GDnoz4oF0n8yQU - aSWi3lYjconMtRy58MgFkQtVvqFucDxKwa716tJH3bn+nHpBUuKyKv8Yj5899qd6FGR++nTypZEj7XEN - GsTG1ajxXSz6U2LRnwISPwYcsVWsaEbiG1KUeFpbtkmthnJevCeOr9ylwtoEMfjDCKhZSsWyVCzSttR3 - Fr8GSOTaLvM6uDBGuCP2ulFVo2z7/rXPtvf/9tp2/7pbI/UdP+yI3fbdtth3LrwTV2xjsTifaT5x3q+D - zCfqhD4WhD4KGA6FPtgrMWeLnJdz58uhti6VW32zTtGHybwhFkBrBt5ZXTcoGfuJ2knmyIVruwQdbRam - VdmSyFGoRVWuETkhkzjvv1e5qL1CiVLquKFvagR+8YSiXgBkAjeS+Zmjf6r9+v6k1qnzr+Rq1b6Jq1z5 - fFylSidiY2KOAiTxw8BBQt8ggkqcJO7Miqc1fi8WN7Nl0/pfXgHc+eIcxhKDP4yDMiIaDhj3KOU7KstS - yeJPaEt1Z17V7e7cPvRKbkLssmInUbSq2aym7RD+d+DPA7b9/95v2/v7Xtue3/bE7vplV+zUz6bGFtpa - KNZnpk+cz5vAFOB1nweEDoXuNdwrwbOPZ2KuLrnsOSrluF4x2FsdWLlgajJvoBH5bXSgJ6+pG2TXyTwJ - nnniAewSBKsknmROIgdSiJyJFRI4pjtjX44scLlto9bqkhkb1U9A3iRxAVdkfnzfn+pLPX5WG9T6Tq1S - +ZQKPzwJ27TFVax4NA4kHgsSB0jiB2wVKuyxlSv3gMTTkxUniRcr1hNDP/lJ4mJxU+z4I9fTcnqTvnhD - gINZotmQCSLGRbkYnQ+wLBWLvC1FnsWvgTQvABO1/kyLri2UI3FHlMOxh23830HloO3AHwc0lf72V2/b - 8u/IH+sz1yfWZyrwjoHQJ3jHe40Ckff3TPDs7Zno2c0zMWeDnFeKFsypdkZUcZ7ul8+vjyQLiHwliBzb - zdlJ5thqLglJlkQUYyWg4jaeZM4qWxI5pzp1e4WTm0klihZVB/UeoR7c+jlI3KbDQOYGi2Xz6n+rPbr8 - pDat/ZXaoPoptXql/Wr58jvUihUPJYDA4ypUOAhCPwgiPxDrJPFtNlTS2uSBn7Sy4kFBLyteXsEk8SmA - cXFTLsQSvrjoUonG18vNhmLwR2wwbfniWfzJbKnxrKnGed7TJHL54tBJ/eWnX35aOZZ4TDmWcEw5Gn/U - SeogdKr0Sd9Msvnv8rf5zPex+bwPIp8GvCsR+mRYLq+BzAd4xXu+CDLvBYDMc7XLlZwjKsfNhsX91Um1 - i6rz62lEfgs7EyVDldtJ5mvrBiVhkCdxc4PghN2NwrBLUHgcFj/jkC3XiBy58/iXShe40rJuM3X22ysl - AhdEztvUqlz45Qun/652afuj2qTW5yDxE2rdKvvVOpV3qVUqbFPLldt5rUKFA/EAyHwfsCcWJB7rJPEV - wDJbegZ+QkKGY8u2UiTxaQYSF4ub8o4/7LgRvjijhhzOEl0qxmZDy1KxSPyRnssW6Wcu0n/kkw8ymTBg - ygDleNJxDUZCH/3NaJv/bn+b7yJfm+9MX5vPDBD6dJ3QqdDfBpFP9I6DTx7n9ZJXvNcLIPSeIPPuwHOe - iTmq5bhWAQuhgysUVBfWDLxJIse+oXaS+eo6QUnr6gUlYjIzAZnweGzCHEcyRx9L7OsVCyeXDQlVh/Yd - aVDhMok7idxI5lNG/6a2b/qD2qjmBbV+taNqvSr71DqVdqq1K21Ta8VsVWPKb6Yyv4J4YXz58rvjoqO3 - xoHEY0HiAEl8ka106Xk22iauEBo6RvHzK0cSZy2wrMTlxc2O+BxH8OmLs7iMtQjswBG+uIgaMvPPRJHY - fzRde49aT97M9eS1zqd1PsU18J8Q+bzxi8crJ+wnNKQidKj0V75+RfHf6a/4LgCRz9YhEzrUufck71iv - YSDygUA/kHkfoDfsFhK602q5HJw3l9qrRP4bJHLATjKHKk+CxZK4vl5QwoZ6IfFbG4TEvVu5WHLHkDzX - O7furC6ZuUknaiN5P0zm9MpPH1DUIX1/UVvWB4nX+EitX/UwSHyvRuJ1QOK1QeJEjYqb1YrlNkKZb72E - sfv4qKi1cSDwuMjIpbEg8Vgnic/R8TCZs0NFr6VdKJF4T9wniT8LdAE49NNWJ3EubooRfHbfsA+Hvrio - p7V8cUuBP/Jz1yL+zEv8j3wxgEy2zNo1K4XIBaELUu/+RXfFb4ef4rvYV/GdBwgy5y0JfbqPDRnzWK+R - XrFQ5bGwWKjM47xe1NU5rZYengnZg7Mn586V/VqXsDypiBwplkRYLAnvVSlq7xya91r9qnXVKWNmqB8f - /be2kOlU3GkRuU1ds/Bfao9OP6vN63ylNqp+Wm1Q9aBat/JuEPiOVCReO2aLWqviJrVK+XVqVNkVatmy - q5KQTImPjFwCIl8YBwUeCxInTIk8ImIysuI1jB0qJHExufm0TuLy4ibLydhqKPLiojvdzBe3ulQsUn/k - 57FF6pmL1B/5AgC5nF3/yXpTIieZd/i0g+K3RSfy+TqZC0KfpZP5GyDzMd42qPJYqPJYr5cBknl/wKnO - 40HkCfhZzFgfbx2U2z63eoB9Ve2gpOnViiY/G5H3WsVSUeqwl15T93z4iRYlZApFJFLSIvM3YKU81eJH - tVmtT0Hix0HiB9T6VXaByLebknjNCuvU6uVXqhXKLFRLlpylli69OAETm/EgbxC5RuISkZPQnao8IuIN - kHgtkvgqgxInicsJFW61x4082P8uelTE4ib7buTdjMSOP8IXt7pULCJ/5OexReRZmMhBKIFFgopoC5yy - Epfv1z9fX/HbJBE5yVwQ+lxfBbFEGyKJGpF7vwoMBaEPApG/klqdZy+YPR4/byYwEdhTs5BPcvvg3Nci - Q8PV/j2GqBtXHE2VBeeiZVpkvmvDH+qAHrBS6v6gNqn5kdoIfnjDqnvVeljUrAcSrws7pU4l2ilbgM1Q - 4hvVmhXWgsRXqFWjF6hVouaoUaVnksyvliw5O54oVWq2KZmTxPPmrU0S/wDoA8hZcUHibDSUN1AWCRVR - TWu2uGn54hZxW8RtXQOproFHuiBAOrVi6sS4JHESerkz5RS/9SDyRSDwBTokMveZ5aP4TPZRvMeCxEcC - w3Qyp81CQqc6hzLP5pstDj+PGz+8DWwPCAi7+XzXAerKRftUTmAKyMM8D5P5A4vl3Ym/qV3a/KQ2r/2F - 2rjGKRD4QbVBld1q/co7ge1qPZB4XZB4nUpbAJL4BpD4GpD4MhD4PI3EK5edqVaMnKaWLvG2WqLE9Euu - yDwiYpINStyG33s10FdS47ISl0mcG3aIhIq8uCmGfsTipjWCbz2BH+k5aynvzKW8XZ3PR7ooQDbPtHm+ - jUsi35+wXwk9Ear4rgGBL5SIXBA6LBYocgUTnwoiiAomPRV0sdgw7ZmK0JFgicXP+h3YGx4eeblHjxGX - ly8/fvnYsbgb7ELhGL0ZkWsWiz69Kfzy7WucKrxVvR/UprU+UhtXpwrfp5P4jhQSrwcSrwsSr1vpQ6hx - kvhqtXq5pSDwuSkkXqnMNDUmcqpartQ7aonib0OZz0h6oMqdyjw8fEIsPHGS+BqgH/CCTuRyt7joUOGe - qCJmyO32jAkVa+jHIu5Heo5axJ01iNt4nh/pIgHRjOv/en+XRL78j+VKgaMFFN9VLogcyhxxRCeRjwNG - A6+mIvNY70HeyZ7tPG/4+vrfbtCg7aV16y5eYu+JwPHj8ddlMjcbtRcWy6RXf3V64bU/V5vUOGmqwkng - ToDEYzaptaHEa1VYBRJfolYFiVeNmq1WKTtDFSROIifKlgSZl3jvGmyWBEHmoaGj45BO4YsQlfgAich7 - 4j6z4s8AMomLnX4YM+T4PTeJMCZUxN6boppWW9wkrCdt1nzSWufdOu//LZGvwF6dLol80s+TFP8DiB6u - MCFy3V5BaiU1kY8EkQ9HB8tg78s+L/uoeQbnUfO1LqBWqdLg1qhRM5IFgZ85cylZ4MSJhGuCzM2IfP60 - 39XuT8FGqfMtvPBzuhe+D+p7F5BahZPA68FKqRuzUa1TcR1IfIVao9xCtRqslCplZ2kkXrnMe2olncAF - kVfEx5GaxfL+ZZJ5SMjQeD+/aNpBVOKDgJcBbhLBzLhIqIiBHxZhkcRFVjwG9xkz5Pg9N/Tg4qYxoWIt - blrq/JGEl0X4WYfw031hgFhyZM+RXUH/uEsif+HrFxS/nfDHl5nYKvqCp897OpGPQZnWMO9LiCDe8B+S - W83/akG1yJgANWBciFoYGzc3a9bpxpgxszUil0n87NnLdoI7+pDMz8FmEWS+Yfm/tJ6UlvW/VxtjuKeh - nkgxeuH0w4UKrwcrhSReu+JqkPhytXr0PGAuiJxKfDoI/F2NxAUEkWsWS+l31JKwWLBhst3HpyQXZ0ni - I4EhAMuwBJFTjTNm2BEQe26SxOWsuBmJWwkVi7zT/Ry1iDvrEPd/rMhBOtEly5d0u9DZ7GIzZ/RwqTmR - wx9PwELnJXSt3PAb7q/mHZFfLTSmqBowIUQNnBiqBk4AxoeqhasHqJ0797s2duzcFBUuCJy3585dSSIE - me/c9Ic6tP8varsmP6iNa30CAj+F4Z6DGO7ZjTTKTi2RIhY0HxA4VfgmtU7MepD4KrVm+SVqDY3E54DE - Z6pVy05Tq5SZCjX+gMSNqpxkHhrwjOrlFXgdx4d2yniARVjDJCLvifsc+hF7boo2Q5nEufm1yIqzlpYb - e5DERULF6lGxCN0idOsacHkNpPviAKl0av5087QTKxv06CEXOOf5xmEgyA5f/CqU+C3/qVDekwqqhV4H - eb8e7CRvI0DmhSKLqS++OO7KuHHzHyJyQeIffXQtcd++K4kDB/5xtXmT79VGWkcKCfzBdCZz4RpSFLjT - C9dUeCVYKTFrNSulZrn5IPG5anWo8OpRM9RqGom/q8FI5DKZFy/WUc3vU0AN8M55FceHmffXgTHAcGAg - wMQKbRWqcXaLMyveEODAj2gztEjceoKm+3loqe6sq7ofqcbWZbxF71hxlR/fFb9LKXa4WLzvchD3LJ8r - KMu66T/NX803M79acE4RteiCIDVofpgaOBXk/QYwyYTEQeoBw0PUAsWKqiNHzrg0YcIijciFGhckvnv3 - lcQhQxISW7a0JdSs+X8J2PTharVKh1B0tRfEvQvxQTHYw1y4M1bIRIq2oFmJKnwDVPgHaq3ySzUV7iTx - WSDw6WpV+OFVQeCEKzKvWOp1NaxIEzWfp5f6RGjuK00D/C755sh+CeTMMqzXgBG6ImdihbYK1TgtFcYM - mRU3m9qUi7AsJW6Ru0Xu1jWQ7msg/V/o4bFpxvYZmiJH62EcKmwT0UeejOraK9hc4sbECxPVPFvzqvkW - gbjnFgZxB6qBS0LV4KXhavASJ4LmgsjfBoFPAV43J/JivYPVChVq3B4/fmHyxImLU4icJL5hQ3LSgAHx - ic2aKYk1a/6WUK3alwmVK3+cgJ17EtBKeK1KBeNkJnPhzmw4Y4XagiZUeG1NhS94SIULAjcj8sq6Tx4V - MUwNLlBNrVbQ5+azEXku9yyR71LPkvmSK+TzTgZB7wPG6YqcHjmJnEmVjgC7xemLM2YoBn7E1KYgcbkI - y7JTrCdyup+fllLP2kodnKLtKkMCoTfLxAQjcCQberm0BBijm14srNj19Z+uv4ndgG7v/GmnuvuXPeq+ - /9uvHvzXYfXwn8fU/p+/rAbvjlCDPwBpLwNI4AIk8UVhatAsncgnm5M4bZaiHYJUxA5vjh+/CES+RFPj - c+cm2nv0iE1q1EhJrFHjp8SqVT8HgX8EAj8Vj63X4rHtGnAwoVy5HderVOBUprPsSkxo1tYWM+GFI1ZY - Mw0V7o7MI0N6qcXyllYbFPW70QsErgEk3hvoHJ4nuZhPTpL5Ap3ImVrhNCePIXtUmBfn+H0MYLbLj5HE - rZihReQWkVvXQLquAY+cOXOhI9sP4+QFsXNNiFKiRBR2ha+l1KvXRmnbtpvSrdswpU2b55JbPd1WPaKc - UI/HnlJPJpx9CK0/bq8GbwORrzSQuK7IgxaCyKeDyN9ybauQyAvXC1A7dux9fcSIhckdOy5KfuIJxV67 - 9r/t2HItqWrVi4mVK58FgZ9IcBL4YeAQesIPcdMH3O5PLBf9oVqtwmaNxFl25ZzQXA0CX4ZY4XwtkSJ7 - 4UbiNvuYFkvJgI5qYd8iausg/2sg7kvECyBwog/Qt2T+5AZF/EjkJ3Qi5wsgh4CYG2fcsAHAPTfZoSJ2 - +WGbobGSlkrcInHrCZyuJ7ClxLO2Ek+psf3kkztKWujVa9TVEe+NNiVwQeqVTlVTgzeByFc8rMY1W4X+ - +Hvu/XESed7SxdSYmOFXoqNnJ5coMSsZ6tsO9Y3t1k4CRxOhvrlbj0TgGomnAH3h9gqonK1WYb1as+Ja - tQZ6UqpFL0IShZFCJlIe9sLdkXnFkqPU8ML11PyeOdVuEfmu9C2V/1KfUvku9S0F8i6VHwTuJPH+pZ0o - ncfTDiJeBnCqkzW1TwJc5BTeONW46FARGyfLo/cWiVskbpG4dQ080jXgkRaJ8/O1ajW/teTQCpdEvvj/ - lqthR0uowetB4stNiHyx5I+bLHQWeS1EzT8yRM3dJ1jN5VtYRX/3pYiIKcmogE2G8raDuJOgvEHiBwn4 - 4VTfDwgcn+M+mth+bV9c+fJ7sPHDh5fKR61Qq0SL6UzncE9VDPc4Y4XOxcy0EBXaSw3KV0ZtEeh/Y2iZ - gpeGlC1w6ZVIEDYIXMZLIHDsD5o8sEwB+xMheezeObIlgayHAFzoZM84h39oq3B6sxRAC4vj98aYoUXi - 1hP4kZ7AliK3FLm21VtaRL5ixcnEOk0bqCfiz7gk8oFfDVWD90KNr3bhj9NWkfzxAEQMC491kncepFRy - DwtW/YcGqT7ti6m5c1e9hd10ksPCiHHJsEvsQBK2WUsEQOIaQOROFf5gD829seXL78IWbFu5BVtc6dKL - rkRHcqhHTGdO06KEhEzk1co+TOiVS09SSxZrpRbxLaA+E5732siogpdejS54aURUweQhZQqAtEncTvJ+ - hQQODC5bwD4sqmDSyOhCSVUL+SSCpJcDYqGT/jhz49yyjXFDsdMPiVzec9MavbeI3CJy6xp45GsgTSIf - Nuy9Sy+M7O/WVmn2USs1eLvuj8sLnSKtsiBMLQZbpeDEEDXfKJ28hzrJ239ooI4A1btmYTV//iY3Q0JG - JIeGjtTIvHz5vSDyfTqR79dJ3Ll/pnMTZBL4bm0PzejojbHY+AHbry0HlqLEatb16NLTUqYzmTwRRC7I - nEQuk3l0WD81pEAltVEx35sg6iujogtdIsZEF0zGbfJI3A6NAnGTvIGhZQuSwO0jogsmjSpXKOm1ckUS - XyiRLyG/Zw72qTO5woVO9ozX1Imc/rhM5LRV2KOibddmKSxLYVnXgHUNPOo1kCaRt2jx9I33N81ySeSH - 4o6p0ScqpvLHg0DgxaDCCyNuWABKPO+7oWru8SDuUcBwQd4BIPDU8CxeUC1cuMtVJ5GPApGP1Yl8L4h8 - PxQ5iXw/FzU1C8WpwDUCt4HAsQnycrERMrZfW4jNHmYncoS+fGnndOYDIn9YlVeJnKSWCmirFvUronYK - y3N9NMibGAPyHlvOidfKA7gdDVCdQ6XbCRL42PKFE8eVL5L4eoUiCZMrFkloVMyPI/v0ytk3zvw4FTlj - h0KRi8ghFTmTQ1zktIqwLDX2yGrsUZ/01tdnvhcKt0S+bt2FhKp1a6r7fz1sSuQn4s+qU76fqgbsi1AL - Lw9TC84LU/OTuGeGqnlmANNhm0wLVnO/CfIeA+U9EsQ9TCbvYiBzJ/xeKKrm8i+A3pKXLj0g8tdgrZDE - iX0g8j0JUN/x2NU+zmmhbKAClwh8CTZBXqhvhOzcuadkyenJLLfiOL1G5ib2SnRYHzW0QEW1cVG/Wy9F - 5r+ikXi5QpdI3uOI8oWTJ1YonPw6MAmbPPN2fPlC9jHlocCB8RU0Ak+cBAJ/q1KR+HcqFY2HQo9DHJEl - Wlz0JJFTkbOmtiRAj1wkVjiKL4jc2u3HInKLyK1r4JGvAY8tW24q27bdVLZvd4L3t269qWzadEPp3v39 - S88P6oPY4Vlkxc+qh/44ox789xn1wO9nkCE/o+797Yza8nhXNe/aMDXPfFgmM4DpwU68H6Qh97uBau5J - IHEUYvmPeEDcgsDFrU+bIvDHK90KDh6aHBLyqq7ISeR7ksqX30kkQn0nREVtwubH67D58UrdQuEu9otl - Apc2QiaZz44rUWLaVdbOpibyqSoTKSWKNoUXnl99JiLvdRD2pdeAcVTeAG8ngMRJ3JNB4FNiCie/XamI - /a2YIva3Y4okTYopnDQ5pkjilJiiCW8A74DE361cNH5alWJxM6oWi2sZlJuVtksBebGzND4OB4oBbDiU - 8+PW/pvWk/iRn8SWws58CvtRz6lHx45JCtG+fZLSrl2S0rp1otKiRaLSpEmiUqTIEzdfXzZT3fPr6Qf4 - 5RSGgYiTGkruqazmXQ7ing3ingHink6AvN93wv8dEPh4EPgoYLhrIveuSn+86Y2QkGEgcmGtvAZrZXtS - dPSWxKiojQlly65O4MbHD3awXwwLZYFQ4Cl7ZT7YCFmo8tnx3AiiPNoKnd0pb6ulAjurgXlLqM0D/G4O - Llvw8ngQOFS1RtoTdQVOFU4CfyOmSDKUdjJI2j4NmFGlWNLMqsUS369SNPGdSsUS3qlcNAGPg8CLxk8H - gc+qVix2TrWA2PHli8QG+ubiJhMcDBI7AIkcOXf/kcfyRd+4pcotMrfI3LoGHuka8Kha9VNFoEqVT5Qq - VS4CF5TIyKWJ5WvUUbd+ewiEfcIUr3/6vpp3G6yTRSDtmQAJXIAk/h5I/E1gLAh8JDDMNZF7hhRUixbt - ejU4eAiInKqcZD4iOSpqbRK870T8PhqJly69BDvYL0QqZQHU9lxJfTs3PHZC7Giv3aZYLNyirXRIb4zY - V1KrFvS+hUTKVXjdl8bARiF5w9tOnqLhgQJ/EyQ+FeT9PgDyTpoNzK8RkLgAmF89MAHKOwGPx4O8QeAB - cXOrF4udVyMgFl9jW1Aj0NY2KDeJnNOeHAjiBhJMrjCCKNoO8+G+PyDvxWl55dYT+ZGeyI+q4Kyvz1wq - 3gMDNpjkfBjFivW+0m3YAJckTnJvdbyLmmcdFPg8EPiM1CSuqfF3QeKTgTEg8Fddk7hv1yJqzpz51aCg - V5KDgl6WMNAO2yQJSEScUNu5vnTpeUijpGx4rBO5TOLmZB4SMjw2b966V/08fTmdeR2xwUuDyxTQIoX0 - widBfZO0YY8kT61UlOQNBV4k+b0qRe3TqxSzk8DnVQ9IWlwrMHFFrcCElbWCiPglNQPj51cPiANxx4G4 - Y0HwsQtrBtoWgsQXAVD1tqLeObkJMzdcFkNB3ESC9oqcXhHd41bHikXiFolb18AjXQOmRB4dvT02X8EQ - dfrWxW6JvMSeGDXPChD5bBdErtkqwGhzW8VvCBY5Ae/6hdQ8earfCgzsmxwQ0CeZt4GB/YGX7SDuJKjs - RCjrlC3VhMp+oLzNiNypzJF8sRUo0MKWK1ch+tXb/HNlv9whJPelQciDDy1bIPlVEDmTKFzEJInDLkme - UVUDFbh9Fgh8Lgh8Yc2AxGUg8ZV1ghLW1g1OWF83OH593aD4NXWC4pbXDoxdWksgyLakVqANBE8oS2sG - KS0D/UnkM4D6AHtshCoXpVlClYsJT8srt57Ij/REthR25lLYj3o+TYk8LGx8cuMnOrgl8VcvTFbzbjWx - VYQ3TjVusFUEcTtvi+ooouYqmQ/+eLNrAQG9QOTEC8CLJHM7tlFLdO6L+WBvzPQQOYaJlIIFWyuengG0 - NtYBrJflFmzLy+TxTCaRDweJj0IuHAkUbSETPnfynGrF7PNrFLMvrBFAJC0CQMyJK2sHJawGia+vGxK/ - qX5I/LYGIXEaGobEgtRjV9UOsq3QAcK3gdyVZbWCNLxWrrCSJ1d2knlHgBOerLGlKuf+nJYqt0jbIm3r - GvivrgFTIi9QoPX1kTOnuCXy+ofbqHnWuLFVpoLIJwWofrBV/GCrPCBuEniRFPh2K6zm9MurFiny9KVi - xbolFyvWPblo0Z64fQFE3k8i8tnxD3as13xvU388NHSsgt+fBE7iFATOCGB/gEVWbCU8grF7bbhnLEh8 - ItQ40ihQ4cXssEbsy2sFJq2sHZj0QZ2gxA/qBiWurksCD07YVC8kfkuDkPidDUPj9jQOi9vXODR2d6PQ - WBC6bV3dYBvUuW0VANJXQOrKcoBEvhxAYyJ/nzd1VU6vnFFEeuWWKreexP/Vk/hR1Zv19ZlPvT9E5FTA - FWrWUTd9vs8lka/+fpsatKuMmmeZC1tlGkj8LZD3OJD2KGD4A+J2knjhFHg3KqD6+5e/VaTIMyDwZwGS - OVV5X3tg4ICkB4p8drzTGzf3x+GBK0i9KLlyFSZhcu9M7tTDjY8F2A3eB+CuPVND/XNhtD5/8gR4429U - LGx/r1JRO5ImSUtrBiatqxecuLF+cOLmBsEJxIdQ4JtB4DtA4LsahYLAw2IPNgmLPeSEDR/btoLM19cL - UtbUDVY+qBOsgNCdZK4T+aAyBfl77QXkzSUsVW6RuEXi1jXwX18DDxF50aLPX+3z2hATEj+Ox5zodmaA - mvdD2CoLmVYJQMxQxzR0pQD+U4uq/lNA4KNB2q8Cwx4Qt0zivO9ZOp+aN2+D60WLksifA7pLRP6yCZE7 - UyhCkUO1o4K3jpIjR24S5UrgVYBxP4GeuM/t1lgpK8DHNjct5mdHSsX+bqUiSfTCaaWsqhOYCOJO3N04 - NIHY0ygsHuQdD+UdtxcqnAR+uGl47NFm4bbjzSNsx3F7pGmYDV+rQLEr6+sF62Qe9BCZV8zvzd+Rvx+9 - ckuVW0/g//oJbKnrzKeu/5NzCiI/hNQKcVApU2ZJfESZCuqiI+tSSFuQt/P2mLrrZ4zk76uu5lkF8p4L - 4p4BvF/UiWlO+L9dRPWfCAIfDQIf7prEfZ4rCFslD8byn7zsJPLngR4g8t5Q5P3sSLGQyB/yx9GKGFuk - SFebn185+t/HAMb76H8L8iZhk7xZI8u0CDc/7iqBmz0MQZrEPhRFVzOqFNUihfC1EzfWC07Y1Sgk4WCT - 8PhjzcLjQdRxR5qFxR1uSgIPiz0CEid5nwCJn2oBNOf9cAUEr8BiUaDkU8jcqMq7F88n7B5LlVskbpG4 - dQ38z64Bj+joTQqBgRsMAD17+ZmBfUDWR11i9MUpyI4HqnkWg8BngbinG0h8Kkj8TZD4WBD4SMCNGveq - nx+2SkXYKl0lW6UnkyuwVfqDyAfqRO60VRBNjMufv3GsvoC5G2T8PkDLhAROlU0CF+TN5kESdheAmztw - 30xugEyw/4RY0izAL5EkjtQJ0ihBCVsbhMbvbxwWD3KO+6hVcSAi9mzLiNiTLSJi8ZiTwIHTIPEzLSOU - My3CFdxXjoHM90CVQ82nUuX0y4W98l7lYkqQby6SOX9focpdJVisXLn1RP+fPdH/E5Vn/TcZR+17YNgG - Snw5dgaaGhcUUVqdtXOpCxI/gsePqHUONlNzrwGJzwOBz9BJHGrcn0p8Gkj8HWCSrsZfBZEPda3Ic0Vg - j898ja9hEMjEVhmQFBw8ODEkZGRCoUId4n19y6K3JBsjhGuBCQAXMAWJk8DZ/U31LQi8M+5zUwdB3Nyl - pyXAvTMJbmX3XGGvHAnwyRNW1w7W0ii7GobGwzaJA3nHfdamROwXbUvE4tZ2vlWEDY+RvG1nQOLnQOLn - WhbXEaFAnSuHmoYpWAxVoOoVLH4qSLlo9oogct5ikVVEEanKmWCpBIhcuTztKZdpWa2IFqlbpG5dAy6v - AQ8M2ihEkSJdLnfq30Mja1eY8eUiteiOCDX3EpD2LBD2dOB9gAROvKur8XEg71Fp2CpPFlTha2tplQf+ - uNNWKVSokz1fvvpJPj4lE7Nn92UdLDc1ngsMAVgNK0i8p0TgtE6E+uZmDlTcbYFWOmmzE7whQCXMcXkO - 55BI32sXnBskHqylUfY3CYuD6o690Lp47FftSsR+176k7Zv2JWwgdBses0Ghg7wjlI9A4h+3Kq5AteM+ - lTlUebNwBX66gu/l0l4ZHlVIQek4ydy4GTPLtDjtyTKtfIDoYLEGhKwnsEXi1jXg9hrw4Eh7ePikuKDw - UuqMbYvcEnnzox3V3OtA4vNB2DNMiJy2yuT0qXGvqvlRklXthrBVChRomYxNJZK9vMLs2bJ5cbu0kwDV - 9xRgFDBUJ/EXccskClW48L6pvmmddNQJvA1uqb6putkFzt3rSdxsIOS+mcxxUwnH8OuK+eSIm4miK6ZR - jjYLi4Xqjv0cxP09SPzXJ0oDpXhf+aJtceViayeBE+f1W94nuZ+EvYIXAs1e2SAtesr2ClV5dD4vEvkI - /Xerpf8u3PQ6HGCZltgCTqhya0DIeiJbZG5dA64VOYm8UKGOl59+uZdbEl/y7Vo1eGdpNfdyEPkcnchl - Nf4eHnsLGJ/2IqfvC4XUnIVzwx+vdMXPr0wypi6xaXE2blx8BtgCzALeAmihjAaGAQMBKnGSOBcyhQIX - 9gk3cKB9wv0x2TbYEKDyJlFympLEzew2S6tImtw7k2Ab4VvPhueLPdIsHF54uGajfNm2pO3HDqVs/3qy - tO3fT5VWQOjKt+1KKiB45TzInCQuoClzXZVjQVTBkFAqe8VI5F3C8oqEDV9o5DItdpWLbeC4KbM1tm89 - eS0Ct66BNK8Bj7Cw1+Ijykarc/cud0vk7VFXm2cDooULQdYzXajxKSDxMbBU6I0bFjl9BxdUfQfnU30G - 5VFzNfJWs2XLeQtE9TXAXec3A0yekMC5gEkSnwSMBahcSeJCidMLJ4mTwIV9ItQ3fWeWU5EchfomgXND - B/rQHMDhDj3hAAdxaGXwtmGYn6cNo/eaD/5Jm+K2b9qVsP3coZRCElc6RSr/frK08lPHUsrX7Uoon4DI - YbOkInKhyo9DlSOq+JC9IvvkaFlU/HJqk558F9FQ/125n6fYmLko7rPiNjdgje1bT+Q0n8jWwmTGWZj8 - K86VB6Ygr/QcOcAtiS//doMaigGg3Cugxue6UeMTnGrcdwRJOz9IOy+QW/Ue6Kt6veKteg3yuuU12OtG - 9ojsV0FQBwF2dS8C5gOzgenAO8BkYBxAEmeskEq8J8CFTNooXMCk/y2rb9on9LyZz64CkBiF+qb/HA6Q - tIMA2hckS26AzFt+PPWVMgWgxovbPm9TXPmufQnlZxD3n09FKvGdI5U4AOocj5dUsPiZisiFxUJVzkXP - AwZ7xRhDJKlXKeBDIuffyHcPfOHh7xwFuB3b/ysuAut7Zm0SsM5/xj//HhVr11JXnNqYthrfCDW+yKDG - 3yuMqlqQ9jv5VN/JeVXvUf6q93CQ9mCNtG+DtG96DfG67j3U+4r3MO9LQLJnR09aKN8Ci4GFgEziU/Ex - PXH2onBwhkqck5j0w0niVLC0UEjgXLyk+pa9b2GfkBCpbmlVhANU3kyEkLQLAVS7RD79lr3gLSsV8FZg - rShfwj6hJw5vXPkTajyxSxklCbDhPsmdn6dX7spegUWjbJfsFYz6K0Z75dkIzV7hGgD/FlFxaza2by16 - WorcUuTWNeB+sXPI1DEg8cMp2PnTIdWJg8ABdcFXy9XAHeGq/zKQ9ew8qu+03Krvu/6qz1Rf1eddn7vA - be+3vW96T/S+4T3a+5r3SJD2cCdpmyFH+Rwk8kOAIHFhp1CJk8SpUkniVOK0U+iHMw/eEaAHTgUrCNyo - voV9QlUbBtBvptpmEoRkTeLmzvW0LNgBTpAo+TE/txTbtME+Kan80KGk8huInLYKifzS02WUBKjy36HK - 6ZV/CtXuyl7hgBAz5SK9YhZDRPe5sFf4DsNVFNFa9LSewBaJW9dAmteAx9Zvt97b/sN2DTt+3HGX2PnT - zju7ft51m2h6tOktvw1+N30W+tzwme1zzWemz1WfGT5XfGf6XgKSfd73SfZ52yfZezyIewzwqjmBa2r8 - GU97Nt9sTKRwU+I5wEyAnrggcaMSJ4lzmIdeOBcGGwJU4Fy8ZPJEeN+y+qZ9wkZBYZ2QDAWBk7i5gEjf - mQM3nvot0yH83HNtgnJr9smPOpH/CY+cavwyiJxkTmLn5xBHdGmvcEBI2CtiZN+YJ6e9EuMc2ecLF/82 - WkNM1NAO4jsJWkC0fvjCk2rR03ornPHfClvn0DqH/8trwOPAnweSXeH9799PLrK/SLLfar9k30W+yb5z - gFkACFwj8ekg8XeBKSDy10Dgo4ER3nYoclPkrJaTJH4EEH74e7gvFjYFiTMnznIrDveQxIUKJ9HVAGJ0 - smPyxOh9G+0TJj+otqm6SdaCvMVmx7wV4OeDWDfLgZ6fsNBJRS6I/GrXssq1Z8pq6pyPi0VPo73CRU9m - ymmvoEhL+15YREWRVuoSLRK5nl5ZhZ/LxdqGABdoxaKnaEWkBWTtIGSpsjRV2f+SGKzvlbFeaDwOKgft - rlDnZB2732Y/u+8yX7vvfGAOMBuY5QSI3A41bocat3uPBUa6JPEkrx5eSdnyZUsCKXGBcxpAP5y1rhMB - NhUyYkgSZ7yQ+XAO9ZDESXBcxORiIMfZZfVN60SQN9WrrL5J4FSygsAFYXPAhrls7o1J8D4fozrn14/D - zkGaFy6sFSpykvjNZ8tqypzkTtVutFfEoicz5bRXxHCQmPI0+uRj0VOuDwdx4ZaWEd9t8O90N+lpZcot - UrdI3boGUl0DLol85Jcj7Xn35rVDjdt9F4K45xpIfAZI/F1gik+S9zjvJKjxJKjxJKhxU+SsnTMRBEVv - nDYKCZzJFObEOewzBHgJIIlzUbMjwMlHTmFShVOlcgFTKHASuLBO6H1TtQrvm+pb2CckZ6G+ZQIHf3po - +2LyFiA58utouTSsWtBH+QY++P8hO04rRRD57WejNDKnV06id2evML0ihoPc2Sslc3vSXuHfL/5e2ka0 - jPi3usyUW4opYykm63xZ5+uvvAY8DtkOJZkh+lh0kt8mvyTfpb5JvvOAOcBsYJYT8MaToMaToMaToMaT - oMZJ5Ilm8OrtlZitUDYS+TyA+XCqcGbERwKDAcYLmUxhPpx+OEmNkTySmlDh4bgvooMieULrhAQuvG8z - +0RW3ykELg6qTuRU5rIqX4cSLW1hk0kVOxT5dSjyu89FaaAqZxSR9opZekXYKxwO2ixNeZr55C0CtO4V - rhewSoBTqBxgigGMmXLZXuHva23QbKkyS5lb14B2DXgcjj2caETXT7om+u/1T4QaT4QaTwSRJ4LIE0Hk - GrDgmegzDZjikwgiT8QiZyIWOZ0k/qp3ghE56+RkX8pencDphVOFi2lNJlNI4kxvkMRFrlos/FGZ0i+m - hUL7JB9AAndH3qbq29Urok7msiof2KdkfuUPWCixOpHfIJE/H63c7V5eU+V8nBFF2iuyTy7bK+xewWYU - bn3y/qULkMh3AawVkDPltFdEppzvOviCZY3sW09ci7yta+Cha8DjSNyRBBnzf5ufEHg4MAFqPAHeeILv - AmAeMBeYA8z2TYA3ngA1ngAST8AiZwJsFSN5x4PMNXj19IqHGo8HCTGdQgJntHAIwG3XuKjJZEoXicTp - EzORItIbtBcYH6T/TQI3W7gU9olb9Z0GkcuqvFo59KF8jwVPDgIlQ4GTvO8+X0652zNGI3Sq9LTsFXav - 7NVjiK588ndRbevvnPKkpWTZK9aT1CJq6xp45GvA42h86v/VPls73m+HX7zvKt9438XAfGAeMNcJn1k+ - 8T7v+cR7TwZRjwfGOAn7IYz0joPdEpezZs44EBT7UzilSRXOfDhJnBW0z+skziEf0TtCEqcfzlF64RGL - cXVXC5eCwB+yTtLrS+Fn8b+lkueLAn/OWiZN6IczdqgROdT43V6VNTKn1ZIee0WOITJPblzwZHqlXD4t - hsgFX2GvML0SA1j2ivWkfuQndXqveevrMo9v73Es4VicQN8v+8blPpA73m8tiHwZiHuBRuRxIHANyJHH - QY3H+bzlE+c9AUQ9DhjtJGwzeD7vGYekCjvE6YuTwJlK6a+TODeAkJU4PXHaKYLE6YdTiQsbhQuRXLw0 - pk7+Y/KWL2SdyKnKSeSMKQ55JbKAttB5BdHDO/THqcb7VFfuvlBNU+W0V5heYfeKmb2C3hYthpiWT94W - 2XX8PA5ICXvFVXqFSRzLXrHI3SJ36xpInVoRJL7096Vx4cfD4xA3jPNdAeJeCJDE50lEPgMkPhUk/jqI - ezww1jsWBO4SOarkIImv1gmcKly0FwolLhY2mU4hiRvTGvnwGK0UuThKW+gj/teKAt9TtlfqVi/koxE5 - M+QpRN63hnK3X22QeiXNcqG94q57hSVask9utuA5wOmTcw1BPh4iveJuOOh/fgz+18fU+n6ZR/VZ5/Lx - PZcexxKPxRJ1ztWJ9d/tH+u3xi/Wd4lvLIg8FkQeCyLXADUei6RKrM+bPrEYx4+FGo+FGjcn8VHeNs9O - nrZs3tlsIKfhAKOF7ExhvJAkzpF7Fl+JnhFGDF1teZaKxP/Ki0l/gZAXPfdw15+UxAptFZL4gHrKXRA6 - 7RYmW9KKIYpxffrkZoNBrAXwyp6NZM53KGI4iMeE3SulATEcJF7YxDsTa+cgS5lZ6ty6Bjw8jicdt3X/ - srvN/5C/DaP4Nt/lvjZMcdpgq9hA5DaQuM1njo8NSRWbzzs+NpC4DWrcBjVu8wZhm+JVb1uOsjlI4nN1 - Fc5FzV4A7RRGDEniJCwRt2PZFSc1wwF2o8ieOK2Ov2UIRidyWZW/+U7log8WOl+oqtx9qa5yd2AjJ5l3 - K6/FE5k5N8YQRXqFU570yeXelRXSPp6i3raEM0/OFz3aKywEo71iPC6ie0W8uFkxROtJbBG5dQ1gOueX - d2yBxwJtsFRsvitB3ItTkzi8cRsWOG1Y4LR5TwJxk8hfc0PiIPdcLXORxBmpowrnoiZJnEqcJP6kRFb0 - xTnJKPvizIg/1C9Ckv0r1bghVy5UeZcuYXmctgoXOumPv9xAuTekuXJ3cFN45VW19AoLtlz55JzyZJ5c - bMrsasGzQVE/EjlrfOWFX3FsjNW2lk9uPXktAreugZRrwKPcmXKK304/xXeNr4LhHwVqXIEaV6DGNUCN - K1jgVLDAqcAbV6DGFSRVFChxU3i96KVkD9bidG/oJN4Tt1TijNeJAizG7NxVtzIj/o9sqCCpcr4TKF3c - 31OJB1lrC50v1tTU+L3hrYDWmjqn7fKL7pObLXiyo5x5cvauiO3fzHzyZ8K1Wtv1AH1yudqWlpO7Kc+/ - 5QXu73gRtX7G4+vBWufm8T43Hv77/RW/9SDy5TqJL5RIfC4IfCYwVSLxsa5JnOSes1ZOEtIHkhJnTpzd - KRz4oaXCiJ2obWXUUB58+UfVuKTKZXtly8HmxZW7vasod/vXgRpvptwb1V65N6ajU5UjvcIYojufnHny - ndg1iAVaa+CTmxE5N2XGsTgGdNSPEW0nUaJl5pMzWcMEj+WTW8rMUudZ/BrwwOCPAktFgaWiYIHzgRqf - BzU+CyT+Hkh8Msh7IvCaexL37OypZPPXFu04dk87hRObbDHk4iYtFZZDicpWMX5fCo/Ji3n/mBp3Ya9M - ebdakLa4qdkqVOOvPaXcG99FufdqW43gGUPkuL7cTy7v50mfXAwGsQnRjMjfr1JM8cqhHTvaT3IMUbzY - heNxrh9YPnkWf9Ja6vjxVsf/xPnxwOCP01KRSVxYKu+DyN9Mp6Uy2EvJEZlD+Lwk8Z6AsFTE+L1xgVO0 - /LE//LFQ41KRlsiUd32+VCFnWoW2CshbI/HJzyv3xnXW7BXGEJknd7XgyTy5WPAUyRV5D09xP9Qvl3gR - tHxyi6wtlW1dA+m+Bjxc+uIzQOLvPIKl0lCzVDYBjBga1TgraakyxfSmnBnnNmxsMswHPDa927QsdOui - UsVCfs60CqyUe6M6KPdef1a592YvJ5nDamEPC/Pk6V3wNIsgksyroXURP5PNkEaf3JivNy4GWz659aRP - 95P+n1CM1s/8a99FeGiLm0ZfnJbKuyDxSbBSJqTDUukKSyW/ZguwR0WocZFSEQucXMBrCIjxcxE3ZBmW - KIVKtRMOHv/HCIo/G2B6xTtHtmzKN8/XUO4Na+m0Vd7oodx7t59y7+0+ml/ODhZ2l7sq0BILnpzwZKUt - kytmEUR9wnMJfqZYSxA+uZUnt4jaImrrGnB5DXi49MWngMCZUhmXRkqFlkoZzVKZIalxscDJAZeOADeI - ENloEanjxKIoxKIaF5sM/225cXcqQSJy/j6rtnao5FzknPiMcm9qX+XezEHKvekDlXsTumoxRG42wQVP - Y3KFH5PIueDJ5IroJjfrXOlVIj+P41ZAvIPhMeOmGsyTu+pdsRY8rSe4RfJZ/BrwSIkacnFzNpT4I/ji - WkqlvmapbJBI3LjAKfxejuFXB6guBSnJi3ciG60R0z+pxk3SKxPfblD2gRqf/opyb/5IJ97qrdku8SjX - +spkH08xGMSNJphcERFEMyIf4UyunADkhWGRtZd3DbIWPLP4E9eyKv5aqyKjHV+Ph/Lib6ffF/d8CpZK - bs1SYathWgucVJZmcUOWYtFSYZzusVDjhvQKX1i69Y6JcKrxd2CnzB6mqEvGK+rSCU5VPrS5ttnEt5jw - dJdc4ai+uwgiR/Xxs74EhB0lEj5ymZi8MGwNBlmEbqlx6xoAg4qEiry4mQ5fXBv8idAGf7h1m1jglC0V - YQ/IG0Vw0U6OG4pRfDH889iocSm9Qp+8Xv3wIk5vfNpLyr0FYxR15RuK+sHbUOWjtEw5e1c44emKyJlc - 2dfYOarvKoK4pGagws2f9eOZ1mCQvOD5t1QYZDSVYv2+lmrNKteAhza5yaEfsbgp8uKj3WfG0WxIwlnm - wlJ5Co/TUhETnCyAigHSWuB8rAiJ9o5u84SG5PVTbsFGuTdriKbE1XXvKerGGYq6fJKWYuGCJ5MrriKI - 9MkP6p0rroicyZUwZwSR73DMFjz5IsiUTxEgH8B1BVGg9Y8tDGeVJ4v1d1ovDI/rNeBRaFaBO4WmFbhT - cEr+OwUnAxPy3y74GjDGFLfw+K18rfPc8vPzvdWhXZOvnuzY7Avg86eebPFpl86tLnbt0ub888+1P9ez - +xOn+r7Q+fiAfs8eGfRK9wOvDn9hz9jR/Xe8Pv6VrW9MHrLp3bdfXT/9vdGrZ814bdWcmeOXz5s9Yen8 - ORMXL5j7+sKF8ybNB+YBc4DZwExgBvA+MA14F5gKvA28BbwBTAEmAa8DE4BxwGvAGGA0MBJ4FRgODAOG - AIOBgcArwADgJaAf8CLQB3gBv1fv2TPG9c6Tx//nb8d1T741f1Ty7VVvJd/+cHby7a3zk2+vnWa/NbWf - /Vaf6vafnypjv9CulP2jtjralEr6SMfZ1iWTDrUonrSxUVjSugZhSavqhSQur/MwYgr5JQYFFl0WU7Hs - qKpVyg2pVTPmpXp1q/Zq3rTOMzjeT3Tt0rpF755PNcIxrT1yRJ/qkycOinn3nVfLzZr+WhR+30igNFAS - KAEUByKAcCAMCAVCgCAgEAgAigFFgSJAYaAQUBAoAOQH8gF5gTw6cuPWH/ADfAEfwFuHF249gVw6cuI2 - h47suM1GPK5PBuv3sog6o14DHhHzIxzhM8Md4dOAd4G3gDdcI7RvqCOwTKDj7bffdixfvtyxYsUKx6pV - qxxr1651bNy40bF161bH7t27HYcOHXKcOnXKceHCBceXX37p+PHHHx2///67IzY21pGUlOS4cuWK48aN - G47bt2877t6961BV1XH//n0cx8frH38n/n4dO3Z0nJ74kkNdP82h7ljsUA+uc6hHNznUfasc95ZNdNwd - 1d6hvFDH8VW3mo7PnnsYnzxbw3H66eqOXU9UcWzrUNnxYftKjg1tH0bH8sUdgwcPvr958+Z7u3btunvw - 4MG7OI53cBzvfPPNN3d++eWX23/++eetxMTEm5cvX75x8+bN6ziG1+7du3cFvytxGbikIxm3diAJSNSR - gNt4IA6IBWyAAvwJ/Bv4F/A78H/Ab8CvwC/Az8BPwI/AD8D3wLfANzhjXwFfAl8AnwOf6riI2wvAeeAj - 4BxwBjgNnAJOAieAY8BR4DBwCDgIHAD2A3uBPcBuYBewA9gObNWxGbcfApuADcA6YK2O1bhdpWM5boml - wBJgEbAQWADMB+YCc4BZwExgOvA+MA14F5gKvAO8BbyhYzJuJwGvAxOAccBrwBgdo3D7qo7huB0KDAEG - AwOBV4ABOvrjth/wItAH6A30AnoCPYBuwPPAszq64rYL0BnoBDwFPAF00NEOt22BNkBroCXQAmgONAWa - AI2BRkADoD5QD6gL1AFqATWB6jqq4bYKUBmoBMQAFXSUw200EAWUBcoAkUBpoBRQEigBFAfCgTAdobgN - BoJ0BOK2mI4iuCUKA4WAgkABID+QD8irIw9ucwP+gJ8OX9z66PDGLeGpIxduc+rIgVtWXBAUGBlWZHgU - fEtX4hNxOw4wV+KaQi/wYr5bucv43apdq/JvUOFU418+9UTzLzo/1fLTpzu3vvhs17bnuz3X4RwU4+l+ - fZ8+8cqA548MHdTzwKgRffeOHztgx6SJg7a+NWXYh+9NHbl+xrQxa6F0qcZXQvUugxJfArW2CHisFDne - JfTG79g7NDTwyJr+nZNvr56afHv7wuTbB9cm3z6yKfn2vlX220sm2G8NaW7/s0uU/dP2pU0V+Tko86Mt - SyRtahSetL5hWNIHLhR5u9B8iQUL5ttRsUKZ0ZUrRQ2vXq3Cy3VrV3mhSaNaz7Vt3fDJzp1atur+fMfG - L/V7pt6IYS/UmDjulUpvvzm8vKXILTUJIrIWPrPoMfBIUeJvu1fiYePDHMGNgx0vvviiY9myZZoaX7ly - pWP16tWO9evXOz788EPHjh07HPv27XMcPXrUcebMGccnn3zigIp0/Pzzz45///vfjri4OEdycrLj6tWr - DihJx507dx5rNY4nhvYuAWrXMWHCBMf8l7s71F3LHOqxDx33P9rvuH/xiEM9u8ehbpnnuDelu8Per57j - 2+61TBX5p1DpH3Wt7tgNRb69o2tF3r96pKNLly7qpk2b7m3fvv0ejufdY8eO3fn444/vfPXVV7d/+umn - WziWt3Asb+BY3rh+/fo1KPKreNdwBe9qZEVONS4UOVU5FblRjVORU40TfxgUOdU4QTVOGNX4dy4U+Wc4 - bFTknwBU5FTjHwOu1PhxfI5q/AhgVOT78JisxnfiY6rxbQAVuVGNy4qcavwDYCWwAqAaXwaYqfF5eFxW - 4zPwMRU51fh7gFDjb+P+mwAVuVGNj8djVONCkY/G/ZEAFTnV+DCAinwwMAigIn8ZoCIXarwv7lONvwAI - Rd4D96nGieeAZwCq8acBociFGu+IxzoAVOOErMapyIUapyIXarwh7jcAqMiNarwGHqMipxqvCsiKvCI+ - piKnGheKXFbjVORGNR6Bx6jIqcSJEEBW4wH4mIq8KCCrcXeKnGpcVuRmatwLX2NU5FTjQpFnaDWOvwMj - lVTi4zUlLmDqj+dtmPt2VNkSsU8+0fwb4Gso8a+gxL+AL/7ZM0+3uQhf/Dx88Y/69O58GmrxBDzcIyOG - 9j4wZlS/PRPGvbzzjUlDtr7z5vAPp00dtXHm+2PXzpk5bvXcWRNWQfGugBpfCiX+WCpy/F698I6hF/zq - D0Y80Sz59o4lybcPb0y+c25f8p0LR5LvnN1jv715jv3W+Kft9mei7V90cK3IT0CRb27sVOSrXSjyvpGF - EnPn9jtdoXzk2EoxZYdXq1p+YK2alfo2blizW6uW9Tvj2Ld9/tn2TV/s83S9YUN61Rw7ql9lKvL33x0d - jeNZBr+v5ZFnUVXGJ7SFrHkMPMLfca/E6ZeHdgl1BIQEOObMmePWF4ef6zhx4oQD6tHx+eefO77//nvH - b7/95lAUxZGQkOCAp+uAgtR8capxKl0q3sf9H/17vusY1LmdQz2+BUr8sOP+1+cc93/4VLtVj2x03Js5 - 2HHjpfqO790o8vPP1HDsf8qpyDfTI2/3sEc+rl6Uo3Hjxvex3nBv27Ztd/fu3Xv3yJEjd86ePXsHx/TW - Dz/8cAtrDTew1nDDbrdfv4Z/t27duorjSUVOf1x45EKR0x8XHrk7f1xW5EZ/XFbjqfxxfO+vcf6+xK3s - jws1LvxxKvKzgOyP0xunGj8GCEVu5o/TGzf649vw2BZAKPKNuL8eEP64UOP0x6nIhRqnP74YoD8uvHGh - xmfjMXrjMwDhj1ON0x+nN041LvzxKbhPRS68ceGPj8Vj9MepxoU/PgL3ZX/cTI1TkdMbpyI3qvHueIze - ONU4/XFZjQtv/Ek8LtR4e9wX/ji98VaA8Meb4b5Q42b+OL3x2gD9capxochlNU5vvCJANV4eSI8/Tm9c - qPEw3BeKXPjj9MZlNU5FLrxxV2pceONCjdMjpxo3KnKqcYLeuPDHZTUu/PEM/SLoISlxU0We78k8t/2L - +d1u1rTOz1Dhmhrv9GSLr7p0avUFEiqfPfdMu0/g2Z6HL34OvvgZ+OIn4IsfRaLiwGtjXto7acLAnW9N - GboNKZXNUI0b4eWuh+e8BurxA6jxlVDjy6EiH2tFjt+zV5tWDd5rX7da8u2jHybfOX8o+c6XZ5346qwd - Xrn91nsv2W92K2//umOkqUfO9MrpViWTtjeJSFHkK+o+nFoZU75Yoq+P95fly5Uei+TKq1UqlxtUs0ZM - vwb1qvVo0bxuFyRX2uEdUPMXenVqMPDlbrVGvdq3ClJAFXB8LUVuKdIMTUYgWuv3/w+PgYfbhEq/UEdQ - +SDHuHHjUvnia9asMfXFT58+7bh48aLj66+/dsDLdfzrX//SUipQjhkmpYKL6aF/fNfw0UcfOdo1rue4 - /8lRx/3vLzrVuAAUupZcGdjY8VMPc4+cSZaLSK4c7FTVscONIn+/cXlHpUqV7q9bt+7eli1b7jK5ggTQ - HRzbO1hzuP3dd9/dxLucG3iXcwPpn2tYb6AivyIpciZWZH/cnRp3l1gxS6swqZLijVON64r8C12Rf4aD - Z6bGmVgxqnE5rSL88f8mrUJFbkyryP64u7QK1bhIq8zAfaZVhBqnP041LvxxWY1PxONU48Ifl9W47I+b - pVXoj78EyGpc+OMirUI1LtIqwh+nN06ItArVONMqVOSyGqc/bqbGmVZhUiWttArVOL1xOa1CNS7SKlTj - hEirMLHCtAqTKiKtIpIqVOOyIqc3LqtxoyI3+uMircLESl4d7tIqTKlQhacnrZIpNmZxqcjz98x7O3ek - 320kVP4NJf498C2U+DdQ4l9BiX+BhMrn3Z/v8EmvHk+eR178HPLipwcP7H4CvvgR+OIH4YvvhS++C/7t - NqRUtiClshG+ONX4OnjOq6HEV0GJrwAyhCKH9z+6YmTJ5DufHH2gxnVFDq/cfnvRa/Zbvavav3vCtSJn - lnxnU/eK/J0qAYleXp6/QJG/FlOxzEgkV4bUqF7xJSRXejVrUvuZdm0adcA5aIHj3vDll56rjXx+VaSB - KlKR491OWcsjt1QdCMxStlnsGJgq8rChYY6gWkGOV155JZUS/+CDDxxQig4kKhzwb7W8OH3xkydPar74 - F198keKLI+us+eKXLl1ywMZ1QDWm+OKPa2YcTwDTf1TkzMBXjamQWokLRQ6FjilPx91hrRy/9nSvyA93 - diryLciSm3nki1tWdJQqVUpT5EgC3d25c+fdAwcO3MExvo0s+S2kgG4iS34divw6suTXse5wFQkgKvLL - WHOQ/XEmVWQ1Tn9cZMdFWoXZcZEfZ4bcmB83y45TkX+jg4pcy4/jVuTHjWkVkR9ndpwQ2XHZH5fTKsyO - G9MqIjsu8uP0x0V23JU/blTjVOT0xmV/XGTHjf64yI7L/rhZWmUivp9Q4/THhTeenrSKUONydpz+uJwd - F4rcmFaRs+NGf1zOjgtFzrQK/XE5Oy7SKmbZcTmtIpIqIj9eEd/HlT/uKjtuVONGRW5Mq1CRC2/cVX7c - mFZhhpz+uMiNC2+caRXZH2eGPNOkVcSL9kOKvMCAfLfzxPjfRkrDhmnNH4DvocS/gwr8BlOFXz/Tte0X - SKh81qPbE59ApZ5HQuUcvNpTSFAch197dPxrAw5AIe6DL74LE4fb4YtvgVL8EEp8A3zxdfCb10KNfwDl - mGEUOX7XnsjBDyhWuGBqNS4UOX3yte/Zb/Wrbf/hiTIuPXIq8j3NnIp8Tf3QRDOPfF7NoMRcuXL+WS66 - 1DhkyUdViokaiuTKgDq1K/dGcuXZ1i0bdERaqCUSQo3wLqgOjns1vPuJefuNYZzutBR5FlNilvq23n3w - GkilyMNGIyveKNjRu3fvFCUuT25u2LBBm9yESnRAJTqQb3YgTZEqL+7OF88oKRUzWc7se4mICHNFDmXO - fDmnO3/rVds0R06PnNOdR9JQ5KvbxDhCQkLuY1L2Ht753MU7nzvIkt9GGuj2+fPnb2H9QVPkf/zxx3W8 - 47mGdzxXMSF7BUkgKnLZHzd6466mOV3lx+mRu5zmxOe+0sHEyufAZzhusj/OpIpQ40ysCDVORW5Mq1CR - C3+calye5mR2nIp8G8DsuEircJKTapzZceGPy2mVFXicYHb8P0mryNlxplWoyOmPi0nOibgv0irMjsuK - nNlxV2kVMc0pT3LK+XFOchKyGjemVajImR0X/ngH3E9PWsU4zSmrcWNaxSw7LvvjxrSKrMaZH5f9cWbH - wwCRHTeb5mRSxZgfN6rxfPgaOa1CVS6mOcUkJ29lNS4rcpFWybyKvMDA/HfyVs99B75sPBT4T1B9PwLf - Q4l/ByX+LZT411DiX/bo1vEzJCYu9uvb9TwSKueQUDmNhMrx10b3P4IelYNvTh66d+pbI3YjL74DvvhW - +OJU45vgi6+HGl8HNb4GCjfDKfLp08b09vP1ca3Ity2w33qlgf3HJ/87Rb60dkhizpw546nI4ZOPRnJl - GBU51ipeaNSwxnPIkj+Bd0nadGf/F7vWtRS5pchAXJYnnsWPgabIw8ZAiTcJdnTr1s2xdOnSVFlxJlSo - xNH9kWpyUyRUMG2o9aj83//9n8Nmszng26bkxTOyL44nR6p/fDcRGBjoWpEfWu+4O/bJ/1qRr0f/SkBA - wH0c97s47nfwDugOsuS3MS17C8mZm+ituYFJ2euY7ryG6c6rmO68ijWIy1DklzDdKU9yPmp23FW/iuhW - oTcu/HF641TkWn5cV+Sf4oBxklPOjp/DxyI/fgr3mVQR+XGRHXenxnfh682mOc3U+Bp8rdk0p1lahdnx - 9HSriOy4UOMiOy7y47I/zsSKyI7L05xD8LjIjlONy2kV+uOyGqc/3kOHmOSkGhfTnPIkp6zGhSKnP87s - uLtuFXmSUyhyocbddatUxPd91Oy43K3iSo27muakGheKnEo8rw5jflx441Tisj8uT3LSI8+0apwv5B4F - XnEqcfixCVDiv0CFa2ocE5s/QIl/h3TKN1DiX8MT/wJK/DNkxS8iLfHxkEE9zqLr4xQSKsfh0R5BQuUg - Eir7kFDZDfW6A37ttrmzxm+BL74JSnwjlPg6KPG1QIZU5HhX0RNpEteKHJ0rtwY2Sbci52SnmUe+DI2I - UOQJUOTjocjHUJFXrVL+5dq1KvVp2KDG8y1b1HsSWf7WOCeNOd2Jd0TVx419qRI9cqxHsAHRmuzM4uqM - T2wLWesYeNAT7969e4oSZ4cK2wyFEhcdKlCFjsOHD2uNhvBqH0qoxMfHZ7geldSa2/1HnEQNDQlxrchP - bIMi75RuRa5NdhraD6nG17WpROV/Hx02dzFNSkV+e8+ePZoiP3fu3E0kg24goy8U+TWjIkciSE6ryP0q - oulQzo4bpzk50Sny46LxkIpc5MfltIpQ5Jo/Drjzx5khF2mVY7hPUJGLtMoB3HeVVpH9cU5yElTkwhvn - NCfVOGHsVhFqnNOcCwFOc8pq3CytInerCG9cdKsIRT4R34dqfBwgpjmpxkVahf64u24VJlZEWkWe5pS9 - cTHNKXeryGkVkR3vgO9Ff1xOq4hJTpFWMXar1MfXE+xWoRqX/XF2q3CS0900J7PjBLtViP8krUIl7kqN - y9OcVOMCeXGfipxTnIRQ42KaU+THhRoX/rhIqmQ6bxzHQHvR9qhSOToBCvxXtOr9AvwMJf4jcuI/QIl/ - j06Pb5CO+ApK/Auov8+gxC8iK/4xsuJnocRPTXjt5WNTXh98BI2GB997Z+Q+KMI96FHZCV98O5T4Fijx - zVDiVOMboBQztCLHu42++fPkca3ID61PlyLfradWXHWtLKoVzNRKLBT5hAeKvNwr7Ftp2KB6t5bN6z31 - RIdmbTBR28RMkeNdEDvJrT5yS5VaqjwLXQMeoslQpFOMU5tQg1q3uMiKf/bZZ45vv/3WgeSE1mhoNrkp - elQyWl4cr2wu/7FDPSoy0rUiP7UjTY/8oclOSZFTjRMrWlW8Hx4efh+Z/TuSIr+FvpWbSAjdQN/KDaxJ - XEc6SHjkV5CooUeeDI/cblDkTKq46x436x+Xu8d/wvdjt4pxmpNqXHjjVOOf6opc+ONyWkVMdMrdKmKS - 879Nq4huFaHGRbfKCpzI5YCcVqEinw+46lZhdtw4zWnWrTIRXyenVYzdKuxVEWpc9sdF06FxmlN0q1CN - 9wDcdasYpzk74OtFWoWTnO6mOdmtImfH6Y/L3SrCHzemVZhUqQgY/XGjGuc0Z0nAmFYRiRWz7DgVuZxW - cZcdpxKXpzmNitzMH6cSl9U4FbloOsyw3eNChcu3Hkil/Ab8gj7xn9Hh8ROU3g/wX7/D5OA3UOJfwRP/ - Akr8UyjxC1DiH48e+eIZZMVPYmea48iKH0FW/CCU+D4o8T1Q4rugCHdAiW8DtkCJfwh1uBHI8Ioc6ZAh - JUKDXSvywxu01Iq7HPkZabLTVR/5jOqBUOS5fk+PIu/Tu5PmkePdUYpHbinyrOWNmj2prcey3jXgIStx - plOEJy4rcfaMCCXObnGRFadKFY2GIqHyOO/241pvp/0ZdJw4Gtaq6V6Rj2zndrLzAtoPDzxV1WUf+fq2 - MffnNC1/Pzo6+iFFjvWJW+h4pyK/jgZEKvKreDfE1IpQ5HZdkaeVVhHd4/TH3e4GBDX+IxU54DatQjUO - MLFyHnCVH3eXHac/LmfHmVYR05xydpzTnMbsuEirmKnxJfh6TnKa+eNpdasY1bjIj1ONy90qclrFXXY8 - Pd0qVOTGbhW2HTKtQrhqOxRpFblbhf44vXGRHacaJ+iNu5vmlL3xSvhaoyIX3SqyNy7UOBW5aDo0th3K - ilx442bd43J23FW3iqzGRX5c+OPGpkMzfzzT2U4eSKb8ioz4z/DDf0J3yg9Q4t9hYvMb5MS/ghL/fPDA - Hp8inXIBqu8jKPEzmNo8CSV+DN0eR95/d9RBKPH92OlnD5TgbvjiO6HEt0OJb4UK3wxkGkWOdysT61et - 5FqRH1irTXa66lrhDkFsP9zWxP0OQZNjAhK9vb2+f6DIywzHlO1A9K30rV+vWrfmzep26ti+aVucs6aW - Is96ystS29Y5N7VWuNemnBNnOkV44q6UuFlWPLMqcaHV2SnT/ckOrhU5dg26O7SF42cX7YfcIehjKPI9 - Tzr7yDcZUitOjzzm/psNou/XqFFDFR45GhBvo9PmllDkeGd0HT3v19D9QkV+GYr8MjzyS/DIqciToJ6p - yNmrInerMKki0ipyUkUocuPenD9Lavx7E0Uu++NU48QFgIrczB+XpznlpkNOc4q0ilDkIjvuaprTVVpF - KHLhjQt/XKhx+uNm3SpsOpT98XfwsWg6ZFpFnuaU1bhZ97iZPy6y4wPwveRpzj74+FH8cXdqnN64MTsu - d4+z6dCVGq+Fz8ndKlTkoldFKHLZH2fLofDHRdshJznN/HFmx435cTYdUom7UuNm3SrusuNCkVOJG7Pj - skeeKXrHXb2Qe8AP/wXTmj9Cif/Q94Uu32Fa8GtMbH4J7/VzKPFPoMTPQ4l/BCV+BumUk5jaPAYlfgRT - m4egxPdDie+FEt8NJb4LSnwHVPg2INMp8gb1q8/r9WQ714p85xL7rV6V7d+4aD+kIucOQR9iz851DcKS - VrnYIWhwdJFEPz+fC0aPXChyplaoyJlasRS5pc4shW5dA7wGPNidIvbaRDJCy4mzydDMExdKXG4zpBIX - HSpQZELAZrrbefPmOSYPedm1It+zwnH3lYaOH9zsEHQOe3buwp6d29B8KCtykVihIh9WK/J+69athSK/ - jfNzC+sVcmqFHvk1eORXdEV+CYo8WVfkiVDPxuy4yI/TG2fTYVrdKg+pcXzPb/HffY1bre1Qn+RMSavQ - H9cVOf1xMc3JbhVCbjsUalzeCUh0q+zG16alxoU/bpZWWYH/nmC3Cr1xZseN/vgcPGbMjgtFbtZ0SDUu - suNU40Z/XLQduutWoTduNs0p1LiY5mRaxdU0p6zGmR/vAIi0itEfl7Pj9Mfl7nF64yKtwsQK1TjTKsbu - cSpxoiKQnmlOocaZWHHnjYvecTk/Xhj/DdMqcnac3riY5nSXVnE1zUklbpzmzJRpFfydzhw5dvb5CXnk - 7wf0f/ZbtBh+PXRwzy9eHd7nM+wF+QkmNj9GOuUclPgZKPGTUOLHocSPQIkfghI/ACW+D0p8L5Q41fhO - KPFMq8ixX+nWaSMHu20/vPZ8OfuXHV3v2XkUinwTFPlaKPKVJrsDLcdU57MlCiTmzZv7SHpSKyJHbqVW - LFUmntDWbda8FjzYYshd79mdgr5rbWKTCQ05Jy7SKVlRieOJof0bMGCAY8u86a4V+fppjqv96zu+daHI - 2Xx46unqjp1POLvIN2K/TlmJU40Tz8eUvI9J23vwyG8jR+5KkV+lIkfXCj3ySzgvVORJeHdERW7cl1NT - 5HhcAf4ERFqF/rhxb06t7VD3x+mNE9/qoCI3y48LNX4e/y0VuehWMarxY/gcc+PGaU5644RQ5CKtsg2P - selQ7h6nPy6rcXaryGkV0XToKq0i7wQ0Hf+t7I/TGyfkpkOqcTmtwklO0XQo0iqc5hRpFXmacyAed9et - 0hufpxoX+XGhxuXucdGtYvTHZTXuKjvOxIrIjhv9cblbRfjjxrRKRfz3shpn26Hwx+mNG6c5mVYR3SrM - jgt/3KzpMD1pFVmRi+5xeZLT1TQnlbjRG6c/nrk9ciRTvkdG/JvhQ3t/NWpE3y+wz+anaDG8OGXS4PPo - 7ziHnPhp5MRPIZ1yHDnxo1Dih9BkeBBK/ABUONX4HijxXUCmVuRFixS8cGTlfJeK/Nac4fb4rtH2T9ub - K3J2kR9sUTxpYyN0kUORm/WsUJE3CMidWLhwgQ+Nijy9XStWjjxrKjIQVaaL1Fl/U/rPqQf7xLnPJlsM - xa736LpOmdg0y4lnBU8cF1Gqf7Vq1XL8dmyPS0V+b+5wR3zfuo6vuz28QxATK5zqPNa5WsruQA/UuDOt - ItA4Muz+6NGj76JrJUWRI0l0E++abqBr5TreMV3DZOdVTNVSkV+CIk+GIrdDkSdiolZT5ECqaU5JjVOR - u53mNKRVhBr/hv444Mof19Q4wMQKFbnRHz+Gx1x1q7hLqxi7VYQiF9lxdqsY0yrCHzemVZhYMfPH5W6V - tNIqQpHLalz441TjnOQ0m+aU0yrGbpUe+G+oxoUiN+tWEU2HHfF1HYB2AL1x2R9vgY/NulUa4HFjdtzY - rSL25ayCr2VixSw7LneruEurhOG/J6jIqcaFIhf+uLu0Cr1xd/646B6nGjeb5GRqRahxkR8XSlx45Jny - Bc8DyZRv4LF+iWTK569PGPgpdmS/gF6Rj9Gdcm76e6NPQ4mfhBI/AaV3FEr8CJT4IahwqvH9UOF7gUyv - yLEv5pDiIUHJNz4/5VqRj3/a/n+dytovti/10A5BTKxwqjOlZ6V+aBLVtxmK5/FODAkJmK+3H2p95KL9 - UO4jt9oP069W8OTOlE9e6++yzqu4BjywB6S24z37xLEPpEO0GF65csVx/fr1lL025Zx4Zk6n4MA89I/v - Wp5s1dylGr+PHYLuTezq+Ffv2o4vnq/50A5BVOSc6jzY6cFUp5kiX9Om4v1SwYH3Z8+efQedN7eR77+F - HPlNKPIb2I3pBnL919FHfhXn6wreNV3GuUrGDkHJOE+aIhceORU5EAfEAqn8cV2Ra93juJ8qP27Mjuve - eIoax8dfAGw71LpV9KQK8+OaGgeYWBHdKqJ/nBOdVOOESKswOy5Pc7pLq4hpTu4CJHYCEoqcanwFwOy4 - yI+LtAqbDo3ZcU5zzgBkf1xOqxj98dfxtRMBplVkNe4qrTIYX0cIf5zZcWPTIfPj9MfpjZu1HXKS82lA - +ONP4b7cPS78cZEdF9OcZmqciZUGgDzJadY9LvxxkVahIneXVuEkp6tulTB8jpAnOYPwsbHpsAgeE4kV - s+x4Xnxe7lYR/rg8ySmmOY35cdE9LqvxTP1i7oFkypdIpnyGZMonSKZcwM4+H0OJn0Of+Bl0cJ+EEj8B - JX4cSvwoVPhh4CBU+AEgyyjyBvWqLejbpePDalzs2fnJUfutl+ppXeQftzNX5MyQb2nsnOpc5UKRv1Ml - INHL0/PXqLIlJ3GHoArlI0dBkZvu2ckdgqw9Oy1FBrLL1ARl/X3pO78eojeFGXHueM+9KbEHpAMKT9v1 - PrNPbOJCSfPflClTHHNfH+umZ2Wn4+7gJtpU5+cmipyJlbPIkO+WMuRmiZVJ9aPu165dW0X/zW0o8lvY - s/PW9u3bNUV+/Pjx68j3X8NaxlX03WiKHHt2UpHb6ZGj64aKXPPHdZiqcXzuX8DvgFDkKW2HJmkVqnHi - K/rjVOOAyI/LaRWqcUL441Tj8jSnK398D76OaZWdOrbjdhvApAr9cbOdgNbicXknICpxOa0iusepxh9l - JyDZH3eVVqE3bvTHOc05FKA3PhgYBDCtQjUuT3OKnYDktIrIjhu7x+W0iit/nJOcxm4VTnOKbhWhxo3+ - uDE7TjUuT3MKf7w8HifojQt/XE6ryJOcol9FpFWoxoUipzcupjlF0yGVuKzGqciFN25Mq4heFVmRm/nj - TKuI7Dj98UyfVMHfmPIi7gE//HP44Z8gmXIBfvjHyIifgxI/AyV+Gir8JHAcKvwYFPgR4DCQ5RR5cFCx - U1vnvOdSkd/eONMuMuRGRU5/nImVw1DkTKxoGfJ65h5579KFEvPk9j8dHVXydXSRv4Zdm0ZVrhQ1pHq1 - Ci/VrV2lV5NGtZ5p27phR/THt8QkbkMkjmrDv6+KqduK6L6JxruostYOQelTMPKTwLpvHbOMfg142O32 - lAbDmzdvpqhwJlOgvhxZzQ/HCU31j8chODjI8dOhna4TKyunOC71q2eaIReJlRNIrIgM+YaUDPmDtApT - K92QIce+qfdWrlx5Gx04VOQ3MXV7E1n/GydOnLiOnP81rGlcQcb/8p9//nmJihypIjs88iS8g0qAIhfe - OP1xozf+B/1xXZFralyHpshd+ONadlxX45o/DtAfpxonUtIq9McB+uNCjZ/A/WMA1biY6DyA+3K3ipwd - N3ar0BsXipzeuMiPy2p8BR4XitxVWkVMcwp/nNlxwphWoT/+BiCr8Yn4eDxAf5zdKsIbZ3ZcTqsIRU41 - Tn+ck5zuulXkaU6hxp/FfyP8cfaOE8Ifl9MqTKyI7LiZPy6mOV1lx4Uir47vI9IqcrdKRTxu9MfZrWLM - jrNfhZOcshoPw8dMq8j+uDGtQlVuNs1JJW6WHXe3E5DcryJnx+mRZ4m0Cv5O52Qn9tf8FEr8ApIp5zGp - +RH88LNQ4WeAU1DiJ6DwjgNZVpGjz2Rc1XJR5mpc98hvTelm/6NLVOoMeVt45VDjovVwD3YG2gB/fDX9 - 8brmirxGEf/EYkULrYcin0hFHlOxzEjs4DQYPSv90XzYs1nTOl3bt2vcHo2VLajIMYlba9SrfasgaVSB - ihznr4ylyC11KZ7c1m3WuRY8XPnhWV2J40mg/WM/+8Aez6WZWPl37zqOr7qZJ1bYevhwYiW1Gqcir1I8 - +D78+DvYM/X2unXrbuFn39y5c+cNNC9eRwfOtU8//fQqdme68uuvv15GwigZ6xqaIsc7qUQqcrx7cJtW - kfzxFDWOx34BhCKXpznltEqKPy4pcpFWYWKFavysrsjlbhVZjTOxIhR5Wk2HVONppVVW4mvM0irMj8v+ - uHGak02HhLFb5U08JrpVOM05ERBqnNOc9MapyKnGxTSnPMkp1LhxmvNFfL1Zdlz2x6nGmR93l1bpgM+L - /LjRHxdNh8IfpxpvAAh/nL0qTKuwV0V0q1CRG6c5RVqFipyTnOnNjtMbDwNkNc78uPDHmViRdwIyplUK - 4PNCjefFfTmtQkXO3LiY5BT9KlTjQpG7y45nicVgD/jhF6HkzkOBfwycgwo/A5yGsjsFZHlFjgTJNtOO - Fapx4vxB+62+NbWdgc7LiRUocuGPH4c/vllOrJgo8verBSb6euZMjIyMeIdTnUisjEViZQS7yGvVjHkR - 7Yvd0XzYWW8+bNb3hc710RVfE504lS1FnnWUF8grSxCT9Xc+2nn2EO2Flh+OS8fkX+fOnR2nNqxwnVg5 - sNpx5+UGjp9MEiv0x0XHClsPt6bqWEmtyF9HYqVOnTrq8uXLb7NnBYr8JjPk6CK/gS7y68iyX0Mj5VVM - 315B5v8ymg+Tsb5hR94/CYmVBCSM4qHI5ew4PXKtW0XyxplYEf74r5Ia1/bmBES3ilDjRn/8M3yNthuQ - lB3X0ipU4wAnOumNMzt+DBCKXM6Ps+1QpFWYHxfdKltxn2BaRfjjnOQU/ricHacaXwEwrUKYNR2KSU56 - 4zMBY3Z8Kh5z1a0yEZ9jdpyK3Kxbhf64Ma1i1q0i1LjIjov8uDGtIvxxV2kVkR3nJKexW4X5cfaqmKVV - 6uJxqnFZkYumQ1dpFaHG0+pWEf441biZIpfVOKc5mRuXs+OF8DGVuKu0CvtVjP64nFYRatzYrSL88Uzd - rYJjk+oF3QMq/CLVOFT4R1Dg54AzgKXI503qgw6aUWWKh1+KP3PQpUd+a+4IewI6Vr7oUDp1hlxX5Jzo - 3N9c6lhhYsVEkeuth8fgj0/hVGeFCpFjKsWUHY7Eyiu1a1Xu27hRzefbtG741FNPNG/T7bkOTdh8iH1E - a44fO6AykkflkTqyPHJLrVpqPYteAx70wi0/HK9vJv+Q4Xb0f/5p9/741BcdsX3quEysnIc/frhzVa1j - ZTN2BRI7Acn9Krz/RPni9/v163dXZMg3btx4C13kN5Ahv46pzmuY6ryGqc4rmOq8jOz/JfSssGYlCRly - KvJ4vLOiGheKnE2HKW2HkjfO/Dj9capxgt64aDuUFbnWPa4nVkRahWr8UypyINU0p67GqcjFNOcxHE7Z - Hz+Ij+mPm3WPi+w41bgxP26WVpGnOUV+nL3jhLtpTiZV6I0zrSL8cSZVRFqF/rjcdCinVVx1qzCtMhgQ - 2XGRH5e7VajG2T1ubDo0S6sYpzlFWkUocjHN2RLfz9itYkyr0B8XipxJFYJqXChy0asiEisV8Tk5rRKF - jwkmVkTToatpTnrjwh/nFCchp1WEIpfTKlTjsiLPi4+FNy6rcbP8uJjk5K1Q5MZpTr6osV8lS7y4eUB9 - XwA+BixFPm/SSzgO/YAXgT7wx3e8P3roJc0Ld4FbL9e3//xUmdQdK1TjAPPj9MfFPp3aRCfVuIkiL53P - hx0rS6DGJyGxMo4Z8iqVyw2FIh9Qt06V3k0a13q2XZtGT3Tu1LIVEiuNsYtTHfTk1MBUbgwVOTLkUfid - I63UStZ44mYVgrL+zvRdz3y1sv65OAJt27Z1XNi6zv0+na80cvzas9ZDHSsiP34aHeTyrkBGJc6P5zQt - fz80MOD+woULbyNDfgtTnTeRIb+BDPkNZMivY6rzGjPkX3/9NTPkl5ghR2LFjqnOJGTImVgRipy++EPd - KniMSjxlmlPyxkVa5UfdH/8Ot2w81JoOdVCRCzV+EfcJkR9PSatQjQMnAZEfF9lxM3+c3rjsj2/Dx2bT - nCI7btatItS4sVuF05wiO05v3MwfpzfOSU5ZjTM//jowEaA/LrpV5Py4u+y4UOPGbhWqcaHIe+A+/XFZ - jRvTKuweN+tWMTYdCkUuesc5ySlPc1KNC0Uu0ipMqrhKq1TE5+S0CtU4s+Oi6VBW43J+PAxfY8yOG7tV - mFj5T7pV0jPNadY9nqmbDnEsH3qX8f/ZXcAmG/Xg8wAAAABJRU5ErkJggg== - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.Designer.cs deleted file mode 100644 index 88b84dfa..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.Designer.cs +++ /dev/null @@ -1,240 +0,0 @@ -namespace PTWin -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.toolStrip1 = new System.Windows.Forms.ToolStrip(); - this.ProjectsStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); - this.NewProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.EditProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.DeleteProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.ResourcesToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.NewResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.EditResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.DeleteResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.AdminToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.EditRolesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.LoginToolStripLabel = new System.Windows.Forms.ToolStripLabel(); - this.LoginToolStripButton = new System.Windows.Forms.ToolStripButton(); - this.DocumentsToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.Panel1 = new System.Windows.Forms.Panel(); - this.StatusStrip1 = new System.Windows.Forms.StatusStrip(); - this.StatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolStrip1.SuspendLayout(); - this.StatusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // toolStrip1 - // - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.ProjectsStripDropDownButton1, - this.ResourcesToolStripDropDownButton, - this.AdminToolStripDropDownButton, - this.LoginToolStripLabel, - this.LoginToolStripButton, - this.DocumentsToolStripDropDownButton}); - this.toolStrip1.Location = new System.Drawing.Point(0, 0); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Size = new System.Drawing.Size(827, 25); - this.toolStrip1.TabIndex = 1; - // - // ProjectsStripDropDownButton1 - // - this.ProjectsStripDropDownButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.NewProjectToolStripMenuItem, - this.EditProjectToolStripMenuItem, - this.DeleteProjectToolStripMenuItem}); - this.ProjectsStripDropDownButton1.Image = ((System.Drawing.Image)(resources.GetObject("ProjectsStripDropDownButton1.Image"))); - this.ProjectsStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.ProjectsStripDropDownButton1.Name = "ProjectsStripDropDownButton1"; - this.ProjectsStripDropDownButton1.Size = new System.Drawing.Size(75, 22); - this.ProjectsStripDropDownButton1.Text = "Projects"; - // - // NewProjectToolStripMenuItem - // - this.NewProjectToolStripMenuItem.Name = "NewProjectToolStripMenuItem"; - this.NewProjectToolStripMenuItem.Size = new System.Drawing.Size(142, 22); - this.NewProjectToolStripMenuItem.Text = "New project"; - this.NewProjectToolStripMenuItem.Click += new System.EventHandler(this.NewProjectToolStripMenuItem_Click); - // - // EditProjectToolStripMenuItem - // - this.EditProjectToolStripMenuItem.Name = "EditProjectToolStripMenuItem"; - this.EditProjectToolStripMenuItem.Size = new System.Drawing.Size(142, 22); - this.EditProjectToolStripMenuItem.Text = "Edit project"; - this.EditProjectToolStripMenuItem.Click += new System.EventHandler(this.EditProjectToolStripMenuItem_Click); - // - // DeleteProjectToolStripMenuItem - // - this.DeleteProjectToolStripMenuItem.Name = "DeleteProjectToolStripMenuItem"; - this.DeleteProjectToolStripMenuItem.Size = new System.Drawing.Size(142, 22); - this.DeleteProjectToolStripMenuItem.Text = "Delete project"; - this.DeleteProjectToolStripMenuItem.Click += new System.EventHandler(this.DeleteProjectToolStripMenuItem_Click); - // - // ResourcesToolStripDropDownButton - // - this.ResourcesToolStripDropDownButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.NewResourceToolStripMenuItem, - this.EditResourceToolStripMenuItem, - this.DeleteResourceToolStripMenuItem}); - this.ResourcesToolStripDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("ResourcesToolStripDropDownButton.Image"))); - this.ResourcesToolStripDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.ResourcesToolStripDropDownButton.Name = "ResourcesToolStripDropDownButton"; - this.ResourcesToolStripDropDownButton.Size = new System.Drawing.Size(86, 22); - this.ResourcesToolStripDropDownButton.Text = "Resources"; - // - // NewResourceToolStripMenuItem - // - this.NewResourceToolStripMenuItem.Name = "NewResourceToolStripMenuItem"; - this.NewResourceToolStripMenuItem.Size = new System.Drawing.Size(150, 22); - this.NewResourceToolStripMenuItem.Text = "New resource"; - this.NewResourceToolStripMenuItem.Click += new System.EventHandler(this.NewResourceToolStripMenuItem_Click); - // - // EditResourceToolStripMenuItem - // - this.EditResourceToolStripMenuItem.Name = "EditResourceToolStripMenuItem"; - this.EditResourceToolStripMenuItem.Size = new System.Drawing.Size(150, 22); - this.EditResourceToolStripMenuItem.Text = "Edit resource"; - this.EditResourceToolStripMenuItem.Click += new System.EventHandler(this.EditResourceToolStripMenuItem_Click); - // - // DeleteResourceToolStripMenuItem - // - this.DeleteResourceToolStripMenuItem.Name = "DeleteResourceToolStripMenuItem"; - this.DeleteResourceToolStripMenuItem.Size = new System.Drawing.Size(150, 22); - this.DeleteResourceToolStripMenuItem.Text = "Delete resource"; - this.DeleteResourceToolStripMenuItem.Click += new System.EventHandler(this.DeleteResourceToolStripMenuItem_Click); - // - // AdminToolStripDropDownButton - // - this.AdminToolStripDropDownButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.EditRolesToolStripMenuItem}); - this.AdminToolStripDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("AdminToolStripDropDownButton.Image"))); - this.AdminToolStripDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.AdminToolStripDropDownButton.Name = "AdminToolStripDropDownButton"; - this.AdminToolStripDropDownButton.Size = new System.Drawing.Size(65, 22); - this.AdminToolStripDropDownButton.Text = "Admin"; - // - // EditRolesToolStripMenuItem - // - this.EditRolesToolStripMenuItem.Name = "EditRolesToolStripMenuItem"; - this.EditRolesToolStripMenuItem.Size = new System.Drawing.Size(118, 22); - this.EditRolesToolStripMenuItem.Text = "Edit roles"; - this.EditRolesToolStripMenuItem.Click += new System.EventHandler(this.EditRolesToolStripMenuItem_Click); - // - // LoginToolStripLabel - // - this.LoginToolStripLabel.Name = "LoginToolStripLabel"; - this.LoginToolStripLabel.Size = new System.Drawing.Size(70, 22); - this.LoginToolStripLabel.Text = "Not logged in"; - // - // LoginToolStripButton - // - this.LoginToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.LoginToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("LoginToolStripButton.Image"))); - this.LoginToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.LoginToolStripButton.Name = "LoginToolStripButton"; - this.LoginToolStripButton.Size = new System.Drawing.Size(36, 22); - this.LoginToolStripButton.Text = "Login"; - this.LoginToolStripButton.Click += new System.EventHandler(this.LoginToolStripButton_Click); - // - // DocumentsToolStripDropDownButton - // - this.DocumentsToolStripDropDownButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.DocumentsToolStripDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("DocumentsToolStripDropDownButton.Image"))); - this.DocumentsToolStripDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.DocumentsToolStripDropDownButton.Name = "DocumentsToolStripDropDownButton"; - this.DocumentsToolStripDropDownButton.Size = new System.Drawing.Size(73, 22); - this.DocumentsToolStripDropDownButton.Text = "Documents"; - this.DocumentsToolStripDropDownButton.DropDownOpening += new System.EventHandler(this.DocumentsToolStripDropDownButton_DropDownOpening); - // - // Panel1 - // - this.Panel1.BackColor = System.Drawing.SystemColors.ControlDark; - this.Panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.Panel1.Location = new System.Drawing.Point(0, 25); - this.Panel1.Name = "Panel1"; - this.Panel1.Size = new System.Drawing.Size(827, 393); - this.Panel1.TabIndex = 2; - // - // StatusStrip1 - // - this.StatusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.StatusLabel}); - this.StatusStrip1.Location = new System.Drawing.Point(0, 396); - this.StatusStrip1.Name = "StatusStrip1"; - this.StatusStrip1.Size = new System.Drawing.Size(827, 22); - this.StatusStrip1.TabIndex = 3; - this.StatusStrip1.Text = "statusStrip1"; - // - // StatusLabel - // - this.StatusLabel.Name = "StatusLabel"; - this.StatusLabel.Size = new System.Drawing.Size(0, 17); - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(827, 418); - this.Controls.Add(this.StatusStrip1); - this.Controls.Add(this.Panel1); - this.Controls.Add(this.toolStrip1); - this.Name = "MainForm"; - this.Text = "Project Tracker"; - this.Load += new System.EventHandler(this.MainForm_Load); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.StatusStrip1.ResumeLayout(false); - this.StatusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.ToolStrip toolStrip1; - internal System.Windows.Forms.ToolStripDropDownButton ProjectsStripDropDownButton1; - internal System.Windows.Forms.ToolStripMenuItem NewProjectToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem EditProjectToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem DeleteProjectToolStripMenuItem; - internal System.Windows.Forms.ToolStripLabel LoginToolStripLabel; - internal System.Windows.Forms.ToolStripButton LoginToolStripButton; - internal System.Windows.Forms.ToolStripDropDownButton ResourcesToolStripDropDownButton; - internal System.Windows.Forms.ToolStripMenuItem NewResourceToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem EditResourceToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem DeleteResourceToolStripMenuItem; - internal System.Windows.Forms.ToolStripDropDownButton AdminToolStripDropDownButton; - internal System.Windows.Forms.ToolStripMenuItem EditRolesToolStripMenuItem; - internal System.Windows.Forms.ToolStripDropDownButton DocumentsToolStripDropDownButton; - internal System.Windows.Forms.Panel Panel1; - internal System.Windows.Forms.StatusStrip StatusStrip1; - internal System.Windows.Forms.ToolStripStatusLabel StatusLabel; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.cs deleted file mode 100644 index 2cd0b6c3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.cs +++ /dev/null @@ -1,462 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class MainForm : Form - { - public MainForm() - { - InitializeComponent(); - _main = this; - } - - private static MainForm _main; - - internal static MainForm Instance - { - get { return _main; } - } - - private void MainForm_Load(object sender, EventArgs e) - { - if (Csla.ApplicationContext.AuthenticationType == "Windows") - AppDomain.CurrentDomain.SetPrincipalPolicy( - System.Security.Principal.PrincipalPolicy.WindowsPrincipal); - else - DoLogin(); - if (DocumentCount == 0) - this.DocumentsToolStripDropDownButton.Enabled = false; - ApplyAuthorizationRules(); - } - - #region Projects - - private void NewProjectToolStripMenuItem_Click( - object sender, EventArgs e) - { - using (StatusBusy busy = - new StatusBusy("Creating project...")) - { - AddWinPart(new ProjectEdit(Project.NewProject())); - } - } - - private void EditProjectToolStripMenuItem_Click( - object sender, EventArgs e) - { - using (ProjectSelect dlg = new ProjectSelect()) - { - dlg.Text = "Edit Project"; - if (dlg.ShowDialog() == DialogResult.OK) - { - ShowEditProject(dlg.ProjectId); - } - } - } - - public void ShowEditProject(Guid projectId) - { - // see if this project is already loaded - foreach (Control ctl in Panel1.Controls) - { - if (ctl is ProjectEdit) - { - ProjectEdit part = (ProjectEdit)ctl; - if (part.Project.Id.Equals(projectId)) - { - // project already loaded so just - // display the existing winpart - ShowWinPart(part); - return; - } - } - } - - // the project wasn't already loaded - // so load it and display the new winpart - using (StatusBusy busy = new StatusBusy("Loading project...")) - { - try - { - AddWinPart(new ProjectEdit(Project.GetProject(projectId))); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - - private void DeleteProjectToolStripMenuItem_Click(object sender, EventArgs e) - { - ProjectSelect dlg = new ProjectSelect(); - dlg.Text = "Delete Project"; - if (dlg.ShowDialog() == DialogResult.OK) - { - // get the project id - Guid projectId = dlg.ProjectId; - - if (MessageBox.Show("Are you sure?", "Delete project", - MessageBoxButtons.YesNo, MessageBoxIcon.Question, - MessageBoxDefaultButton.Button2) == DialogResult.Yes) - { - using (StatusBusy busy = new StatusBusy("Deleting project...")) - { - try - { - Project.DeleteProject(projectId); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - } - } - - #endregion - - #region Resources - - private void NewResourceToolStripMenuItem_Click(object sender, EventArgs e) - { - using (StatusBusy busy = new StatusBusy("Creating resource...")) - { - AddWinPart(new ResourceEdit(Resource.NewResource())); - } - } - - private void EditResourceToolStripMenuItem_Click( - object sender, EventArgs e) - { - ResourceSelect dlg = new ResourceSelect(); - dlg.Text = "Edit Resource"; - if (dlg.ShowDialog() == DialogResult.OK) - { - // get the resource id - ShowEditResource(dlg.ResourceId); - } - } - - public void ShowEditResource(int resourceId) - { - // see if this resource is already loaded - foreach (Control ctl in Panel1.Controls) - { - if (ctl is ResourceEdit) - { - ResourceEdit part = (ResourceEdit)ctl; - if (part.Resource.Id.Equals(resourceId)) - { - // resource already loaded so just - // display the existing winpart - ShowWinPart(part); - return; - } - } - } - - // the resource wasn't already loaded - // so load it and display the new winpart - using (StatusBusy busy = new StatusBusy("Loading resource...")) - { - try - { - AddWinPart(new ResourceEdit(Resource.GetResource(resourceId))); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - - private void DeleteResourceToolStripMenuItem_Click( - object sender, EventArgs e) - { - ResourceSelect dlg = new ResourceSelect(); - dlg.Text = "Delete Resource"; - if (dlg.ShowDialog() == DialogResult.OK) - { - // get the resource id - int resourceId = dlg.ResourceId; - - if (MessageBox.Show("Are you sure?", "Delete resource", - MessageBoxButtons.YesNo, MessageBoxIcon.Question, - MessageBoxDefaultButton.Button2) == DialogResult.Yes) - { - using (StatusBusy busy = - new StatusBusy("Deleting resource...")) - { - try - { - Resource.DeleteResource(resourceId); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - } - } - - #endregion - - #region Roles - - private void EditRolesToolStripMenuItem_Click( - object sender, EventArgs e) - { - // see if this form is already loaded - foreach (Control ctl in Panel1.Controls) - { - if (ctl is RolesEdit) - { - ShowWinPart((WinPart)ctl); - return; - } - } - - // it wasn't already loaded, so show it. - AddWinPart(new RolesEdit()); - } - - #endregion - - #region ApplyAuthorizationRules - - private void ApplyAuthorizationRules() - { - // Project menu - this.NewProjectToolStripMenuItem.Enabled = - Project.CanAddObject(); - this.EditProjectToolStripMenuItem.Enabled = - Project.CanGetObject(); - if (Project.CanEditObject()) - this.EditProjectToolStripMenuItem.Text = - "Edit project"; - else - this.EditProjectToolStripMenuItem.Text = - "View project"; - this.DeleteProjectToolStripMenuItem.Enabled = - Project.CanDeleteObject(); - - // Resource menu - this.NewResourceToolStripMenuItem.Enabled = - Resource.CanAddObject(); - this.EditResourceToolStripMenuItem.Enabled = - Resource.CanGetObject(); - if (Resource.CanEditObject()) - this.EditResourceToolStripMenuItem.Text = - "Edit resource"; - else - this.EditResourceToolStripMenuItem.Text = - "View resource"; - this.DeleteResourceToolStripMenuItem.Enabled = - Resource.CanDeleteObject(); - - // Admin menu - this.EditRolesToolStripMenuItem.Enabled = - ProjectTracker.Library.Admin.Roles.CanEditObject(); - } - - #endregion - - #region Login/Logout - - private void LoginToolStripButton_Click( - object sender, EventArgs e) - { - DoLogin(); - } - - private void DoLogin() - { - ProjectTracker.Library.Security.PTPrincipal.Logout(); - - if (this.LoginToolStripButton.Text == "Login") - { - LoginForm loginForm = new LoginForm(); - loginForm.ShowDialog(this); - } - - System.Security.Principal.IPrincipal user = - Csla.ApplicationContext.User; - - if (user.Identity.IsAuthenticated) - { - this.LoginToolStripLabel.Text = "Logged in as " + - user.Identity.Name; - this.LoginToolStripButton.Text = "Logout"; - } - else - { - this.LoginToolStripLabel.Text = "Not logged in"; - this.LoginToolStripButton.Text = "Login"; - } - - // reset menus, etc. - ApplyAuthorizationRules(); - - // notify all documents - foreach (Control ctl in Panel1.Controls) - if (ctl is WinPart) - ((WinPart)ctl).OnCurrentPrincipalChanged(this, EventArgs.Empty); - } - - #endregion - - #region WinPart handling - - /// - /// Add a new WinPart control to the - /// list of available documents and - /// make it the active WinPart. - /// - /// The WinPart control to add and display. - private void AddWinPart(WinPart part) - { - part.CloseWinPart += new EventHandler(CloseWinPart); - part.BackColor = toolStrip1.BackColor; - Panel1.Controls.Add(part); - this.DocumentsToolStripDropDownButton.Enabled = true; - ShowWinPart(part); - } - - /// - /// Make the specified WinPart the - /// active, displayed control. - /// - /// The WinPart control to display. - private void ShowWinPart(WinPart part) - { - part.Dock = DockStyle.Fill; - part.Visible = true; - part.BringToFront(); - this.Text = "Project Tracker - " + part.ToString(); - } - - /// - /// Populate the Documents dropdown list. - /// - private void DocumentsToolStripDropDownButton_DropDownOpening( - object sender, EventArgs e) - { - ToolStripItemCollection items = - DocumentsToolStripDropDownButton.DropDownItems; - foreach (ToolStripItem item in items) - item.Click -= new EventHandler(DocumentClick); - items.Clear(); - foreach (Control ctl in Panel1.Controls) - if (ctl is WinPart) - { - ToolStripItem item = new ToolStripMenuItem(); - item.Text = ((WinPart)ctl).ToString(); - item.Tag = ctl; - item.Click += new EventHandler(DocumentClick); - items.Add(item); - } - } - - /// - /// Make selected WinPart the active control. - /// - private void DocumentClick(object sender, EventArgs e) - { - WinPart ctl = (WinPart)((ToolStripItem)sender).Tag; - ShowWinPart(ctl); - } - - /// - /// Gets a count of the number of loaded - /// documents. - /// - public int DocumentCount - { - get - { - int count = 0; - foreach (Control ctl in Panel1.Controls) - if (ctl is WinPart) - count++; - return count; - } - } - - /// - /// Handles event from WinPart when that - /// WinPart is closing. - /// - private void CloseWinPart(object sender, EventArgs e) - { - WinPart part = (WinPart)sender; - part.CloseWinPart -= new EventHandler(CloseWinPart); - part.Visible = false; - Panel1.Controls.Remove(part); - part.Dispose(); - if (DocumentCount == 0) - { - this.DocumentsToolStripDropDownButton.Enabled = false; - this.Text = "Project Tracker"; - } - else - { - // Find the first WinPart control and set - // the main form's Text property accordingly. - // This works because the first WinPart - // is the active one. - foreach (Control ctl in Panel1.Controls) - { - if (ctl is WinPart) - { - this.Text = "Project Tracker - " + ((WinPart)ctl).ToString(); - break; - } - } - } - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.resx deleted file mode 100644 index 899ce552..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.resx +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - 116, 17 - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/PTWin.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/PTWin.csproj deleted file mode 100644 index b6aeb54d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/PTWin.csproj +++ /dev/null @@ -1,164 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {DAB85BA2-86A3-4D3B-8D34-324D939D952C} - WinExe - Properties - PTWin - PTWin - PTWin.Program - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\csla20cs\Csla\bin\Debug\Csla.dll - - - - - - - - - - - Form - - - LoginForm.cs - - - Form - - - MainForm.cs - - - - UserControl - - - ProjectEdit.cs - - - Form - - - ProjectSelect.cs - - - - Designer - LoginForm.cs - - - Designer - MainForm.cs - - - Designer - ProjectEdit.cs - - - Designer - ProjectSelect.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - Designer - ResourceEdit.cs - - - Designer - ResourceSelect.cs - - - Designer - RolesEdit.cs - - - True - Resources.resx - True - - - - - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - UserControl - - - ResourceEdit.cs - - - Form - - - ResourceSelect.cs - - - UserControl - - - RolesEdit.cs - - - - UserControl - - - WinPart.cs - - - - - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96} - ProjectTracker.Library - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Program.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Program.cs deleted file mode 100644 index 6cab92de..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PTWin -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.Designer.cs deleted file mode 100644 index 674d79b0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.Designer.cs +++ /dev/null @@ -1,414 +0,0 @@ -namespace PTWin -{ - partial class ProjectEdit - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label DescriptionLabel; - System.Windows.Forms.Label EndedLabel; - System.Windows.Forms.Label IdLabel; - System.Windows.Forms.Label NameLabel; - System.Windows.Forms.Label StartedLabel; - this.CloseButton = new System.Windows.Forms.Button(); - this.ApplyButton = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - this.OKButton = new System.Windows.Forms.Button(); - this.GroupBox1 = new System.Windows.Forms.GroupBox(); - this.UnassignButton = new System.Windows.Forms.Button(); - this.AssignButton = new System.Windows.Forms.Button(); - this.ResourcesDataGridView = new System.Windows.Forms.DataGridView(); - this.ResourceId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.FullName = new System.Windows.Forms.DataGridViewLinkColumn(); - this.Role = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.roleListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.assignedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.resourcesBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.projectBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.DescriptionTextBox = new System.Windows.Forms.TextBox(); - this.EndedTextBox = new System.Windows.Forms.TextBox(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.NameTextBox = new System.Windows.Forms.TextBox(); - this.StartedTextBox = new System.Windows.Forms.TextBox(); - this.ErrorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); - this.ReadWriteAuthorization1 = new Csla.Windows.ReadWriteAuthorization(this.components); - this.BindingSourceRefresh1 = new Csla.Windows.BindingSourceRefresh(this.components); - DescriptionLabel = new System.Windows.Forms.Label(); - EndedLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - NameLabel = new System.Windows.Forms.Label(); - StartedLabel = new System.Windows.Forms.Label(); - this.GroupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ResourcesDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleListBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.resourcesBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.projectBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).BeginInit(); - this.SuspendLayout(); - // - // DescriptionLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(DescriptionLabel, false); - DescriptionLabel.AutoSize = true; - DescriptionLabel.Location = new System.Drawing.Point(12, 120); - DescriptionLabel.Name = "DescriptionLabel"; - DescriptionLabel.Size = new System.Drawing.Size(63, 13); - DescriptionLabel.TabIndex = 31; - DescriptionLabel.Text = "Description:"; - // - // EndedLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(EndedLabel, false); - EndedLabel.AutoSize = true; - EndedLabel.Location = new System.Drawing.Point(12, 94); - EndedLabel.Name = "EndedLabel"; - EndedLabel.Size = new System.Drawing.Size(41, 13); - EndedLabel.TabIndex = 33; - EndedLabel.Text = "Ended:"; - // - // IdLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(IdLabel, false); - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(12, 13); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 35; - IdLabel.Text = "Id:"; - // - // NameLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(NameLabel, false); - NameLabel.AutoSize = true; - NameLabel.Location = new System.Drawing.Point(12, 42); - NameLabel.Name = "NameLabel"; - NameLabel.Size = new System.Drawing.Size(38, 13); - NameLabel.TabIndex = 37; - NameLabel.Text = "Name:"; - // - // StartedLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(StartedLabel, false); - StartedLabel.AutoSize = true; - StartedLabel.Location = new System.Drawing.Point(12, 68); - StartedLabel.Name = "StartedLabel"; - StartedLabel.Size = new System.Drawing.Size(44, 13); - StartedLabel.TabIndex = 39; - StartedLabel.Text = "Started:"; - // - // CloseButton - // - this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.CloseButton, false); - this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CloseButton.Location = new System.Drawing.Point(578, 100); - this.CloseButton.Name = "CloseButton"; - this.CloseButton.Size = new System.Drawing.Size(75, 23); - this.CloseButton.TabIndex = 45; - this.CloseButton.Text = "Close"; - this.CloseButton.UseVisualStyleBackColor = true; - this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click); - // - // ApplyButton - // - this.ApplyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.ApplyButton, false); - this.ApplyButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.ApplyButton.Location = new System.Drawing.Point(578, 42); - this.ApplyButton.Name = "ApplyButton"; - this.ApplyButton.Size = new System.Drawing.Size(75, 23); - this.ApplyButton.TabIndex = 44; - this.ApplyButton.Text = "Apply"; - this.ApplyButton.UseVisualStyleBackColor = true; - this.ApplyButton.Click += new System.EventHandler(this.ApplyButton_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.Cancel_Button, false); - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(578, 71); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(75, 23); - this.Cancel_Button.TabIndex = 43; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.UseVisualStyleBackColor = true; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // OKButton - // - this.OKButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.OKButton, false); - this.OKButton.Location = new System.Drawing.Point(578, 13); - this.OKButton.Name = "OKButton"; - this.OKButton.Size = new System.Drawing.Size(75, 23); - this.OKButton.TabIndex = 42; - this.OKButton.Text = "OK"; - this.OKButton.UseVisualStyleBackColor = true; - this.OKButton.Click += new System.EventHandler(this.OKButton_Click); - // - // GroupBox1 - // - this.GroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.GroupBox1, false); - this.GroupBox1.Controls.Add(this.UnassignButton); - this.GroupBox1.Controls.Add(this.AssignButton); - this.GroupBox1.Controls.Add(this.ResourcesDataGridView); - this.GroupBox1.Location = new System.Drawing.Point(81, 231); - this.GroupBox1.Name = "GroupBox1"; - this.GroupBox1.Size = new System.Drawing.Size(460, 210); - this.GroupBox1.TabIndex = 41; - this.GroupBox1.TabStop = false; - this.GroupBox1.Text = "Resources"; - // - // UnassignButton - // - this.UnassignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.UnassignButton, false); - this.UnassignButton.Location = new System.Drawing.Point(379, 48); - this.UnassignButton.Name = "UnassignButton"; - this.UnassignButton.Size = new System.Drawing.Size(75, 23); - this.UnassignButton.TabIndex = 12; - this.UnassignButton.Text = "Unassign"; - this.UnassignButton.UseVisualStyleBackColor = true; - this.UnassignButton.Click += new System.EventHandler(this.UnassignButton_Click); - // - // AssignButton - // - this.AssignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.AssignButton, false); - this.AssignButton.Location = new System.Drawing.Point(379, 19); - this.AssignButton.Name = "AssignButton"; - this.AssignButton.Size = new System.Drawing.Size(75, 23); - this.AssignButton.TabIndex = 11; - this.AssignButton.Text = "Assign"; - this.AssignButton.UseVisualStyleBackColor = true; - this.AssignButton.Click += new System.EventHandler(this.AssignButton_Click); - // - // ResourcesDataGridView - // - this.ResourcesDataGridView.AllowUserToAddRows = false; - this.ResourcesDataGridView.AllowUserToDeleteRows = false; - this.ResourcesDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.ResourcesDataGridView, false); - this.ResourcesDataGridView.AutoGenerateColumns = false; - this.ResourcesDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; - this.ResourcesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.ResourceId, - this.FullName, - this.Role, - this.assignedDataGridViewTextBoxColumn}); - this.ResourcesDataGridView.DataSource = this.resourcesBindingSource; - this.ResourcesDataGridView.Location = new System.Drawing.Point(6, 19); - this.ResourcesDataGridView.MultiSelect = false; - this.ResourcesDataGridView.Name = "ResourcesDataGridView"; - this.ResourcesDataGridView.RowHeadersVisible = false; - this.ResourcesDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ResourcesDataGridView.Size = new System.Drawing.Size(367, 185); - this.ResourcesDataGridView.TabIndex = 10; - this.ResourcesDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ResourcesDataGridView_CellContentClick); - // - // ResourceId - // - this.ResourceId.DataPropertyName = "ResourceId"; - this.ResourceId.HeaderText = "ResourceId"; - this.ResourceId.Name = "ResourceId"; - this.ResourceId.ReadOnly = true; - this.ResourceId.Visible = false; - this.ResourceId.Width = 87; - // - // FullName - // - this.FullName.DataPropertyName = "FullName"; - this.FullName.HeaderText = "FullName"; - this.FullName.Name = "FullName"; - this.FullName.ReadOnly = true; - this.FullName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.FullName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.FullName.Width = 76; - // - // Role - // - this.Role.DataPropertyName = "Role"; - this.Role.DataSource = this.roleListBindingSource; - this.Role.DisplayMember = "Value"; - this.Role.HeaderText = "Role"; - this.Role.Name = "Role"; - this.Role.ValueMember = "Key"; - this.Role.Width = 35; - // - // roleListBindingSource - // - this.roleListBindingSource.DataSource = typeof(ProjectTracker.Library.RoleList); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.roleListBindingSource, false); - // - // assignedDataGridViewTextBoxColumn - // - this.assignedDataGridViewTextBoxColumn.DataPropertyName = "Assigned"; - this.assignedDataGridViewTextBoxColumn.HeaderText = "Assigned"; - this.assignedDataGridViewTextBoxColumn.Name = "assignedDataGridViewTextBoxColumn"; - this.assignedDataGridViewTextBoxColumn.ReadOnly = true; - this.assignedDataGridViewTextBoxColumn.Width = 75; - // - // resourcesBindingSource - // - this.resourcesBindingSource.DataMember = "Resources"; - this.resourcesBindingSource.DataSource = this.projectBindingSource; - this.BindingSourceRefresh1.SetReadValuesOnChange(this.resourcesBindingSource, false); - // - // projectBindingSource - // - this.projectBindingSource.DataSource = typeof(ProjectTracker.Library.Project); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.projectBindingSource, true); - // - // DescriptionTextBox - // - this.DescriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.DescriptionTextBox, true); - this.DescriptionTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Description", true)); - this.DescriptionTextBox.Location = new System.Drawing.Point(81, 117); - this.DescriptionTextBox.Multiline = true; - this.DescriptionTextBox.Name = "DescriptionTextBox"; - this.DescriptionTextBox.Size = new System.Drawing.Size(460, 108); - this.DescriptionTextBox.TabIndex = 32; - // - // EndedTextBox - // - this.EndedTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.EndedTextBox, true); - this.EndedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Ended", true)); - this.EndedTextBox.Location = new System.Drawing.Point(81, 91); - this.EndedTextBox.Name = "EndedTextBox"; - this.EndedTextBox.Size = new System.Drawing.Size(460, 20); - this.EndedTextBox.TabIndex = 34; - // - // IdLabel1 - // - this.IdLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.IdLabel1, false); - this.IdLabel1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Id", true)); - this.IdLabel1.Location = new System.Drawing.Point(81, 13); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(460, 23); - this.IdLabel1.TabIndex = 36; - // - // NameTextBox - // - this.NameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.NameTextBox, true); - this.NameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Name", true)); - this.NameTextBox.Location = new System.Drawing.Point(81, 39); - this.NameTextBox.Name = "NameTextBox"; - this.NameTextBox.Size = new System.Drawing.Size(460, 20); - this.NameTextBox.TabIndex = 38; - // - // StartedTextBox - // - this.StartedTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.StartedTextBox, true); - this.StartedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Started", true)); - this.StartedTextBox.Location = new System.Drawing.Point(81, 65); - this.StartedTextBox.Name = "StartedTextBox"; - this.StartedTextBox.Size = new System.Drawing.Size(460, 20); - this.StartedTextBox.TabIndex = 40; - // - // ErrorProvider1 - // - this.ErrorProvider1.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; - this.ErrorProvider1.ContainerControl = this; - this.ErrorProvider1.DataSource = this.projectBindingSource; - // - // ProjectEdit - // - this.ReadWriteAuthorization1.SetApplyAuthorization(this, false); - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.CloseButton); - this.Controls.Add(this.ApplyButton); - this.Controls.Add(this.Cancel_Button); - this.Controls.Add(this.OKButton); - this.Controls.Add(this.GroupBox1); - this.Controls.Add(DescriptionLabel); - this.Controls.Add(this.DescriptionTextBox); - this.Controls.Add(EndedLabel); - this.Controls.Add(IdLabel); - this.Controls.Add(NameLabel); - this.Controls.Add(StartedLabel); - this.Controls.Add(this.EndedTextBox); - this.Controls.Add(this.IdLabel1); - this.Controls.Add(this.NameTextBox); - this.Controls.Add(this.StartedTextBox); - this.Name = "ProjectEdit"; - this.Size = new System.Drawing.Size(665, 454); - this.CurrentPrincipalChanged += new System.EventHandler(this.ProjectEdit_CurrentPrincipalChanged); - this.GroupBox1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.ResourcesDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleListBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.resourcesBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.projectBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button CloseButton; - internal System.Windows.Forms.Button ApplyButton; - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.Button OKButton; - internal System.Windows.Forms.GroupBox GroupBox1; - internal System.Windows.Forms.Button UnassignButton; - internal System.Windows.Forms.Button AssignButton; - internal System.Windows.Forms.DataGridView ResourcesDataGridView; - internal System.Windows.Forms.TextBox DescriptionTextBox; - internal System.Windows.Forms.TextBox EndedTextBox; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.TextBox NameTextBox; - internal System.Windows.Forms.TextBox StartedTextBox; - internal Csla.Windows.ReadWriteAuthorization ReadWriteAuthorization1; - internal System.Windows.Forms.ErrorProvider ErrorProvider1; - internal System.Windows.Forms.BindingSource projectBindingSource; - internal Csla.Windows.BindingSourceRefresh BindingSourceRefresh1; - internal System.Windows.Forms.BindingSource resourcesBindingSource; - internal System.Windows.Forms.BindingSource roleListBindingSource; - private System.Windows.Forms.DataGridViewTextBoxColumn ResourceId; - private System.Windows.Forms.DataGridViewLinkColumn FullName; - private System.Windows.Forms.DataGridViewComboBoxColumn Role; - private System.Windows.Forms.DataGridViewTextBoxColumn assignedDataGridViewTextBoxColumn; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.cs deleted file mode 100644 index 98f9f69b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.cs +++ /dev/null @@ -1,187 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ProjectEdit : WinPart - { - - private Project _project; - - public Project Project - { - get { return _project; } - } - - #region WinPart Code - - public override string ToString() - { - return _project.Name; - } - - protected internal override object GetIdValue() - { - return _project; - } - - private void ProjectEdit_CurrentPrincipalChanged( - object sender, EventArgs e) - { - ApplyAuthorizationRules(); - } - - #endregion - - private void ApplyAuthorizationRules() - { - // have the controls enable/disable/etc - this.ReadWriteAuthorization1.ResetControlAuthorization(); - - bool canEdit = - ProjectTracker.Library.Project.CanEditObject(); - - // enable/disable appropriate buttons - this.OKButton.Enabled = canEdit; - this.ApplyButton.Enabled = canEdit; - this.Cancel_Button.Enabled = canEdit; - this.AssignButton.Enabled = canEdit; - this.UnassignButton.Enabled = canEdit; - - // enable/disable role column in grid - this.ResourcesDataGridView.Columns[2].ReadOnly = - !canEdit; - } - - private void SaveProject(bool rebind) - { - using (StatusBusy busy = new StatusBusy("Saving...")) - { - this.projectBindingSource.RaiseListChangedEvents = false; - this.resourcesBindingSource.RaiseListChangedEvents = false; - // do the save - this.projectBindingSource.EndEdit(); - this.resourcesBindingSource.EndEdit(); - try - { - Project temp = _project.Clone(); - _project = temp.Save(); - if (rebind) - { - // rebind the UI - this.projectBindingSource.DataSource = null; - this.resourcesBindingSource.DataSource = this.projectBindingSource; - this.projectBindingSource.DataSource = _project; - ApplyAuthorizationRules(); - } - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - finally - { - this.projectBindingSource.RaiseListChangedEvents = true; - this.resourcesBindingSource.RaiseListChangedEvents = true; - this.projectBindingSource.ResetBindings(false); - this.resourcesBindingSource.ResetBindings(false); - } - } - } - - public ProjectEdit(Project project) - { - InitializeComponent(); - - _project = project; - - this.roleListBindingSource.DataSource = RoleList.GetList(); - this.projectBindingSource.DataSource = _project; - - ApplyAuthorizationRules(); - } - - private void OKButton_Click(object sender, EventArgs e) - { - SaveProject(false); - this.Close(); - } - - private void ApplyButton_Click(object sender, EventArgs e) - { - SaveProject(true); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.projectBindingSource.CancelEdit(); - this.resourcesBindingSource.CancelEdit(); - } - - private void CloseButton_Click(object sender, EventArgs e) - { - this.projectBindingSource.CancelEdit(); - this.resourcesBindingSource.CancelEdit(); - this.Close(); - } - - private void AssignButton_Click(object sender, EventArgs e) - { - ResourceSelect dlg = new ResourceSelect(); - if (dlg.ShowDialog() == DialogResult.OK) - try - { - _project.Resources.Assign(dlg.ResourceId); - } - catch (InvalidOperationException ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - - private void UnassignButton_Click(object sender, EventArgs e) - { - if (this.ResourcesDataGridView.SelectedRows.Count > 0) - { - int resourceId = int.Parse( - this.ResourcesDataGridView.SelectedRows[0]. - Cells[0].Value.ToString()); - _project.Resources.Remove(resourceId); - } - } - - private void ResourcesDataGridView_CellContentClick( - object sender, DataGridViewCellEventArgs e) - { - if (e.ColumnIndex == 1 && e.RowIndex > -1) - { - int resourceId = int.Parse( - this.ResourcesDataGridView.Rows[ - e.RowIndex].Cells[0].Value.ToString()); - MainForm.Instance.ShowEditResource(resourceId); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.resx deleted file mode 100644 index 6fd2e9b9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - False - - - 297, 17 - - - False - - - False - - - False - - - False - - - True - - - True - - - True - - - 472, 17 - - - True - - - True - - - True - - - 645, 17 - - - 645, 17 - - - 806, 17 - - - 472, 17 - - - 140, 17 - - - 140, 17 - - - 297, 17 - - - 17, 17 - - - 806, 17 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.Designer.cs deleted file mode 100644 index d0ad6829..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.Designer.cs +++ /dev/null @@ -1,164 +0,0 @@ -namespace PTWin -{ - partial class ProjectSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.GetListButton = new System.Windows.Forms.Button(); - this.NameTextBox = new System.Windows.Forms.TextBox(); - this.NameLabel = new System.Windows.Forms.Label(); - this.ProjectListListBox = new System.Windows.Forms.ListBox(); - this.projectListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.OK_Button = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.projectListBindingSource)).BeginInit(); - this.TableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // GetListButton - // - this.GetListButton.Location = new System.Drawing.Point(356, 9); - this.GetListButton.Name = "GetListButton"; - this.GetListButton.Size = new System.Drawing.Size(75, 23); - this.GetListButton.TabIndex = 10; - this.GetListButton.Text = "Get list"; - this.GetListButton.UseVisualStyleBackColor = true; - this.GetListButton.Click += new System.EventHandler(this.GetListButton_Click); - // - // NameTextBox - // - this.NameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.NameTextBox.Location = new System.Drawing.Point(83, 9); - this.NameTextBox.Name = "NameTextBox"; - this.NameTextBox.Size = new System.Drawing.Size(267, 20); - this.NameTextBox.TabIndex = 9; - // - // NameLabel - // - this.NameLabel.AutoSize = true; - this.NameLabel.Location = new System.Drawing.Point(12, 12); - this.NameLabel.Name = "NameLabel"; - this.NameLabel.Size = new System.Drawing.Size(38, 13); - this.NameLabel.TabIndex = 8; - this.NameLabel.Text = "Name:"; - // - // ProjectListListBox - // - this.ProjectListListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ProjectListListBox.DataSource = this.projectListBindingSource; - this.ProjectListListBox.DisplayMember = "Name"; - this.ProjectListListBox.Location = new System.Drawing.Point(12, 41); - this.ProjectListListBox.Name = "ProjectListListBox"; - this.ProjectListListBox.Size = new System.Drawing.Size(419, 238); - this.ProjectListListBox.TabIndex = 7; - this.ProjectListListBox.ValueMember = "Id"; - // - // projectListBindingSource - // - this.projectListBindingSource.DataSource = typeof(ProjectTracker.Library.ProjectInfo); - // - // TableLayoutPanel1 - // - this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.TableLayoutPanel1.ColumnCount = 2; - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Controls.Add(this.OK_Button, 0, 0); - this.TableLayoutPanel1.Controls.Add(this.Cancel_Button, 1, 0); - this.TableLayoutPanel1.Location = new System.Drawing.Point(285, 285); - this.TableLayoutPanel1.Name = "TableLayoutPanel1"; - this.TableLayoutPanel1.RowCount = 1; - this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Size = new System.Drawing.Size(146, 29); - this.TableLayoutPanel1.TabIndex = 6; - // - // OK_Button - // - this.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.OK_Button.DialogResult = System.Windows.Forms.DialogResult.OK; - this.OK_Button.Location = new System.Drawing.Point(3, 3); - this.OK_Button.Name = "OK_Button"; - this.OK_Button.Size = new System.Drawing.Size(67, 23); - this.OK_Button.TabIndex = 0; - this.OK_Button.Text = "OK"; - this.OK_Button.Click += new System.EventHandler(this.OK_Button_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(76, 3); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(67, 23); - this.Cancel_Button.TabIndex = 1; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // ProjectSelect - // - this.AcceptButton = this.OK_Button; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.Cancel_Button; - this.ClientSize = new System.Drawing.Size(443, 323); - this.Controls.Add(this.GetListButton); - this.Controls.Add(this.NameTextBox); - this.Controls.Add(this.NameLabel); - this.Controls.Add(this.ProjectListListBox); - this.Controls.Add(this.TableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ProjectSelect"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Select Project"; - this.Load += new System.EventHandler(this.ProjectSelect_Load); - ((System.ComponentModel.ISupportInitialize)(this.projectListBindingSource)).EndInit(); - this.TableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button GetListButton; - internal System.Windows.Forms.TextBox NameTextBox; - internal System.Windows.Forms.Label NameLabel; - internal System.Windows.Forms.ListBox ProjectListListBox; - internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1; - internal System.Windows.Forms.Button OK_Button; - internal System.Windows.Forms.Button Cancel_Button; - private System.Windows.Forms.BindingSource projectListBindingSource; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.cs deleted file mode 100644 index 648c8821..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ProjectSelect : Form - { - - private Guid _projectId; - - public Guid ProjectId - { - get { return _projectId; } - } - - - - public ProjectSelect() - { - InitializeComponent(); - } - - private void OK_Button_Click(object sender, EventArgs e) - { - _projectId = (Guid)this.ProjectListListBox.SelectedValue; - this.Close(); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void ProjectSelect_Load(object sender, EventArgs e) - { - DisplayList(ProjectList.GetProjectList()); - } - - private void DisplayList(ProjectList list) - { - Csla.SortedBindingList sortedList = - new Csla.SortedBindingList(list); - sortedList.ApplySort("Name", ListSortDirection.Ascending); - this.projectListBindingSource.DataSource = sortedList; - } - - private void GetListButton_Click( - object sender, EventArgs e) - { - DisplayList(ProjectList.GetProjectList(NameTextBox.Text)); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.resx deleted file mode 100644 index d82137bd..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/AssemblyInfo.cs deleted file mode 100644 index 0affdd49..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PTWin")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Rockford Lhotka")] -[assembly: AssemblyProduct("ProjectTracker")] -[assembly: AssemblyCopyright("Copyright © Rockford Lhotka 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("e8881d52-b4d0-431b-894b-7919c175f24c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Admin.Roles.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Admin.Roles.datasource deleted file mode 100644 index e1b701e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Admin.Roles.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.Admin.Roles, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Project.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Project.datasource deleted file mode 100644 index b31a08e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Project.datasource +++ /dev/null @@ -1,21 +0,0 @@ - - - - ProjectTracker.Library.Project, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ProjectList.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ProjectList.datasource deleted file mode 100644 index fbc96d41..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ProjectList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.ProjectList, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Resource.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Resource.datasource deleted file mode 100644 index bf9ff331..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Resource.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.Resource, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ResourceList.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ResourceList.datasource deleted file mode 100644 index 1d881703..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ResourceList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.ResourceList, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.RoleList.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.RoleList.datasource deleted file mode 100644 index d1b811f9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.RoleList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.RoleList, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.Designer.cs deleted file mode 100644 index 55db546e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTWin.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PTWin.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.Designer.cs deleted file mode 100644 index 43f85cce..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTWin.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.settings b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.Designer.cs deleted file mode 100644 index 5ee72aff..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.Designer.cs +++ /dev/null @@ -1,358 +0,0 @@ -namespace PTWin -{ - partial class ResourceEdit - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label FirstNameLabel; - System.Windows.Forms.Label IdLabel; - System.Windows.Forms.Label LastNameLabel; - this.CloseButton = new System.Windows.Forms.Button(); - this.ApplyButton = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - this.OKButton = new System.Windows.Forms.Button(); - this.GroupBox1 = new System.Windows.Forms.GroupBox(); - this.AssignmentsDataGridView = new System.Windows.Forms.DataGridView(); - this.RoleListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.AssignmentsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ResourceBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.UnassignButton = new System.Windows.Forms.Button(); - this.AssignButton = new System.Windows.Forms.Button(); - this.FirstNameTextBox = new System.Windows.Forms.TextBox(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.LastNameTextBox = new System.Windows.Forms.TextBox(); - this.ErrorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); - this.BindingSourceRefresh1 = new Csla.Windows.BindingSourceRefresh(this.components); - this.ReadWriteAuthorization1 = new Csla.Windows.ReadWriteAuthorization(this.components); - this.projectIdDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.projectNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewLinkColumn(); - this.assignedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Role = new System.Windows.Forms.DataGridViewComboBoxColumn(); - FirstNameLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - LastNameLabel = new System.Windows.Forms.Label(); - this.GroupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleListBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).BeginInit(); - this.SuspendLayout(); - // - // FirstNameLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(FirstNameLabel, false); - FirstNameLabel.AutoSize = true; - FirstNameLabel.Location = new System.Drawing.Point(13, 42); - FirstNameLabel.Name = "FirstNameLabel"; - FirstNameLabel.Size = new System.Drawing.Size(60, 13); - FirstNameLabel.TabIndex = 35; - FirstNameLabel.Text = "First Name:"; - // - // IdLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(IdLabel, false); - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(13, 13); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 37; - IdLabel.Text = "Id:"; - // - // LastNameLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(LastNameLabel, false); - LastNameLabel.AutoSize = true; - LastNameLabel.Location = new System.Drawing.Point(13, 68); - LastNameLabel.Name = "LastNameLabel"; - LastNameLabel.Size = new System.Drawing.Size(61, 13); - LastNameLabel.TabIndex = 39; - LastNameLabel.Text = "Last Name:"; - // - // CloseButton - // - this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.CloseButton, false); - this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CloseButton.Location = new System.Drawing.Point(501, 100); - this.CloseButton.Name = "CloseButton"; - this.CloseButton.Size = new System.Drawing.Size(75, 23); - this.CloseButton.TabIndex = 45; - this.CloseButton.Text = "Close"; - this.CloseButton.UseVisualStyleBackColor = true; - this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click); - // - // ApplyButton - // - this.ApplyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.ApplyButton, false); - this.ApplyButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.ApplyButton.Location = new System.Drawing.Point(501, 42); - this.ApplyButton.Name = "ApplyButton"; - this.ApplyButton.Size = new System.Drawing.Size(75, 23); - this.ApplyButton.TabIndex = 44; - this.ApplyButton.Text = "Apply"; - this.ApplyButton.UseVisualStyleBackColor = true; - this.ApplyButton.Click += new System.EventHandler(this.ApplyButton_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.Cancel_Button, false); - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(501, 71); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(75, 23); - this.Cancel_Button.TabIndex = 43; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.UseVisualStyleBackColor = true; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // OKButton - // - this.OKButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.OKButton, false); - this.OKButton.Location = new System.Drawing.Point(501, 13); - this.OKButton.Name = "OKButton"; - this.OKButton.Size = new System.Drawing.Size(75, 23); - this.OKButton.TabIndex = 42; - this.OKButton.Text = "OK"; - this.OKButton.UseVisualStyleBackColor = true; - this.OKButton.Click += new System.EventHandler(this.OKButton_Click); - // - // GroupBox1 - // - this.GroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.GroupBox1, false); - this.GroupBox1.Controls.Add(this.AssignmentsDataGridView); - this.GroupBox1.Controls.Add(this.UnassignButton); - this.GroupBox1.Controls.Add(this.AssignButton); - this.GroupBox1.Location = new System.Drawing.Point(16, 91); - this.GroupBox1.Name = "GroupBox1"; - this.GroupBox1.Size = new System.Drawing.Size(449, 310); - this.GroupBox1.TabIndex = 41; - this.GroupBox1.TabStop = false; - this.GroupBox1.Text = "Assigned projects"; - // - // AssignmentsDataGridView - // - this.AssignmentsDataGridView.AllowUserToAddRows = false; - this.AssignmentsDataGridView.AllowUserToDeleteRows = false; - this.AssignmentsDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.AssignmentsDataGridView, false); - this.AssignmentsDataGridView.AutoGenerateColumns = false; - this.AssignmentsDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; - this.AssignmentsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.projectIdDataGridViewTextBoxColumn, - this.projectNameDataGridViewTextBoxColumn, - this.assignedDataGridViewTextBoxColumn, - this.Role}); - this.AssignmentsDataGridView.DataSource = this.AssignmentsBindingSource; - this.AssignmentsDataGridView.Location = new System.Drawing.Point(6, 19); - this.AssignmentsDataGridView.MultiSelect = false; - this.AssignmentsDataGridView.Name = "AssignmentsDataGridView"; - this.AssignmentsDataGridView.RowHeadersVisible = false; - this.AssignmentsDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.AssignmentsDataGridView.Size = new System.Drawing.Size(356, 285); - this.AssignmentsDataGridView.TabIndex = 15; - this.AssignmentsDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.AssignmentsDataGridView_CellContentClick); - // - // RoleListBindingSource - // - this.RoleListBindingSource.DataSource = typeof(ProjectTracker.Library.RoleList); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.RoleListBindingSource, false); - // - // AssignmentsBindingSource - // - this.AssignmentsBindingSource.DataMember = "Assignments"; - this.AssignmentsBindingSource.DataSource = this.ResourceBindingSource; - this.BindingSourceRefresh1.SetReadValuesOnChange(this.AssignmentsBindingSource, false); - // - // ResourceBindingSource - // - this.ResourceBindingSource.DataSource = typeof(ProjectTracker.Library.Resource); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.ResourceBindingSource, true); - // - // UnassignButton - // - this.UnassignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.UnassignButton, false); - this.UnassignButton.Location = new System.Drawing.Point(368, 48); - this.UnassignButton.Name = "UnassignButton"; - this.UnassignButton.Size = new System.Drawing.Size(75, 23); - this.UnassignButton.TabIndex = 14; - this.UnassignButton.Text = "Unassign"; - this.UnassignButton.UseVisualStyleBackColor = true; - this.UnassignButton.Click += new System.EventHandler(this.UnassignButton_Click); - // - // AssignButton - // - this.AssignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.AssignButton, false); - this.AssignButton.Location = new System.Drawing.Point(368, 19); - this.AssignButton.Name = "AssignButton"; - this.AssignButton.Size = new System.Drawing.Size(75, 23); - this.AssignButton.TabIndex = 13; - this.AssignButton.Text = "Assign"; - this.AssignButton.UseVisualStyleBackColor = true; - this.AssignButton.Click += new System.EventHandler(this.AssignButton_Click); - // - // FirstNameTextBox - // - this.FirstNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.FirstNameTextBox, true); - this.FirstNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceBindingSource, "FirstName", true)); - this.FirstNameTextBox.Location = new System.Drawing.Point(80, 39); - this.FirstNameTextBox.Name = "FirstNameTextBox"; - this.FirstNameTextBox.Size = new System.Drawing.Size(385, 20); - this.FirstNameTextBox.TabIndex = 36; - // - // IdLabel1 - // - this.IdLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.IdLabel1, true); - this.IdLabel1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceBindingSource, "Id", true)); - this.IdLabel1.Location = new System.Drawing.Point(80, 13); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(385, 23); - this.IdLabel1.TabIndex = 38; - // - // LastNameTextBox - // - this.LastNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.LastNameTextBox, true); - this.LastNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceBindingSource, "LastName", true)); - this.LastNameTextBox.Location = new System.Drawing.Point(80, 65); - this.LastNameTextBox.Name = "LastNameTextBox"; - this.LastNameTextBox.Size = new System.Drawing.Size(385, 20); - this.LastNameTextBox.TabIndex = 40; - // - // ErrorProvider1 - // - this.ErrorProvider1.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; - this.ErrorProvider1.ContainerControl = this; - this.ErrorProvider1.DataSource = this.ResourceBindingSource; - // - // projectIdDataGridViewTextBoxColumn - // - this.projectIdDataGridViewTextBoxColumn.DataPropertyName = "ProjectId"; - this.projectIdDataGridViewTextBoxColumn.HeaderText = "ProjectId"; - this.projectIdDataGridViewTextBoxColumn.Name = "projectIdDataGridViewTextBoxColumn"; - this.projectIdDataGridViewTextBoxColumn.ReadOnly = true; - this.projectIdDataGridViewTextBoxColumn.Visible = false; - this.projectIdDataGridViewTextBoxColumn.Width = 74; - // - // projectNameDataGridViewTextBoxColumn - // - this.projectNameDataGridViewTextBoxColumn.DataPropertyName = "ProjectName"; - this.projectNameDataGridViewTextBoxColumn.HeaderText = "Project Name"; - this.projectNameDataGridViewTextBoxColumn.Name = "projectNameDataGridViewTextBoxColumn"; - this.projectNameDataGridViewTextBoxColumn.ReadOnly = true; - this.projectNameDataGridViewTextBoxColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.projectNameDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.projectNameDataGridViewTextBoxColumn.Width = 96; - // - // assignedDataGridViewTextBoxColumn - // - this.assignedDataGridViewTextBoxColumn.DataPropertyName = "Assigned"; - this.assignedDataGridViewTextBoxColumn.HeaderText = "Assigned"; - this.assignedDataGridViewTextBoxColumn.Name = "assignedDataGridViewTextBoxColumn"; - this.assignedDataGridViewTextBoxColumn.ReadOnly = true; - this.assignedDataGridViewTextBoxColumn.Width = 75; - // - // Role - // - this.Role.DataPropertyName = "Role"; - this.Role.DataSource = this.RoleListBindingSource; - this.Role.DisplayMember = "Value"; - this.Role.HeaderText = "Role"; - this.Role.Name = "Role"; - this.Role.ValueMember = "Key"; - this.Role.Width = 35; - // - // ResourceEdit - // - this.ReadWriteAuthorization1.SetApplyAuthorization(this, false); - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.CloseButton); - this.Controls.Add(this.ApplyButton); - this.Controls.Add(this.Cancel_Button); - this.Controls.Add(this.OKButton); - this.Controls.Add(this.GroupBox1); - this.Controls.Add(FirstNameLabel); - this.Controls.Add(this.FirstNameTextBox); - this.Controls.Add(IdLabel); - this.Controls.Add(this.IdLabel1); - this.Controls.Add(LastNameLabel); - this.Controls.Add(this.LastNameTextBox); - this.Name = "ResourceEdit"; - this.Size = new System.Drawing.Size(588, 415); - this.GroupBox1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleListBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button CloseButton; - internal System.Windows.Forms.Button ApplyButton; - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.Button OKButton; - internal System.Windows.Forms.GroupBox GroupBox1; - internal System.Windows.Forms.Button UnassignButton; - internal System.Windows.Forms.Button AssignButton; - internal System.Windows.Forms.TextBox FirstNameTextBox; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.TextBox LastNameTextBox; - internal Csla.Windows.ReadWriteAuthorization ReadWriteAuthorization1; - internal System.Windows.Forms.DataGridView AssignmentsDataGridView; - internal System.Windows.Forms.BindingSource RoleListBindingSource; - internal Csla.Windows.BindingSourceRefresh BindingSourceRefresh1; - internal System.Windows.Forms.BindingSource AssignmentsBindingSource; - internal System.Windows.Forms.BindingSource ResourceBindingSource; - internal System.Windows.Forms.ErrorProvider ErrorProvider1; - private System.Windows.Forms.DataGridViewTextBoxColumn projectIdDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewLinkColumn projectNameDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn assignedDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewComboBoxColumn Role; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.cs deleted file mode 100644 index 36a2014f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.cs +++ /dev/null @@ -1,190 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ResourceEdit : WinPart - { - - private Resource _resource; - - public Resource Resource - { - get { return _resource; } - } - - public ResourceEdit(Resource resource) - { - InitializeComponent(); - - _resource = resource; - - this.CurrentPrincipalChanged += new EventHandler(ResourceEdit_CurrentPrincipalChanged); - _resource.PropertyChanged += new PropertyChangedEventHandler(mResource_PropertyChanged); - - this.RoleListBindingSource.DataSource = RoleList.GetList(); - this.ResourceBindingSource.DataSource = _resource; - - ApplyAuthorizationRules(); - } - - #region WinPart Code - - protected internal override object GetIdValue() - { - return _resource; - } - - public override string ToString() - { - return _resource.FullName; - } - - private void ResourceEdit_CurrentPrincipalChanged(object sender, EventArgs e) - { - ApplyAuthorizationRules(); - } - - #endregion - - private void ApplyAuthorizationRules() - { - // have the controls enable/disable/etc - this.ReadWriteAuthorization1.ResetControlAuthorization(); - - bool canEdit = ProjectTracker.Library.Project.CanEditObject(); - - // enable/disable appropriate buttons - this.OKButton.Enabled = canEdit; - this.ApplyButton.Enabled = canEdit; - this.Cancel_Button.Enabled = canEdit; - - // enable/disable role column in grid - this.AssignmentsDataGridView.Columns[3].ReadOnly = !canEdit; - } - - private void SaveResource(bool rebind) - { - using (StatusBusy busy = new StatusBusy("Saving...")) - { - // stop the flow of events - this.ResourceBindingSource.RaiseListChangedEvents = false; - this.AssignmentsBindingSource.RaiseListChangedEvents = false; - // do the save - this.ResourceBindingSource.EndEdit(); - this.AssignmentsBindingSource.EndEdit(); - try - { - Resource temp = Resource.Clone(); - _resource = temp.Save(); - if (rebind) - { - // rebind the UI - this.ResourceBindingSource.DataSource = null; - this.AssignmentsBindingSource.DataSource = this.ResourceBindingSource; - this.ResourceBindingSource.DataSource = _resource; - ApplyAuthorizationRules(); - } - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - finally - { - this.ResourceBindingSource.RaiseListChangedEvents = true; - this.AssignmentsBindingSource.RaiseListChangedEvents = true; - this.ResourceBindingSource.ResetBindings(false); - this.AssignmentsBindingSource.ResetBindings(false); - } - } - } - - private void OKButton_Click(object sender, EventArgs e) - { - SaveResource(false); - this.Close(); - } - - private void ApplyButton_Click(object sender, EventArgs e) - { - SaveResource(true); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.ResourceBindingSource.CancelEdit(); - this.AssignmentsBindingSource.CancelEdit(); - } - - private void CloseButton_Click(object sender, EventArgs e) - { - this.ResourceBindingSource.CancelEdit(); - this.AssignmentsBindingSource.CancelEdit(); - this.Close(); - } - - private void AssignButton_Click(object sender, EventArgs e) - { - ProjectSelect dlg = new ProjectSelect(); - if (dlg.ShowDialog() == DialogResult.OK) - try - { - _resource.Assignments.AssignTo(dlg.ProjectId); - } - catch (InvalidOperationException ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - - private void UnassignButton_Click(object sender, EventArgs e) - { - if (this.AssignmentsDataGridView.SelectedRows.Count > 0) - { - Guid projectId = (Guid)this.AssignmentsDataGridView.SelectedRows[0].Cells[0].Value; - _resource.Assignments.Remove(projectId); - } - } - - private void mResource_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - if (e.PropertyName == "IsDirty") - { - this.ResourceBindingSource.ResetBindings(true); - this.AssignmentsBindingSource.ResetBindings(true); - } - } - - private void AssignmentsDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - if (e.ColumnIndex == 1 && e.RowIndex > -1) - { - Guid projectId = (Guid)this.AssignmentsDataGridView.Rows[e.RowIndex].Cells[0].Value; - MainForm.Instance.ShowEditProject(projectId); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.resx deleted file mode 100644 index a47eb52e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - False - - - 21, 38 - - - False - - - False - - - 21, 38 - - - True - - - 15, 9 - - - 652, 9 - - - 344, 9 - - - 176, 9 - - - 176, 9 - - - 529, 9 - - - 652, 9 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.Designer.cs deleted file mode 100644 index 442fede5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.Designer.cs +++ /dev/null @@ -1,121 +0,0 @@ -namespace PTWin -{ - partial class ResourceSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.ResourceListListBox = new System.Windows.Forms.ListBox(); - this.ResourceListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.OK_Button = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceListBindingSource)).BeginInit(); - this.TableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // ResourceListListBox - // - this.ResourceListListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ResourceListListBox.DataSource = this.ResourceListBindingSource; - this.ResourceListListBox.Location = new System.Drawing.Point(12, 12); - this.ResourceListListBox.Name = "ResourceListListBox"; - this.ResourceListListBox.Size = new System.Drawing.Size(416, 264); - this.ResourceListListBox.TabIndex = 4; - // - // ResourceListBindingSource - // - this.ResourceListBindingSource.DataSource = typeof(ProjectTracker.Library.ResourceList); - // - // TableLayoutPanel1 - // - this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.TableLayoutPanel1.ColumnCount = 2; - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Controls.Add(this.OK_Button, 0, 0); - this.TableLayoutPanel1.Controls.Add(this.Cancel_Button, 1, 0); - this.TableLayoutPanel1.Location = new System.Drawing.Point(285, 282); - this.TableLayoutPanel1.Name = "TableLayoutPanel1"; - this.TableLayoutPanel1.RowCount = 1; - this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Size = new System.Drawing.Size(146, 29); - this.TableLayoutPanel1.TabIndex = 3; - // - // OK_Button - // - this.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.OK_Button.DialogResult = System.Windows.Forms.DialogResult.OK; - this.OK_Button.Location = new System.Drawing.Point(3, 3); - this.OK_Button.Name = "OK_Button"; - this.OK_Button.Size = new System.Drawing.Size(67, 23); - this.OK_Button.TabIndex = 0; - this.OK_Button.Text = "OK"; - this.OK_Button.Click += new System.EventHandler(this.OK_Button_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(76, 3); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(67, 23); - this.Cancel_Button.TabIndex = 1; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // ResourceSelect - // - this.ClientSize = new System.Drawing.Size(443, 323); - this.Controls.Add(this.ResourceListListBox); - this.Controls.Add(this.TableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ResourceSelect"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "ResourceSelect"; - this.Load += new System.EventHandler(this.ResourceSelect_Load); - ((System.ComponentModel.ISupportInitialize)(this.ResourceListBindingSource)).EndInit(); - this.TableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - internal System.Windows.Forms.ListBox ResourceListListBox; - internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1; - internal System.Windows.Forms.Button OK_Button; - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.BindingSource ResourceListBindingSource; - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.cs deleted file mode 100644 index ee236b01..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ResourceSelect : Form - { - private int _resourceId; - public int ResourceId - { - get { return _resourceId; } - } - - public ResourceSelect() - { - InitializeComponent(); - } - - private void OK_Button_Click(object sender, EventArgs e) - { - _resourceId = - ((ResourceInfo) - this.ResourceListListBox.SelectedValue).Id; - this.Close(); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void ResourceSelect_Load(object sender, EventArgs e) - { - this.ResourceListBindingSource.DataSource = - ResourceList.GetResourceList(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.resx deleted file mode 100644 index 956c5f2b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.Designer.cs deleted file mode 100644 index acfef455..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.Designer.cs +++ /dev/null @@ -1,122 +0,0 @@ -namespace PTWin -{ - partial class RolesEdit - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.CancelButton = new System.Windows.Forms.Button(); - this.SaveButton = new System.Windows.Forms.Button(); - this.rolesBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.RolesDataGridView = new System.Windows.Forms.DataGridView(); - this.DataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - ((System.ComponentModel.ISupportInitialize)(this.rolesBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.RolesDataGridView)).BeginInit(); - this.SuspendLayout(); - // - // CancelButton - // - this.CancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.CancelButton.Location = new System.Drawing.Point(453, 42); - this.CancelButton.Name = "CancelButton"; - this.CancelButton.Size = new System.Drawing.Size(75, 23); - this.CancelButton.TabIndex = 6; - this.CancelButton.Text = "Cancel"; - this.CancelButton.UseVisualStyleBackColor = true; - this.CancelButton.Click += new System.EventHandler(this.CancelButton_Click); - // - // SaveButton - // - this.SaveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.SaveButton.Location = new System.Drawing.Point(453, 13); - this.SaveButton.Name = "SaveButton"; - this.SaveButton.Size = new System.Drawing.Size(75, 23); - this.SaveButton.TabIndex = 5; - this.SaveButton.Text = "Save"; - this.SaveButton.UseVisualStyleBackColor = true; - this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click); - // - // rolesBindingSource - // - this.rolesBindingSource.DataSource = typeof(ProjectTracker.Library.Admin.Roles); - // - // RolesDataGridView - // - this.RolesDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RolesDataGridView.AutoGenerateColumns = false; - this.RolesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn1, - this.DataGridViewTextBoxColumn2}); - this.RolesDataGridView.DataSource = this.rolesBindingSource; - this.RolesDataGridView.Location = new System.Drawing.Point(12, 13); - this.RolesDataGridView.MultiSelect = false; - this.RolesDataGridView.Name = "RolesDataGridView"; - this.RolesDataGridView.Size = new System.Drawing.Size(435, 323); - this.RolesDataGridView.TabIndex = 7; - // - // DataGridViewTextBoxColumn1 - // - this.DataGridViewTextBoxColumn1.DataPropertyName = "Id"; - this.DataGridViewTextBoxColumn1.HeaderText = "Id"; - this.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1"; - // - // DataGridViewTextBoxColumn2 - // - this.DataGridViewTextBoxColumn2.DataPropertyName = "Name"; - this.DataGridViewTextBoxColumn2.HeaderText = "Name"; - this.DataGridViewTextBoxColumn2.Name = "DataGridViewTextBoxColumn2"; - // - // RolesEdit - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.RolesDataGridView); - this.Controls.Add(this.CancelButton); - this.Controls.Add(this.SaveButton); - this.Name = "RolesEdit"; - this.Size = new System.Drawing.Size(541, 348); - this.Load += new System.EventHandler(this.RolesEdit_Load); - this.CurrentPrincipalChanged += new System.EventHandler(this.RolesEdit_CurrentPrincipalChanged); - ((System.ComponentModel.ISupportInitialize)(this.rolesBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.RolesDataGridView)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - internal System.Windows.Forms.Button CancelButton; - internal System.Windows.Forms.Button SaveButton; - internal System.Windows.Forms.BindingSource rolesBindingSource; - internal System.Windows.Forms.DataGridView RolesDataGridView; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn1; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn2; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.cs deleted file mode 100644 index 08aa0426..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library.Admin; - -namespace PTWin -{ - public partial class RolesEdit : WinPart - { - - private Roles _roles; - - public RolesEdit() - { - InitializeComponent(); - } - - private void RolesEdit_Load(object sender, EventArgs e) - { - try - { - _roles = Roles.GetRoles(); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Data load error", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Data load error", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - if (_roles != null) - this.rolesBindingSource.DataSource = _roles; - } - - protected internal override object GetIdValue() - { - return "Edit Roles"; - } - - private void SaveButton_Click(object sender, EventArgs e) - { - this.rolesBindingSource.RaiseListChangedEvents = false; - this.rolesBindingSource.EndEdit(); - try - { - Roles temp = _roles.Clone(); - _roles = temp.Save(); - this.Close(); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), "Error saving", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - finally - { - this.rolesBindingSource.RaiseListChangedEvents = true; - this.rolesBindingSource.ResetBindings(false); - } - } - - private void CancelButton_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void RolesEdit_CurrentPrincipalChanged( - object sender, EventArgs e) - { - if (!Roles.CanEditObject()) - this.Close(); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.resx deleted file mode 100644 index ddc5798f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/StatusBusy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/StatusBusy.cs deleted file mode 100644 index e3d99e52..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/StatusBusy.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace PTWin -{ - public class StatusBusy : IDisposable - { - private string _oldStatus; - private Cursor _oldCursor; - - public StatusBusy(string statusText) - { - _oldStatus = MainForm.Instance.StatusLabel.Text; - MainForm.Instance.StatusLabel.Text = statusText; - _oldCursor = MainForm.Instance.Cursor; - MainForm.Instance.Cursor = Cursors.WaitCursor; - } - - // IDisposable - private bool _disposedValue = false; // To detect redundant calls - - protected void Dispose(bool disposing) - { - if (!_disposedValue) - if (disposing) - { - MainForm.Instance.StatusLabel.Text = _oldStatus; - MainForm.Instance.Cursor = _oldCursor; - } - _disposedValue = true; - } - - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above - Dispose(true); - GC.SuppressFinalize(this); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.Designer.cs deleted file mode 100644 index e90b3af1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.Designer.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace PTWin -{ - partial class WinPart - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.cs deleted file mode 100644 index 90b027f6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace PTWin -{ - public partial class WinPart : UserControl - { - public WinPart() - { - InitializeComponent(); - } - - protected internal virtual object GetIdValue() - { - return null; - } - - public override bool Equals(object obj) - { - if (this.DesignMode) - return base.Equals(obj); - else - { - object id = GetIdValue(); - if (this.GetType().Equals(obj.GetType()) && id != null) - return ((WinPart)obj).GetIdValue().Equals(id); - else - return false; - } - } - - public override int GetHashCode() - { - object id = GetIdValue(); - if (id != null) - return GetIdValue().GetHashCode(); - else - return base.GetHashCode(); - } - - public override string ToString() - { - object id = GetIdValue(); - if (id != null) - return id.ToString(); - else - return base.ToString(); - } - - #region CloseWinPart - - public event EventHandler CloseWinPart; - - protected void Close() - { - if (CloseWinPart != null) - CloseWinPart(this, EventArgs.Empty); - } - - #endregion - - #region CurrentPrincipalChanged - - public event EventHandler CurrentPrincipalChanged; - - protected internal virtual void OnCurrentPrincipalChanged( - object sender, EventArgs e) - { - if (CurrentPrincipalChanged != null) - CurrentPrincipalChanged(sender, e); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Role.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Role.cs deleted file mode 100644 index 9ff4f3f6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Role.cs +++ /dev/null @@ -1,220 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; - -namespace ProjectTracker.Library.Admin -{ - [Serializable()] - public class Role : BusinessBase - { - #region Business Methods - - private int _id; - private bool _idSet; - private string _name = String.Empty; - private byte[] _timestamp = new byte[8]; - - [System.ComponentModel.DataObjectField(true, true)] - public int Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - if (!_idSet) - { - // generate a default id value - _idSet = true; - Roles parent = (Roles)this.Parent; - int max = 0; - foreach (Role item in parent) - { - if (item.Id > max) - max = item.Id; - } - _id = max + 1; - } - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (!_id.Equals(value)) - { - _idSet = true; - _id = value; - PropertyHasChanged(); - } - } - } - - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (!_name.Equals(value)) - { - _name = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - } - - protected override void AddInstanceBusinessRules() - { - ValidationRules.AddInstanceRule(NoDuplicates, "Id"); - } - - private bool NoDuplicates(object target, Csla.Validation.RuleArgs e) - { - Roles parent = (Roles)this.Parent; - foreach (Role item in parent) - if (item.Id == _id && !ReferenceEquals(item, this)) - { - e.Description = "Role Id must be unique"; - return false; - } - return true; - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Id", "Administrator"); - AuthorizationRules.AllowWrite( - "Name", "Administrator"); - } - - #endregion - - #region Factory Methods - - internal static Role NewRole() - { - return new Role(); - } - - internal static Role - GetRole(Csla.Data.SafeDataReader dr) - { - return new Role(dr); - } - - private Role() - { - MarkAsChild(); - } - - #endregion - - #region Data Access - - private Role(Csla.Data.SafeDataReader dr) - { - MarkAsChild(); - _id = dr.GetInt32("id"); - _idSet = true; - _name = dr.GetString("name"); - dr.GetBytes("lastChanged", 0, _timestamp, 0, 8); - MarkOld(); - } - - internal void Insert(SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "addRole"; - DoInsertUpdate(cm); - } - } - - internal void Update(SqlConnection cn) - { - // if we're not dirty then don't update the database. - if (!this.IsDirty) return; - - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "updateRole"; - cm.Parameters.AddWithValue("@lastChanged", _timestamp); - DoInsertUpdate(cm); - } - } - - void DoInsertUpdate(SqlCommand cm) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@id", _id); - cm.Parameters.AddWithValue("@name", _name); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - - MarkOld(); - } - - internal void DeleteSelf(SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - // if we're new then don't update the database - if (this.IsNew) return; - - DeleteRole(cn, _id); - MarkNew(); - } - - internal static void DeleteRole(SqlConnection cn, int id) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRole"; - cm.Parameters.AddWithValue("@id", id); - cm.ExecuteNonQuery(); - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Roles.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Roles.cs deleted file mode 100644 index 4d8f8684..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Roles.cs +++ /dev/null @@ -1,175 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library.Admin -{ - /// - /// Used to maintain the list of roles - /// in the system. - /// - [Serializable()] - public class Roles : - BusinessListBase - { - #region Business Methods - - /// - /// Remove a role based on the role's - /// id value. - /// - /// Id value of the role to remove. - public void Remove(int id) - { - foreach (Role item in this) - { - if (item.Id == id) - { - Remove(item); - break; - } - } - } - - /// - /// Get a role based on its id value. - /// - /// Id valud of the role to return - public Role GetRoleById(int id) - { - foreach (Role item in this) - if (item.Id == id) - return item; - return null; - } - - protected override object AddNewCore() - { - Role item = Role.NewRole(); - Add(item); - return item; - } - - #endregion - - #region Authorization Rules - - public static bool CanAddObject() - { - return Csla.ApplicationContext.User.IsInRole("Administrator"); - } - - public static bool CanGetObject() - { - return true; - } - - public static bool CanDeleteObject() - { - return Csla.ApplicationContext.User.IsInRole("Administrator"); - } - - public static bool CanEditObject() - { - return Csla.ApplicationContext.User.IsInRole("Administrator"); - } - - #endregion - - #region Factory Methods - - public static Roles GetRoles() - { - return DataPortal.Fetch(new Criteria()); - } - - private Roles() - { - this.AllowNew = true; - } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { /* no criteria */ } - - public override Roles Save() - { - // see if save is allowed - if (!CanEditObject()) - throw new System.Security.SecurityException( - "User not authorized to save roles"); - - // do the save - Roles result; - result = base.Save(); - // this runs on the client and invalidates - // the RoleList cache - RoleList.InvalidateCache(); - return result; - } - - protected override void DataPortal_OnDataPortalInvokeComplete( - DataPortalEventArgs e) - { - if (ApplicationContext.ExecutionLocation == - ApplicationContext.ExecutionLocations.Server) - { - // this runs on the server and invalidates - // the RoleList cache - RoleList.InvalidateCache(); - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoles"; - - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - while (dr.Read()) - this.Add(Role.GetRole(dr)); - } - } - RaiseListChangedEvents = true; - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - foreach (Role item in DeletedList) - { - item.DeleteSelf(cn); - } - DeletedList.Clear(); - - foreach (Role item in this) - { - if (item.IsNew) - item.Insert(cn); - else - item.Update(cn); - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Assignment.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Assignment.cs deleted file mode 100644 index bf970ebc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Assignment.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Validation; -using Csla.Data; -using System.Reflection; - -namespace ProjectTracker.Library -{ - internal interface IHoldRoles - { - int Role { get; set;} - } - - internal static class Assignment - { - - #region Business Methods - - public static DateTime GetDefaultAssignedDate() - { - return DateTime.Today; - } - - #endregion - - #region Validation Rules - - /// - /// Ensure the Role property value exists - /// in RoleList - /// - public static bool ValidRole(object target, RuleArgs e) - { - int role = ((IHoldRoles)target).Role; - - if (RoleList.GetList().ContainsKey(role)) - return true; - else - { - e.Description = "Role must be in RoleList"; - return false; - } - } - - #endregion - - #region Data Access - - public static byte[] AddAssignment( - SqlConnection cn, Guid projectId, int resourceId, - SmartDate assigned, int role) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "addAssignment"; - return DoAddUpdate( - cm, projectId, resourceId, assigned, role); - } - } - - public static byte[] UpdateAssignment(SqlConnection cn, - Guid projectId, int resourceId, SmartDate assigned, - int newRole, byte[] timestamp) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "updateAssignment"; - cm.Parameters.AddWithValue("@lastChanged", timestamp); - return DoAddUpdate( - cm, projectId, resourceId, assigned, newRole); - } - } - - private static byte[] DoAddUpdate(SqlCommand cm, - Guid projectId, int resourceId, SmartDate assigned, - int newRole) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@projectId", projectId); - cm.Parameters.AddWithValue("@resourceId", resourceId); - cm.Parameters.AddWithValue("@assigned", assigned.DBValue); - cm.Parameters.AddWithValue("@role", newRole); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - - public static void RemoveAssignment( - SqlConnection cn, Guid projectId, int resourceId) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAssignment"; - cm.Parameters.AddWithValue("@projectId", projectId); - cm.Parameters.AddWithValue("@resourceId", resourceId); - - cm.ExecuteNonQuery(); - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Database.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Database.cs deleted file mode 100644 index 097986ec..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Database.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Configuration; - -namespace ProjectTracker.Library -{ - public static class Database - { - public static string PTrackerConnection - { - get - { - return ConfigurationManager.ConnectionStrings - ["PTracker"].ConnectionString; - } - } - - public static string SecurityConnection - { - get { return System.Configuration.ConfigurationManager.ConnectionStrings["Security"].ConnectionString; } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/BaseClasses.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/BaseClasses.cd deleted file mode 100644 index 5c4aa758..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/BaseClasses.cd +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - Project.cs - EAACIIwBIgAgRAEEAAjIAgQAAAJAgAECAhgBAAEAmAA= - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/EditableObjects.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/EditableObjects.cd deleted file mode 100644 index bfcec955..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/EditableObjects.cd +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Project.cs - EAACIIwBIgAgRAEEAAjIAgQAAAJAgAECAhgBAAEAmAA= - - - - - - Resource.cs - FAMCgMgAAAAARIAAAAlIAAAAAABAgAECABgJCAEAiAg= - - - - - - - - - - ProjectResource.cs - EAUAAEAAAgAAgIAAEAEAAAAAAAAAAAoAAAABCEAAigg= - - - - - - ResourceAssignment.cs - EAQAAEAAAAAAAABAGAAAAAAABAAAAAIAAgABAEAIigA= - - - - - - ProjectResources.cs - AAQAAAQAAAAAAGAAAAAABAAAAAAAAAAAAAAAQBAQCAA= - - - - - - ResourceAssignments.cs - AAQAAAAAAAAAAAAACAAABAAAIAAAgAAAEAAAAAAACAA= - - - - - - - - - - - Admin\Roles.cs - AAAAAIAAAAAARAAAEAAAhAACACAAgAECAAgAAAAAAAA= - - - - - - Admin\Role.cs - UAQCIEEAAAAAAAAAgARAAAQAAAAAAAAAAAAAAEAAgAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/ReadOnlyObjects.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/ReadOnlyObjects.cd deleted file mode 100644 index d5563141..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/ReadOnlyObjects.cd +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - ResourceList.cs - AAAAAAAAAAAABAAAgAAAAAAAAAAAIAAAAAAAAAAAAAA= - - - - - - ProjectList.cs - AAAAAAAAAAAABEAAAAEAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - - - - - - RoleList.cs - AAABAAAAAAAABAAAAAAAAAAAAAAAAABAQAAAAAAAAAI= - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/Security.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/Security.cd deleted file mode 100644 index f9cc8cfe..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/Security.cd +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - Security\PTPrincipal.cs - AAAAAAAACAAAAAAAAAAAAAIAAAAAAAAAAAAQAAAAAAA= - - - - - - Security\PTIdentity.cs - AAAAIAAACAAABAAACAAAAAQgAAAEAAAAAAABAIAAABA= - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Project.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Project.cs deleted file mode 100644 index 40d8e3f8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Project.cs +++ /dev/null @@ -1,440 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class Project : BusinessBase - { - #region Business Methods - - private Guid _id; - private string _name = string.Empty; - private SmartDate _started; - private SmartDate _ended = new SmartDate(false); - private string _description = string.Empty; - private byte[] _timestamp = new byte[8]; - - private ProjectResources _resources = - ProjectResources.NewProjectResources(); - - [System.ComponentModel.DataObjectField(true, true)] - public Guid Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - } - - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_name != value) - { - _name = value; - PropertyHasChanged(); - } - } - } - - public string Started - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _started.Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_started != value) - { - _started.Text = value; - PropertyHasChanged(); - } - } - } - - public string Ended - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _ended.Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_ended != value) - { - _ended.Text = value; - PropertyHasChanged(); - } - } - } - - public string Description - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _description; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_description != value) - { - _description = value; - PropertyHasChanged(); - } - } - } - - public ProjectResources Resources - { - get { return _resources; } - } - - public override bool IsValid - { - get { return base.IsValid && _resources.IsValid; } - } - - public override bool IsDirty - { - get { return base.IsDirty || _resources.IsDirty; } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 50)); - - ValidationRules.AddRule( - StartDateGTEndDate, "Started"); - ValidationRules.AddRule( - StartDateGTEndDate, "Ended"); - - ValidationRules.AddDependantProperty("Started", "Ended", true); - } - - private static bool StartDateGTEndDate( - T target, Csla.Validation.RuleArgs e) where T : Project - { - if (target._started > target._ended) - { - e.Description = - "Start date can't be after end date"; - return false; - } - else - return true; - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Name", "ProjectManager"); - AuthorizationRules.AllowWrite( - "Started", "ProjectManager"); - AuthorizationRules.AllowWrite( - "Ended", "ProjectManager"); - AuthorizationRules.AllowWrite( - "Description", "ProjectManager"); - } - - public static bool CanAddObject() - { - return Csla.ApplicationContext.User.IsInRole( - "ProjectManager"); - } - - public static bool CanGetObject() - { - return true; - } - - public static bool CanDeleteObject() - { - bool result = false; - if (Csla.ApplicationContext.User.IsInRole( - "ProjectManager")) - result = true; - if (Csla.ApplicationContext.User.IsInRole( - "Administrator")) - result = true; - return result; - } - - public static bool CanEditObject() - { - return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - } - - #endregion - - #region Factory Methods - - public static Project NewProject() - { - if (!CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a project"); - return DataPortal.Create(); - } - - public static Project GetProject(Guid id) - { - if (!CanGetObject()) - throw new System.Security.SecurityException( - "User not authorized to view a project"); - return DataPortal.Fetch(new Criteria(id)); - } - - public static void DeleteProject(Guid id) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a project"); - DataPortal.Delete(new Criteria(id)); - } - - private Project() - { /* require use of factory methods */ } - - public override Project Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a project"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a project"); - else if (!CanEditObject()) - throw new System.Security.SecurityException( - "User not authorized to update a project"); - - return base.Save(); - } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private Guid _id; - public Guid Id - { - get { return _id; } - } - - public Criteria(Guid id) - { _id = id; } - } - - [RunLocal()] - protected override void DataPortal_Create() - { - _id = Guid.NewGuid(); - _started.Date = DateTime.Today; - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getProject"; - cm.Parameters.AddWithValue("@id", criteria.Id); - - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _id = dr.GetGuid("Id"); - _name = dr.GetString("Name"); - _started = dr.GetSmartDate("Started", _started.EmptyIsMin); - _ended = dr.GetSmartDate("Ended", _ended.EmptyIsMin); - _description = dr.GetString("Description"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - - // load child objects - dr.NextResult(); - _resources = ProjectResources.GetProjectResources(dr); - } - } - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "addProject"; - DoInsertUpdate(cm); - } - } - // update child objects - _resources.Update(this); - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (base.IsDirty) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "updateProject"; - cm.Parameters.AddWithValue("@lastChanged", _timestamp); - DoInsertUpdate(cm); - } - } - } - // update child objects - _resources.Update(this); - } - - private void DoInsertUpdate(SqlCommand cm) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@id", _id); - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@started", _started.DBValue); - cm.Parameters.AddWithValue("@ended", _ended.DBValue); - cm.Parameters.AddWithValue("@description", _description); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteProject"; - cm.Parameters.AddWithValue("@id", criteria.Id); - cm.ExecuteNonQuery(); - } - } - } - - #endregion - - #region Exists - - public static bool Exists(Guid id) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(id)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - private Guid _id; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(Guid id) - { - _id = id; - } - - protected override void DataPortal_Execute() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsProject"; - cm.Parameters.AddWithValue("@id", _id); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectInfo.cs deleted file mode 100644 index a759825c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectInfo : - ReadOnlyBase - { - #region Business Methods - - private Guid _id; - private string _name; - - public Guid Id - { - get { return _id; } - } - - public string Name - { - get { return _name; } - } - - protected override object GetIdValue() - { - return _id; - } - - public override string ToString() - { - return _name; - } - - #endregion - - #region Constructors - - private ProjectInfo() - { /* require use of factory methods */ } - - internal ProjectInfo(Guid id, string name) - { - _id = id; - _name = name; - } - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectList.cs deleted file mode 100644 index 48f12e7c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectList.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectList : - ReadOnlyListBase - { - #region Factory Methods - - /// - /// Return a list of all projects. - /// - public static ProjectList GetProjectList() - { - return DataPortal.Fetch(new Criteria()); - } - - /// - /// Return a list of projects filtered - /// by project name. - /// - public static ProjectList GetProjectList(string name) - { - return DataPortal.Fetch - (new FilteredCriteria(name)); - } - - private ProjectList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { /* no criteria - retrieve all projects */ } - - [Serializable()] - private class FilteredCriteria - { - private string _name; - public string Name - { - get { return _name; } - } - - public FilteredCriteria(string name) - { - _name = name; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - // fetch with no filter - Fetch(""); - } - - private void DataPortal_Fetch(FilteredCriteria criteria) - { - Fetch(criteria.Name); - } - - private void Fetch(string nameFilter) - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getProjects"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ProjectInfo info = new ProjectInfo( - dr.GetGuid(0), - dr.GetString(1)); - // apply filter if necessary - if ((nameFilter.Length == 0) || (info.Name.IndexOf(nameFilter) == 0)) - this.Add(info); - } - IsReadOnly = true; - } - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResource.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResource.cs deleted file mode 100644 index 71e9e782..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResource.cs +++ /dev/null @@ -1,228 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; -using Csla.Validation; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectResource : - BusinessBase, IHoldRoles - { - #region Business Methods - - private int _resourceId; - private string _firstName = string.Empty; - private string _lastName = string.Empty; - private SmartDate _assigned; - private int _role; - private byte[] _timestamp = new byte[8]; - - [System.ComponentModel.DataObjectField(false, true)] - public int ResourceId - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _resourceId; - } - } - - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _firstName; - } - } - - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _lastName; - } - } - - public string FullName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (CanReadProperty("FirstName") && - CanReadProperty("LastName")) - return string.Format("{0}, {1}", LastName, FirstName); - else - throw new System.Security.SecurityException( - "Property read not allowed"); - } - } - - public string Assigned - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _assigned.Text; - } - } - - public int Role - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _role; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (!_role.Equals(value)) - { - _role = value; - PropertyHasChanged(); - } - } - } - - public Resource GetResource() - { - return Resource.GetResource(_resourceId); - } - - protected override object GetIdValue() - { - return _resourceId; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - new Csla.Validation.RuleHandler( - Assignment.ValidRole), "Role"); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Role", "ProjectManager"); - } - - #endregion - - #region Factory Methods - - internal static ProjectResource NewProjectResource(int resourceId) - { - return new ProjectResource( - Resource.GetResource(resourceId), - RoleList.DefaultRole()); - } - - internal static ProjectResource GetResource(SafeDataReader dr) - { - return new ProjectResource(dr); - } - - private ProjectResource() - { - MarkAsChild(); - } - - private ProjectResource(Resource resource, int role) - { - MarkAsChild(); - _resourceId = resource.Id; - _lastName = resource.LastName; - _firstName = resource.FirstName; - _assigned.Date = Assignment.GetDefaultAssignedDate(); - _role = role; - } - - private ProjectResource(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SafeDataReader dr) - { - _resourceId = dr.GetInt32("ResourceId"); - _lastName = dr.GetString("LastName"); - _firstName = dr.GetString("FirstName"); - _assigned = dr.GetSmartDate("Assigned"); - _role = dr.GetInt32("Role"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - MarkOld(); - } - - internal void Insert(Project project) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - _timestamp = Assignment.AddAssignment( - cn, project.Id, _resourceId, _assigned, _role); - MarkOld(); - } - } - - internal void Update(Project project) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - _timestamp = Assignment.UpdateAssignment( - cn, project.Id, _resourceId, _assigned, _role, _timestamp); - MarkOld(); - } - } - - internal void DeleteSelf(Project project) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - // if we're new then don't update the database - if (this.IsNew) return; - - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - Assignment.RemoveAssignment(cn, project.Id, _resourceId); - MarkNew(); - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResources.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResources.cs deleted file mode 100644 index fb87d68f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResources.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectResources : - BusinessListBase - { - #region Business Methods - - public ProjectResource GetItem(int resourceId) - { - foreach (ProjectResource res in this) - if (res.ResourceId == resourceId) - return res; - return null; - } - - public void Assign(int resourceId) - { - if (!Contains(resourceId)) - { - ProjectResource resource = - ProjectResource.NewProjectResource(resourceId); - this.Add(resource); - } - else - throw new InvalidOperationException( - "Resource already assigned to project"); - } - - public void Remove(int resourceId) - { - foreach (ProjectResource res in this) - { - if (res.ResourceId == resourceId) - { - Remove(res); - break; - } - } - } - - public bool Contains(int resourceId) - { - foreach (ProjectResource res in this) - if (res.ResourceId == resourceId) - return true; - return false; - } - - public bool ContainsDeleted(int resourceId) - { - foreach (ProjectResource res in DeletedList) - if (res.ResourceId == resourceId) - return true; - return false; - } - - #endregion - - #region Factory Methods - - internal static ProjectResources NewProjectResources() - { - return new ProjectResources(); - } - - internal static ProjectResources GetProjectResources(SafeDataReader dr) - { - return new ProjectResources(dr); - } - - private ProjectResources() - { - MarkAsChild(); - } - - private ProjectResources(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - // called to load data from the database - private void Fetch(SafeDataReader dr) - { - this.RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(ProjectResource.GetResource(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Project project) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (ProjectResource obj in DeletedList) - obj.DeleteSelf(project); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (ProjectResource obj in this) - { - if (obj.IsNew) - obj.Insert(project); - else - obj.Update(project); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectTracker.Library.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectTracker.Library.csproj deleted file mode 100644 index 4b9eeee9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectTracker.Library.csproj +++ /dev/null @@ -1,74 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96} - Library - Properties - ProjectTracker.Library - ProjectTracker.Library - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\csla20cs\Csla\bin\Debug\Csla.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Properties/AssemblyInfo.cs deleted file mode 100644 index 43c00902..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ProjectTracker.Library")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Rockford Lhotka")] -[assembly: AssemblyProduct("ProjectTracker")] -[assembly: AssemblyCopyright("Copyright © Rockford Lhotka 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("52a894db-5427-450c-9924-b11ce791853a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Resource.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Resource.cs deleted file mode 100644 index f02b5896..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Resource.cs +++ /dev/null @@ -1,395 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; -using Csla.Validation; - -namespace ProjectTracker.Library -{ - - [Serializable()] - public class Resource : BusinessBase - { - - #region Business Methods - - private int _id; - private string _lastName = string.Empty; - private string _firstName = string.Empty; - private byte[] _timestamp = new byte[8]; - - private ResourceAssignments _assignments = ResourceAssignments.NewResourceAssignments(); - - [System.ComponentModel.DataObjectField(true, true)] - public int Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - } - - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _lastName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_lastName != value) - { - _lastName = value; - PropertyHasChanged(); - } - } - } - - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _firstName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(); - if (value == null) value = string.Empty; - if (_firstName != value) - { - _firstName = value; - PropertyHasChanged(); - } - } - } - public string FullName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (CanReadProperty("FirstName") && CanReadProperty("LastName")) - return string.Format("{0}, {1}", _lastName, _firstName); - else - throw new System.Security.SecurityException("Property read not allowed"); - } - } - - public ResourceAssignments Assignments - { - get { return _assignments; } - } - - public override bool IsValid - { - get { return base.IsValid && _assignments.IsValid; } - } - - public override bool IsDirty - { - get { return base.IsDirty || _assignments.IsDirty; } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(new RuleHandler(CommonRules.StringRequired), "FirstName"); - ValidationRules.AddRule(new RuleHandler(CommonRules.StringMaxLength), - new CommonRules.MaxLengthRuleArgs("FirstName", 50)); - - ValidationRules.AddRule(new RuleHandler(CommonRules.StringMaxLength), - new CommonRules.MaxLengthRuleArgs("LastName", 50)); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // add AuthorizationRules here - AuthorizationRules.AllowWrite("LastName", "ProjectManager"); - AuthorizationRules.AllowWrite("FirstName", "ProjectManager"); - } - - public static bool CanAddObject() - { - return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - } - - public static bool CanGetObject() - { - return true; - } - - public static bool CanDeleteObject() - { - bool result = false; - if (Csla.ApplicationContext.User.IsInRole("ProjectManager")) - result = true; - if (Csla.ApplicationContext.User.IsInRole("Administrator")) - result = true; - return result; - } - - public static bool CanEditObject() - { - return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - } - - #endregion - - #region Factory Methods - - public static Resource NewResource() - { - if (!CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a resource"); - return DataPortal.Create(); - } - - public static void DeleteResource(int id) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a resource"); - DataPortal.Delete(new Criteria(id)); - } - - public static Resource GetResource(int id) - { - if (!CanGetObject()) - throw new System.Security.SecurityException( - "User not authorized to view a resource"); - return DataPortal.Fetch(new Criteria(id)); - } - - public override Resource Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a resource"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a resource"); - else if (!CanEditObject()) - throw new System.Security.SecurityException( - "User not authorized to update a resource"); - return base.Save(); - } - - private Resource() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - - public Criteria(int id) - { _id = id; } - } - - [RunLocal()] - protected override void DataPortal_Create() - { - // nothing to initialize - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getResource"; - cm.Parameters.AddWithValue("@id", criteria.Id); - - using (SafeDataReader dr = - new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _id = dr.GetInt32("Id"); - _lastName = dr.GetString("LastName"); - _firstName = dr.GetString("FirstName"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - - // load child objects - dr.NextResult(); - _assignments = - ResourceAssignments.GetResourceAssignments(dr); - } - } - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addResource"; - cm.Parameters.AddWithValue("@lastName", _lastName); - cm.Parameters.AddWithValue("@firstName", _firstName); - SqlParameter param = - new SqlParameter("@newId",SqlDbType.Int); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - param = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _id = (int)cm.Parameters["@newId"].Value; - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - _assignments.Update(this); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation==ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - ApplicationContext.LocalContext["cn"] = cn; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateResource"; - cm.Parameters.AddWithValue("@id", _id); - cm.Parameters.AddWithValue("@lastName", _lastName); - cm.Parameters.AddWithValue("@firstName", _firstName); - cm.Parameters.AddWithValue("@lastChanged", _timestamp); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - // update child objects - _assignments.Update(this); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteResource"; - cm.Parameters.AddWithValue("@id", criteria.Id); - cm.ExecuteNonQuery(); - } - } - } - - #endregion - - #region Exists - - public static bool Exists(string id) - { - ExistsCommand result; - result = DataPortal.Execute(new ExistsCommand(id)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private string _id; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(string id) - { - _id = id; - } - - protected override void DataPortal_Execute() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsResource"; - cm.Parameters.AddWithValue("@id", _id); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignment.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignment.cs deleted file mode 100644 index e1f21a71..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignment.cs +++ /dev/null @@ -1,192 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceAssignment : BusinessBase, IHoldRoles - { - #region Business Methods - - private Guid _projectId = Guid.Empty; - private string _projectName = string.Empty; - private SmartDate _assigned = new SmartDate(DateTime.Today); - private int _role; - private byte[] _timestamp = new byte[8]; - - public Guid ProjectId - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _projectId; - } - } - - public string ProjectName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _projectName; - } - } - - public string Assigned - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _assigned.Text; - } - } - - public int Role - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _role; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (!_role.Equals(value)) - { - _role = value; - PropertyHasChanged(); - } - } - } - - public Project GetProject() - { - return Project.GetProject(_projectId); - } - - protected override object GetIdValue() - { - return _projectId; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - new Csla.Validation.RuleHandler( - Assignment.ValidRole), "Role"); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Role", "ProjectManager"); - } - - #endregion - - #region Factory Methods - - internal static ResourceAssignment NewResourceAssignment( - Guid projectId) - { - return new ResourceAssignment( - Project.GetProject(projectId), RoleList.DefaultRole()); - } - - internal static ResourceAssignment GetResourceAssignment( - SafeDataReader dr) - { - return new ResourceAssignment(dr); - } - - private ResourceAssignment() - { MarkAsChild(); } - - #endregion - - #region Data Access - - /// - /// Called to when a new object is created. - /// - private ResourceAssignment(Project project, int role) - { - MarkAsChild(); - _projectId = project.Id; - _projectName = project.Name; - _assigned.Date = Assignment.GetDefaultAssignedDate(); - _role = role; - } - - /// - /// Called when loading data from the database. - /// - private ResourceAssignment(SafeDataReader dr) - { - MarkAsChild(); - _projectId = dr.GetGuid("ProjectId"); - _projectName = dr.GetString("Name"); - _assigned = dr.GetSmartDate("Assigned"); - _role = dr.GetInt32("Role"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - MarkOld(); - } - - internal void Insert(Resource resource) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - _timestamp = Assignment.AddAssignment( - cn, _projectId, resource.Id, _assigned, _role); - MarkOld(); - } - - internal void Update(Resource resource) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - _timestamp = Assignment.UpdateAssignment( - cn, _projectId, resource.Id, _assigned, _role, _timestamp); - MarkOld(); - } - - internal void DeleteSelf(Resource resource) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - // if we're new then don't update the database - if (this.IsNew) return; - - Assignment.RemoveAssignment(cn, _projectId, resource.Id); - MarkNew(); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignments.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignments.cs deleted file mode 100644 index cb53a5af..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignments.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceAssignments : BusinessListBase - { - #region Business Methods - - public ResourceAssignment this[Guid projectId] - { - get - { - foreach (ResourceAssignment res in this) - if (res.ProjectId.Equals(projectId)) - return res; - return null; - } - } - - public void AssignTo(Guid projectId) - { - if (!Contains(projectId)) - { - ResourceAssignment project = ResourceAssignment.NewResourceAssignment(projectId); - this.Add(project); - } - else - throw new InvalidOperationException("Resource already assigned to project"); - } - - public void Remove(Guid projectId) - { - foreach (ResourceAssignment res in this) - { - if (res.ProjectId.Equals(projectId)) - { - Remove(res); - break; - } - } - } - - public bool Contains(Guid projectId) - { - foreach (ResourceAssignment project in this) - if (project.ProjectId == projectId) - return true; - return false; - } - - public bool ContainsDeleted(Guid projectId) - { - foreach (ResourceAssignment project in DeletedList) - if (project.ProjectId == projectId) - return true; - return false; - } - - #endregion - - #region Factory Methods - - internal static ResourceAssignments NewResourceAssignments() - { - return new ResourceAssignments(); - } - - internal static ResourceAssignments GetResourceAssignments(SafeDataReader dr) - { - return new ResourceAssignments(dr); - } - - private ResourceAssignments() - { - MarkAsChild(); - } - - private ResourceAssignments(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SafeDataReader dr) - { - RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(ResourceAssignment.GetResourceAssignment(dr)); - RaiseListChangedEvents = true; - } - - internal void Update(Resource resource) - { - RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (ResourceAssignment item in DeletedList) - item.DeleteSelf(resource); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (ResourceAssignment item in this) - { - if (item.IsNew) - item.Insert(resource); - else - item.Update(resource); - } - RaiseListChangedEvents = true; - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceInfo.cs deleted file mode 100644 index 3df7c6d8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceInfo.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceInfo : - ReadOnlyBase - { - #region Business Methods - - private int _id; - private string _name; - - public int Id - { - get { return _id; } - } - - public string Name - { - get { return _name; } - } - - protected override object GetIdValue() - { - return _id; - } - - public override string ToString() - { - return _name; - } - - #endregion - - #region Constructors - - private ResourceInfo() - { /* require use of factory methods */ } - - internal ResourceInfo(SafeDataReader dr) - { - _id = dr.GetInt32("Id"); - _name = string.Format("{0}, {1}", - dr.GetString("LastName"), - dr.GetString("FirstName")); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceList.cs deleted file mode 100644 index 1aba1165..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceList.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceList : - ReadOnlyListBase - { - #region Factory Methods - - public static ResourceList GetResourceList() - { - return DataPortal.Fetch(new Criteria()); - } - - private ResourceList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { /* no criteria - retrieve all resources */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getResources"; - - using (SafeDataReader dr = - new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ResourceInfo info = new ResourceInfo(dr); - this.Add(info); - } - IsReadOnly = true; - } - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/RoleList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/RoleList.cs deleted file mode 100644 index 773e58b8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/RoleList.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class RoleList : - NameValueListBase - { - #region Business Methods - - public static int DefaultRole() - { - RoleList list = GetList(); - if (list.Count > 0) - return list.Items[0].Key; - else - throw new NullReferenceException( - "No roles available; default role can not be returned"); - } - - #endregion - - #region Factory Methods - - private static RoleList _list; - - /// - /// Returns a list of roles. - /// - public static RoleList GetList() - { - if (_list == null) - _list = DataPortal.Fetch - (new Criteria(typeof(RoleList))); - return _list; - } - - /// - /// Clears the in-memory RoleList cache - /// so the list of roles is reloaded on - /// next request. - /// - public static void InvalidateCache() - { - _list = null; - } - - private RoleList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoles"; - - using (SafeDataReader dr = - new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - this.Add(new NameValuePair( - dr.GetInt32("id"), dr.GetString("name"))); - } - IsReadOnly = true; - } - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTIdentity.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTIdentity.cs deleted file mode 100644 index 4e69a214..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTIdentity.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using System.Collections.Generic; -using System.Security.Principal; -using Csla; - -namespace ProjectTracker.Library.Security -{ - [Serializable()] - public class PTIdentity : - ReadOnlyBase, IIdentity - { - #region Business Methods - - private bool _isAuthenticated; - private string _name = string.Empty; - private List _roles = new List(); - - public string AuthenticationType - { - get { return "Csla"; } - } - - public bool IsAuthenticated - { - get { return _isAuthenticated; } - } - - public string Name - { - get { return _name; } - } - - protected override object GetIdValue() - { - return _name; - } - - internal bool IsInRole(string role) - { - return _roles.Contains(role); - } - - #endregion - - #region Factory Methods - - internal static PTIdentity UnauthenticatedIdentity() - { - return new PTIdentity(); - } - - internal static PTIdentity GetIdentity( - string username, string password) - { - return DataPortal.Fetch - (new Criteria(username, password)); - } - - private PTIdentity() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private string _username; - public string Username - { - get { return _username; } - } - - private string _password; - public string Password - { - get { return _password; } - } - - public Criteria(string username, string password) - { - _username = username; - _password = password; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - using (SqlConnection cn = - new SqlConnection(Database.SecurityConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "Login"; - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@user", criteria.Username); - cm.Parameters.AddWithValue("@pw", criteria.Password); - using (SqlDataReader dr = cm.ExecuteReader()) - { - if (dr.Read()) - { - _name = criteria.Username; - _isAuthenticated = true; - if (dr.NextResult()) - { - while (dr.Read()) - { - _roles.Add(dr.GetString(0)); - } - } - } - else - { - _name = string.Empty; - _isAuthenticated = false; - _roles.Clear(); - } - } - } - } - } - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTPrincipal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTPrincipal.cs deleted file mode 100644 index d21c7b78..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTPrincipal.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Security.Principal; - -namespace ProjectTracker.Library.Security -{ - [Serializable()] - public class PTPrincipal : Csla.Security.BusinessPrincipalBase - { - - private PTPrincipal(IIdentity identity) - : base(identity) { } - - public static bool Login(string username, string password) - { - PTIdentity identity = - PTIdentity.GetIdentity(username, password); - if (identity.IsAuthenticated) - { - PTPrincipal principal = new PTPrincipal(identity); - Csla.ApplicationContext.User = principal; - } - return identity.IsAuthenticated; - } - - public static void Logout() - { - PTIdentity identity = PTIdentity.UnauthenticatedIdentity(); - PTPrincipal principal = new PTPrincipal(identity); - Csla.ApplicationContext.User = principal; - } - - public override bool IsInRole(string role) - { - PTIdentity identity = (PTIdentity)this.Identity; - return identity.IsInRole(role); - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker20cs.sln b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker20cs.sln deleted file mode 100644 index 553d7980..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker20cs.sln +++ /dev/null @@ -1,198 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PTWin", "PTWin\PTWin.csproj", "{DAB85BA2-86A3-4D3B-8D34-324D939D952C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectTracker.Library", "ProjectTracker.Library\ProjectTracker.Library.csproj", "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}" -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\PTWeb\", "www\PTWeb\", "{D8F59D26-50C8-4DFD-B8B9-C529530297F1}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;{B390C88E-66FD-4E84-8149-29852AFA8723}|EnterpriseServicesHostcs.dll;" - Debug.AspNetCompiler.VirtualPath = "/PTWeb" - Debug.AspNetCompiler.PhysicalPath = "www\PTWeb\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWeb\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/PTWeb" - Release.AspNetCompiler.PhysicalPath = "www\PTWeb\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWeb\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "2161" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FAC3F50C-78A8-4F17-A4E3-B6BAE7BB612F}" - ProjectSection(SolutionItems) = preProject - license.txt = license.txt - readme.txt = readme.txt - EndProjectSection -EndProject -Project("{4F174C21-8C12-11D0-8340-0000F80270F8}") = "PTData", "PTData\PTData.dbp", "{09B6FE9B-E21E-4454-8E64-928422F60E08}" -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\RemotingHost\", "www\RemotingHost\", "{5A15CF97-BBA1-4C15-990D-AF08907C8A0C}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;" - Debug.AspNetCompiler.VirtualPath = "/RemotingHost" - Debug.AspNetCompiler.PhysicalPath = "www\RemotingHost\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\RemotingHost\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/RemotingHost" - Release.AspNetCompiler.PhysicalPath = "www\RemotingHost\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\RemotingHost\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "3187" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\PTWebService\", "www\PTWebService\", "{86BA904A-AC1A-4CC1-AA54-98F3A090AD83}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;{B390C88E-66FD-4E84-8149-29852AFA8723}|EnterpriseServicesHostcs.dll;" - Debug.AspNetCompiler.VirtualPath = "/PTWebService" - Debug.AspNetCompiler.PhysicalPath = "www\PTWebService\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWebService\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/PTWebService" - Release.AspNetCompiler.PhysicalPath = "www\PTWebService\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWebService\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "7411" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PTServiceClient", "PTServiceClient\PTServiceClient.csproj", "{457C09F3-B15D-474F-A761-DC3419E745EF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnterpriseServicesHostcs", "EnterpriseServicesHostcs\EnterpriseServicesHostcs.csproj", "{B390C88E-66FD-4E84-8149-29852AFA8723}" -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\WebServicesHost\", "www\WebServicesHost\", "{68865A7C-0792-4757-89D1-874F5A2FF551}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;" - Debug.AspNetCompiler.VirtualPath = "/WebServicesHost" - Debug.AspNetCompiler.PhysicalPath = "www\WebServicesHost\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebServicesHost\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/WebServicesHost" - Release.AspNetCompiler.PhysicalPath = "www\WebServicesHost\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebServicesHost\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "4334" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|.NET = Debug|.NET - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Release|.NET = Release|.NET - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|.NET.ActiveCfg = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|.NET.ActiveCfg = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Any CPU.Build.0 = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|.NET.ActiveCfg = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Any CPU.Build.0 = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|.NET.ActiveCfg = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Any CPU.ActiveCfg = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Any CPU.Build.0 = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|.NET.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|.NET.Build.0 = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|Any CPU.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|.NET.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|.NET.Build.0 = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|Any CPU.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|Mixed Platforms.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|.NET.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|.NET.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|Any CPU.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|.NET.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|.NET.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|Any CPU.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|Mixed Platforms.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|.NET.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|.NET.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|Any CPU.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|.NET.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|.NET.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|Any CPU.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|Mixed Platforms.Build.0 = Debug|.NET - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|.NET.ActiveCfg = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|.NET.ActiveCfg = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Any CPU.Build.0 = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|.NET.ActiveCfg = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|.NET.ActiveCfg = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Any CPU.Build.0 = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|.NET.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|.NET.Build.0 = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|Any CPU.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|.NET.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|.NET.Build.0 = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|Any CPU.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|Mixed Platforms.Build.0 = Debug|.NET - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/license.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/license.txt deleted file mode 100644 index 3e481a86..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/license.txt +++ /dev/null @@ -1,99 +0,0 @@ -LICENSE AND WARRANTY - -The CSLA .NET framework is Copyright 2006 by Rockford Lhotka. - -You can use this Software for any noncommercial purpose, including -distributing derivative works. You can use this Software for any commercial -purpose other than you may not use it, in whole or in part, to create a -commercial framework product. - -In short, you can use CSLA .NET and modify it to create other commercial or -business software, you just can't take the framework itself, modify it and -sell it as a product. - -In return, the owner simply requires that you agree: - -This Software License Agreement ("Agreement") is effective -upon your use of CSLA .NET ("Software"). - -1. Ownership. -The CSLA .NET framework is Copyright 2006 by Rockford Lhotka, -Eden Prairie, MN, USA. - -2. Copyright Notice. -You must not remove any copyright notices from the Software source code. - -3. License. -The owner hereby grants a perpetual, non-exclusive, limited license to use -the Software as set forth in this Agreement. - -4. Source Code Distribution. -If you distribute the Software in source code form you must do so only under -this License (i.e. you must include a complete copy of this License with -your distribution). - -5. Binary or Object Distribution. -You may distribute the Software in binary or object form with no requirement -to display copyright notices to the end user. The binary or object form must -retain the copyright notices included in the Software source code. - -6. Restrictions. -You may not sell the Software. If you create a software development framework -based on the Software as a derivative work, you may not sell that derivative -work. This does not restrict the use of the Software for creation of other -types of non-commercial or commercial applications or derivative works. - -7. Disclaimer of Warranty. -The Software comes "as is", with no warranties. None whatsoever. This means -no express, implied, statutory or other warranty, including without -limitation, warranties of merchantability or fitness for a particular -purpose, noninfringement, or the presence or absence of errors, whether or -not discoverable. Also, you must pass this disclaimer on whenever you -distribute the Software. - -8. Liability. -Neither Rockford Lhotka nor any contributor to the Software will be liable -for any of those types of damages known as indirect, special, consequential, -incidental, punitive or exemplary related to the Software or this License, to -the maximum extent the law permits, no matter what legal theory its based -on. Also, you must pass this limitation of liability on whenever you -distribute the Software. - -9. Patents. -If you sue anyone over patents that you think may apply to the Software -for a person's use of the Software, your license to the Software ends -automatically. - -The patent rights, if any, licensed hereunder only apply to the Software, -not to any derivative works you make. - -10. Termination. -Your rights under this License end automatically if you breach it in any way. - -Rockford Lhotka reserves the right to release the Software under different -license terms or to stop distributing the Software at any time. Such an -election will not serve to withdraw this Agreement, and this Agreement will -continue in full force and effect unless terminated as stated above. - -11. Governing Law. -This Agreement shall be construed and enforced in accordance with the laws -of the state of Minnesota, USA. - -12. No Assignment. -Neither this Agreement nor any interest in this Agreement may be assigned -by Licensee without the prior express written approval of Developer. - -13. Final Agreement. -This Agreement terminates and supersedes all prior understandings or -agreements on the subject matter hereof. This Agreement may be modified -only by a further writing that is duly executed by both parties. - -14. Severability. -If any term of this Agreement is held by a court of competent jurisdiction -to be invalid or unenforceable, then this Agreement, including all of the -remaining terms, will remain in full force and effect as if such invalid -or unenforceable term had never been included. - -15. Headings. -Headings used in this Agreement are provided for convenience only and shall -not be used to construe meaning or intent. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/readme.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/readme.txt deleted file mode 100644 index 302e8c18..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -For information on installation, book errata, updates to the framework and so forth, -please visit http://www.lhotka.net/cslanet. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Code/PTMembershipProvider.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Code/PTMembershipProvider.cs deleted file mode 100644 index 1a04e45f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Code/PTMembershipProvider.cs +++ /dev/null @@ -1,161 +0,0 @@ -using System; -using ProjectTracker.Library.Security; -using System.Web; -using System.Web.Security; - -public class PTMembershipProvider : MembershipProvider -{ - public override bool ValidateUser( - string username, string password) - { - bool result = PTPrincipal.Login(username, password); - HttpContext.Current.Session["CslaPrincipal"] = - Csla.ApplicationContext.User; - return result; - } - - #region Non-Implemented Members - - // the following members must be implemented due to the abstract class MembershipProvider, - // but not required to be functional for using the Login control. - public override bool ChangePassword(string username, string oldPassword, string newPassword) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool DeleteUser(string username, bool deleteAllRelatedData) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool EnablePasswordReset - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override bool EnablePasswordRetrieval - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override int GetNumberOfUsersOnline() - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override string GetPassword(string username, string answer) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUser GetUser(string username, bool userIsOnline) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override string GetUserNameByEmail(string email) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override int MaxInvalidPasswordAttempts - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override int MinRequiredNonAlphanumericCharacters - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override int MinRequiredPasswordLength - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override int PasswordAttemptWindow - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override MembershipPasswordFormat PasswordFormat - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override string PasswordStrengthRegularExpression - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override bool RequiresQuestionAndAnswer - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override bool RequiresUniqueEmail - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override string ResetPassword(string username, string answer) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool UnlockUser(string userName) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override void UpdateUser(MembershipUser user) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override string ApplicationName - { - get - { - throw new NotSupportedException("The method or operation is not implemented."); - } - set - { - throw new NotSupportedException("The method or operation is not implemented."); - } - } - - #endregion - -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.css b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.css deleted file mode 100644 index c3f3450e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.css +++ /dev/null @@ -1,106 +0,0 @@ -html,body -{ - background-color: #DEDEDE; - height: 90%; -} - -a -{ - color: #000000; - text-decoration: none; -} - -a:hover -{ - text-decoration: underline; -} - -.nav -{ - color: #FFFFFF; - text-decoration: none; -} - -.nav:hover -{ - text-decoration: underline; -} - -#mainTable -{ - border: solid 1px #000000; - width: 798px; - height: 90%; - min-height: 100%; - padding: 0px; - border-collapse: collapse; - margin-left: auto; - margin-right: auto; - background-color: #FFFFFF; -} - -#header -{ - background-image: url('images/background.jpg'); - background-repeat: no-repeat; - height: 64px; - line-height: 60px; - text-align: left; - color: #FFFFFF; - font-family: - Verdana, Arial, Helvetica, sans-serif; - font-size: 36px; - font-weight: bold; - font-style: italic; - padding-left: 10px -} - -#navigation -{ - float: left; - width: 150px; - background-color: #000000; - height: 100% -} - -#navigationContent -{ - color: #FFFFFF; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: bold; - font-style: italic; - margin-left: 25px; - white-space: nowrap; - margin-top: 30px; -} - -#subnavigation -{ - background-color: #DEDEDE; - height: 19px; - background-image: url('images/corner.png'); - position: relative; - left: -3px; - background-repeat: no-repeat; - background-position: left top; - line-height: 19px -} - -#logout -{ - text-align: right; - padding-right: 10px; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 11px; -} - -#content -{ - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 11px; - float: left; - padding: 10px; - padding-top: 10px; - width: 625px; -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.skin b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.skin deleted file mode 100644 index 955ce708..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.skin +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/background.jpg b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/background.jpg deleted file mode 100644 index a5cf8d82..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/background.jpg and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/corner.png b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/corner.png deleted file mode 100644 index b14943dc..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/corner.png and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx deleted file mode 100644 index 7ed6a6a0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx +++ /dev/null @@ -1,5 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" title="Project Tracker" %> - - Welcome to the Project Tracker system. - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx.cs deleted file mode 100644 index 3754b167..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class _Default : System.Web.UI.Page -{ - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Global.asax b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Global.asax deleted file mode 100644 index ba5c2c75..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Global.asax +++ /dev/null @@ -1,74 +0,0 @@ -<%@ Application Language="C#" %> - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx deleted file mode 100644 index 66847230..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx +++ /dev/null @@ -1,8 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Login.aspx.cs" Inherits="Login" title="Login" %> - -
    -
    - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx.cs deleted file mode 100644 index fbe33966..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class Login : System.Web.UI.Page -{ - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master deleted file mode 100644 index 79b1148a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master +++ /dev/null @@ -1,43 +0,0 @@ -<%@ Master Language="C#" CodeFile="MasterPage.master.cs" - Inherits="MasterPage" %> - - - - Untitled Page - - - -
    -
    - - - -
    - - -
    -
    - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master.cs deleted file mode 100644 index 725f76ab..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class MasterPage : System.Web.UI.MasterPage -{ - //protected void Page_Init(object sender, EventArgs e) - //{ - // if (Csla.ApplicationContext.AuthenticationType != "Windows") - // PTSecurity.ReloadPrincipal(); - //} - - protected void Page_Load(object sender, EventArgs e) - { - PageTitle.Text = Page.Title; - } - - protected void LoginStatus1_LoggingOut( - object sender, LoginCancelEventArgs e) - { - ProjectTracker.Library.Security.PTPrincipal.Logout(); - Session["CslaPrincipal"] = - Csla.ApplicationContext.User; - System.Web.Security.FormsAuthentication.SignOut(); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx deleted file mode 100644 index 93562fd3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx +++ /dev/null @@ -1,101 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" - CodeFile="ProjectEdit.aspx.cs" Inherits="ProjectEdit" Title="Project Information" %> - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    
    - - - - - - - - - - - - - - - - - - - Add resource
    -
    -   -
    - - Pick resource:
    - - - - - - - Cancel
    - - -
    -
    -
    -   - - - - - -
    -
    -
    -   -
    diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx.cs deleted file mode 100644 index dda43b8c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx.cs +++ /dev/null @@ -1,293 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ProjectEdit : System.Web.UI.Page -{ - - private enum Views - { - MainView = 0, - AssignView = 1 - } - - protected void Page_Load(object sender, EventArgs e) - { - if (!Page.IsPostBack) - { - ApplyAuthorizationRules(); - } - else - this.ErrorLabel.Text = string.Empty; - } - - private void ApplyAuthorizationRules() - { - Project obj = GetProject(); - // project display - if (Project.CanEditObject()) - { - if (obj.IsNew) - this.DetailsView1.DefaultMode = DetailsViewMode.Insert; - else - this.DetailsView1.DefaultMode = DetailsViewMode.Edit; - this.AddResourceButton.Visible = !obj.IsNew; - } - else - { - this.DetailsView1.DefaultMode = DetailsViewMode.ReadOnly; - this.AddResourceButton.Visible = false; - } - this.DetailsView1.Rows[ - this.DetailsView1.Rows.Count - 1].Visible = - Project.CanEditObject(); - - // resource display - this.GridView1.Columns[ - this.GridView1.Columns.Count - 1].Visible = - Project.CanEditObject(); - } - - #region Project DetailsView - - protected void DetailsView1_ItemCreated(object sender, EventArgs e) - { - if (DetailsView1.DefaultMode == DetailsViewMode.Insert) - { - Project obj = GetProject(); - ((TextBox)DetailsView1.Rows[1].Cells[1].Controls[0]).Text = obj.Name; - ((TextBox)DetailsView1.Rows[2].Cells[1].Controls[0]).Text = obj.Started; - ((TextBox)DetailsView1.Rows[3].Cells[1].Controls[0]).Text = obj.Ended; - ((TextBox)DetailsView1.FindControl("TextBox1")).Text = obj.Description; - } - } - - protected void DetailsView1_ItemInserted( - object sender, DetailsViewInsertedEventArgs e) - { - Project project = GetProject(); - if (!project.IsNew) - Response.Redirect("ProjectEdit.aspx?id=" + project.Id.ToString()); - } - - protected void DetailsView1_ItemUpdated( - object sender, DetailsViewUpdatedEventArgs e) - { - ApplyAuthorizationRules(); - } - - protected void DetailsView1_ItemDeleted( - object sender, DetailsViewDeletedEventArgs e) - { - Response.Redirect("ProjectList.aspx"); - } - - #endregion - - #region Resource Grid - - protected void AddResourceButton_Click( - object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = - (int)Views.AssignView; - } - - protected void GridView2_SelectedIndexChanged( - object sender, EventArgs e) - { - Project obj = GetProject(); - try - { - obj.Resources.Assign(int.Parse( - this.GridView2.SelectedDataKey.Value.ToString())); - if (SaveProject(obj) > 0) - { - this.GridView1.DataBind(); - this.MultiView1.ActiveViewIndex = (int)Views.MainView; - } - } - catch (InvalidOperationException ex) - { - ErrorLabel.Text = ex.Message; - } - } - - protected void CancelAssignButton_Click( - object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = - (int)Views.MainView; - } - - #endregion - - #region ProjectDataSource - - protected void ProjectDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - Project.DeleteProject(new Guid(e.Keys["Id"].ToString())); - Session["currentObject"] = null; - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void ProjectDataSource_InsertObject( - object sender, Csla.Web.InsertObjectArgs e) - { - Project obj = GetProject(); - Csla.Data.DataMapper.Map(e.Values, obj, "Id"); - e.RowsAffected = SaveProject(obj); - } - - protected void ProjectDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetProject(); - } - - protected void ProjectDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e) - { - Project obj = GetProject(); - Csla.Data.DataMapper.Map(e.Values, obj); - e.RowsAffected = SaveProject(obj); - } - - #endregion - - #region ResourcesDataSource - - protected void ResourcesDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - Project obj = GetProject(); - int rid = int.Parse(e.Keys["ResourceId"].ToString()); - obj.Resources.Remove(rid); - e.RowsAffected = SaveProject(obj); - } - - protected void ResourcesDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - Project obj = GetProject(); - e.BusinessObject = obj.Resources; - } - - protected void ResourcesDataSource_UpdateObject( - object sender, Csla.Web.UpdateObjectArgs e) - { - Project obj = GetProject(); - int rid = int.Parse(e.Keys["ResourceId"].ToString()); - ProjectResource res = - obj.Resources.GetItem(rid); - Csla.Data.DataMapper.Map(e.Values, res); - e.RowsAffected = SaveProject(obj); - } - - #endregion - - #region ResourceListDataSource - - protected void ResourceListDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = - ProjectTracker.Library.ResourceList.GetResourceList(); - } - - #endregion - - #region RoleListDataSource - - protected void RoleListDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = RoleList.GetList(); - } - - #endregion - - private Project GetProject() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is Project)) - { - try - { - string idString = Request.QueryString["id"]; - if (!string.IsNullOrEmpty(idString)) - { - Guid id = new Guid(idString); - businessObject = Project.GetProject(id); - } - else - businessObject = Project.NewProject(); - Session["currentObject"] = businessObject; - } - catch (System.Security.SecurityException) - { - Response.Redirect("ProjectList.aspx"); - } - } - return (Project)businessObject; - } - - private int SaveProject(Project project) - { - int rowsAffected; - try - { - Session["currentObject"] = project.Save(); - rowsAffected = 1; - } - catch (Csla.Validation.ValidationException ex) - { - System.Text.StringBuilder message = new System.Text.StringBuilder(); - message.AppendFormat("{0}
    ", ex.Message); - if (project.BrokenRulesCollection.Count == 1) - message.AppendFormat("* {0}: {1}", - project.BrokenRulesCollection[0].Property, - project.BrokenRulesCollection[0].Description); - else - foreach (Csla.Validation.BrokenRule rule in project.BrokenRulesCollection) - message.AppendFormat("* {0}: {1}
    ", rule.Property, rule.Description); - this.ErrorLabel.Text = message.ToString(); - rowsAffected = 0; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - rowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - rowsAffected = 0; - } - return rowsAffected; - } - -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx deleted file mode 100644 index 7a8a467b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx +++ /dev/null @@ -1,34 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" - CodeFile="ProjectList.aspx.cs" Inherits="ProjectList" Title="Project List" %> - - -
    - Projects:
    -
    - - - - - - - - New project -
    -
    - - - -
    -
    -
    diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx.cs deleted file mode 100644 index 4d47189e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ProjectList : System.Web.UI.Page -{ - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - ErrorLabel.Text = string.Empty; - } - - private void ApplyAuthorizationRules() - { - this.GridView1.Columns[ - this.GridView1.Columns.Count - 1].Visible = - Project.CanDeleteObject(); - NewProjectButton.Visible = - ProjectTracker.Library.Project.CanAddObject(); - } - - #region GridView1 - - protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e) - { - Session["currentObject"] = null; - GridView1.DataBind(); - } - - protected void NewProjectButton_Click(object sender, EventArgs e) - { - // allow user to add a new project - Response.Redirect("ProjectEdit.aspx"); - } - - #endregion - - #region ProjectListDataSource - - protected void ProjectListDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - ProjectTracker.Library.Project.DeleteProject( - new Guid(e.Keys["Id"].ToString())); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void ProjectListDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetProjectList(); - } - - #endregion - - private ProjectTracker.Library.ProjectList GetProjectList() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is ProjectTracker.Library.ProjectList)) - { - businessObject = - ProjectTracker.Library.ProjectList.GetProjectList(); - Session["currentObject"] = businessObject; - } - return (ProjectTracker.Library.ProjectList)businessObject; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx deleted file mode 100644 index 8048b28f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx +++ /dev/null @@ -1,66 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ResourceEdit.aspx.cs" Inherits="ResourceEdit" title="Resource Information" %> - -
    - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - Assign to project
    - - - - - - - - Cancel -
    -
    - - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx.cs deleted file mode 100644 index 5cb8eee5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx.cs +++ /dev/null @@ -1,246 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ResourceEdit : System.Web.UI.Page -{ - - private enum Views - { - MainView = 0, - AssignView = 1 - } - - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - this.ErrorLabel.Text = ""; - } - - private void ApplyAuthorizationRules() - { - Resource obj = GetResource(); - // Resource display - if (Resource.CanEditObject()) - { - if (obj.IsNew) - this.DetailsView1.DefaultMode = DetailsViewMode.Insert; - else - this.DetailsView1.DefaultMode = DetailsViewMode.Edit; - this.AssignProjectButton.Visible = !obj.IsNew; - } - else - { - this.DetailsView1.DefaultMode = DetailsViewMode.ReadOnly; - this.AssignProjectButton.Visible = false; - } - this.DetailsView1.Rows[this.DetailsView1.Rows.Count - 1].Visible = Resource.CanEditObject(); - - // resources display - this.GridView1.Columns[this.GridView1.Columns.Count - 1].Visible = Resource.CanEditObject(); - } - - #region DetailsView - - protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e) - { - Resource resource = GetResource(); - if (!resource.IsNew) - Response.Redirect("ResourceEdit.aspx?id=" + resource.Id.ToString()); - } - - protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e) - { - ApplyAuthorizationRules(); - } - - protected void DetailsView1_ItemDeleted(object sender, DetailsViewDeletedEventArgs e) - { - Response.Redirect("ResourceList.aspx"); - } - - #endregion - - #region Project Grid - - protected void AssignProjectButton_Click(object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = (int)Views.AssignView; - } - - protected void GridView2_SelectedIndexChanged(object sender, EventArgs e) - { - Resource obj = GetResource(); - try - { - obj.Assignments.AssignTo(new Guid(this.GridView2.SelectedDataKey.Value.ToString())); - if (SaveResource(obj) > 0) - { - this.GridView1.DataBind(); - this.MultiView1.ActiveViewIndex = (int)Views.MainView; - } - } - catch (InvalidOperationException ex) - { - ErrorLabel.Text = ex.Message; - } - } - - protected void CancelAssignButton_Click(object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = (int)Views.MainView; - } - - #endregion - - #region RoleListDataSource - - protected void RoleListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = RoleList.GetList(); - } - - #endregion - - #region ResourceDataSource - - protected void ResourceDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e) - { - Resource.DeleteResource(int.Parse(e.Keys["Id"].ToString())); - Session.Remove("currentObject"); - e.RowsAffected = 1; - } - - protected void ResourceDataSource_InsertObject(object sender, Csla.Web.InsertObjectArgs e) - { - Resource obj = Resource.NewResource(); - Csla.Data.DataMapper.Map(e.Values, obj, "Id"); - e.RowsAffected = SaveResource(obj); - } - - protected void ResourceDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetResource(); - } - - protected void ResourceDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e) - { - Resource obj = GetResource(); - Csla.Data.DataMapper.Map(e.Values, obj); - e.RowsAffected = SaveResource(obj); - } - - #endregion - - #region AssignmentsDataSource - - protected void AssignmentsDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e) - { - Resource obj = GetResource(); - Guid rid = new Guid(e.Keys["ProjectId"].ToString()); - obj.Assignments.Remove(rid); - e.RowsAffected = SaveResource(obj); - } - - protected void AssignmentsDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - Resource obj = GetResource(); - e.BusinessObject = obj.Assignments; - } - - protected void AssignmentsDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e) - { - Resource obj = GetResource(); - ResourceAssignment res; - Guid rid = new Guid(e.Keys["ProjectId"].ToString()); - res = obj.Assignments[rid]; - Csla.Data.DataMapper.Map(e.Values, res); - e.RowsAffected = SaveResource(obj); - } - - #endregion - - #region ProjectListDataSource - - protected void ProjectListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = ProjectTracker.Library.ProjectList.GetProjectList(); - } - - #endregion - - private Resource GetResource() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is Resource)) - { - try - { - string idString = Request.QueryString["id"]; - if (!string.IsNullOrEmpty(idString)) - { - int id = Int32.Parse(idString); - businessObject = Resource.GetResource(id); - } - else - businessObject = Resource.NewResource(); - Session["currentObject"] = businessObject; - } - catch (System.Security.SecurityException) - { - Response.Redirect("ResourceList.aspx"); - } - } - return (Resource)businessObject; - } - - private int SaveResource(Resource resource) - { - int rowsAffected; - try - { - Session["currentObject"] = resource.Save(); - rowsAffected = 1; - } - catch (Csla.Validation.ValidationException ex) - { - System.Text.StringBuilder message = new System.Text.StringBuilder(); - message.AppendFormat("{0}
    ", ex.Message); - if (resource.BrokenRulesCollection.Count == 1) - message.AppendFormat("* {0}: {1}", - resource.BrokenRulesCollection[0].Property, - resource.BrokenRulesCollection[0].Description); - else - foreach (Csla.Validation.BrokenRule rule in resource.BrokenRulesCollection) - message.AppendFormat("* {0}: {1}
    ", rule.Property, rule.Description); - this.ErrorLabel.Text = message.ToString(); - rowsAffected = 0; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - rowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - rowsAffected = 0; - } - return rowsAffected; - } - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx deleted file mode 100644 index 1d3acb48..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx +++ /dev/null @@ -1,21 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ResourceList.aspx.cs" Inherits="ResourceList" title="Resource List" %> - -
    - Resources:
    - - - - - - - - - New resource
    -
    - - - -  
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx.cs deleted file mode 100644 index ced207ba..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ResourceList : System.Web.UI.Page -{ - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - ErrorLabel.Text = string.Empty; - } - - private void ApplyAuthorizationRules() - { - this.GridView1.Columns[this.GridView1.Columns.Count - 1].Visible = Resource.CanDeleteObject(); - NewResourceButton.Visible = Resource.CanAddObject(); - } - - #region GridView1 - - protected void NewResourceButton_Click(object sender, EventArgs e) - { - Response.Redirect("ResourceEdit.aspx"); - } - - protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e) - { - Session["currentObject"] = null; - GridView1.DataBind(); - } - - #endregion - - #region ResourceListDataSource - - protected void ResourceListDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - Resource.DeleteResource(int.Parse(e.Keys["Id"].ToString())); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void ResourceListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetResourceList(); - } - - #endregion - - private ProjectTracker.Library.ResourceList GetResourceList() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is ProjectTracker.Library.ResourceList)) - { - businessObject = - ProjectTracker.Library.ResourceList.GetResourceList(); - Session["currentObject"] = businessObject; - } - return (ProjectTracker.Library.ResourceList)businessObject; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx deleted file mode 100644 index 49876187..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx +++ /dev/null @@ -1,49 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" - CodeFile="RolesEdit.aspx.cs" Inherits="RolesEdit" Title="Project Roles" %> - - -
    - - - - - - - - - - Add role
    -
    - - - - - - - - - -
    -
    -    - - -
    -
    diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx.cs deleted file mode 100644 index 1fa09f9c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class RolesEdit : System.Web.UI.Page -{ - private enum Views - { - MainView = 0, - InsertView = 1 - } - - - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - this.ErrorLabel.Text = ""; - } - - private void ApplyAuthorizationRules() - { - this.GridView1.Columns[ - this.GridView1.Columns.Count - 1].Visible = - ProjectTracker.Library.Admin.Roles.CanEditObject(); - this.AddRoleButton.Visible = - ProjectTracker.Library.Admin.Roles.CanAddObject(); - } - - protected void AddRoleButton_Click(object sender, EventArgs e) - { - this.DetailsView1.DefaultMode = DetailsViewMode.Insert; - MultiView1.ActiveViewIndex = (int)Views.InsertView; - } - - protected void DetailsView1_ItemInserted( - object sender, DetailsViewInsertedEventArgs e) - { - MultiView1.ActiveViewIndex = (int)Views.MainView; - this.GridView1.DataBind(); - } - - protected void DetailsView1_ModeChanged( - object sender, EventArgs e) - { - MultiView1.ActiveViewIndex = (int)Views.MainView; - } - - private ProjectTracker.Library.Admin.Roles GetRoles() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is ProjectTracker.Library.Admin.Roles)) - { - businessObject = - ProjectTracker.Library.Admin.Roles.GetRoles(); - Session["currentObject"] = businessObject; - } - return (ProjectTracker.Library.Admin.Roles)businessObject; - } - - #region RolesDataSource - - protected void RolesDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - int id = (int)e.Keys["Id"]; - obj.Remove(id); - Session["currentObject"] = obj.Save(); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void RolesDataSource_InsertObject( - object sender, Csla.Web.InsertObjectArgs e) - { - try - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - ProjectTracker.Library.Admin.Role role = obj.AddNew(); - Csla.Data.DataMapper.Map(e.Values, role); - Session["currentObject"] = obj.Save(); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void RolesDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - e.BusinessObject = obj; - } - - protected void RolesDataSource_UpdateObject( - object sender, Csla.Web.UpdateObjectArgs e) - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - try - { - ProjectTracker.Library.Admin.Role role = - obj.GetRoleById(int.Parse(e.Keys["Id"].ToString())); - role.Name = e.Values["Name"].ToString(); - Session["currentObject"] = obj.Save(); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - #endregion - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Web.sitemap b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Web.sitemap deleted file mode 100644 index 3196b3e4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Web.sitemap +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/web.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/web.config deleted file mode 100644 index 516171e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/web.config +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/CslaCredentials.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/CslaCredentials.cs deleted file mode 100644 index 326c4007..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/CslaCredentials.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using System.Web.Services.Protocols; - -public class CslaCredentials : SoapHeader -{ - public string Username; - public string Password; -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/PTService.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/PTService.cs deleted file mode 100644 index 544fbd93..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/PTService.cs +++ /dev/null @@ -1,300 +0,0 @@ -using System; -using System.Web; -using System.Collections; -using System.Collections.Generic; -using System.Web.Services; -using System.Web.Services.Protocols; -using ProjectTracker.Library; - - -/// -/// Web Service interface for the ProjectTracker application. -/// -[WebService(Namespace = "http://ws.lhotka.net/")] -[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] -public class PTService : System.Web.Services.WebService -{ - - /// - /// Credentials for custom authentication. - /// - public CslaCredentials Credentials = new CslaCredentials(); - - #region Projects - - [WebMethod(Description="Get a list of projects")] - public ProjectData[] GetProjectList() - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - ProjectList list = ProjectList.GetProjectList(); - List result = new List(); - foreach (ProjectInfo item in list) - { - ProjectData info = new ProjectData(); - Csla.Data.DataMapper.Map(item, info); - result.Add(info); - } - return result.ToArray(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Get a project")] - public ProjectData GetProject(ProjectRequest request) - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - Project proj = Project.GetProject(request.Id); - ProjectData result = new ProjectData(); - Csla.Data.DataMapper.Map(proj, result, "Resources"); - foreach (ProjectResource resource in proj.Resources) - { - ProjectResourceData info = new ProjectResourceData(); - Csla.Data.DataMapper.Map(resource, info, "FullName"); - result.AddResource(info); - } - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Add a project")] - [SoapHeader("Credentials")] - public ProjectData AddProject( - string name, string started, string ended, string description) - { - // user credentials required - Security.Login(Credentials); - - try - { - Project proj = Project.NewProject(); - proj.Name = name; - proj.Started = started; - proj.Ended = ended; - proj.Description = description; - proj = proj.Save(); - - ProjectData result = new ProjectData(); - Csla.Data.DataMapper.Map(proj, result, "Resources"); - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description = "Edit a project")] - [SoapHeader("Credentials")] - public ProjectData EditProject(Guid id, string name, - string started, string ended, - string description) - { - // user credentials required - Security.Login(Credentials); - - try - { - Project proj = Project.GetProject(id); - proj.Name = name; - proj.Started = started; - proj.Ended = ended; - proj.Description = description; - proj = proj.Save(); - - ProjectData result = new ProjectData(); - Csla.Data.DataMapper.Map(proj, result, "Resources"); - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion - - #region Resources - - [WebMethod(Description="Get a list of resources")] - public ResourceData[] GetResourceList() - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - ResourceList list = ResourceList.GetResourceList(); - List result = new List(); - foreach (ProjectTracker.Library.ResourceInfo item in list) - { - ResourceData info = - new ResourceData(); - Csla.Data.DataMapper.Map(item, info); - result.Add(info); - } - return result.ToArray(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Get a resource")] - public ResourceData GetResource(ResourceRequest request) - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - Resource res = Resource.GetResource(request.Id); - ResourceData result = new ResourceData(); - result.Id = res.Id; - result.Name = res.FullName; - foreach (ResourceAssignment resource in res.Assignments) - { - ResourceAssignmentData info = new ResourceAssignmentData(); - Csla.Data.DataMapper.Map(resource, info); - result.AddProject(info); - } - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Change a resource's name")] - [SoapHeader("Credentials")] - public ResourceData ChangeResourceName(int id, - string firstName, string lastName) - { - // user credentials required. - Security.Login(Credentials); - - try - { - Resource res = Resource.GetResource(id); - res.FirstName = firstName; - res.LastName = lastName; - res = res.Save(); - - ResourceData result = new ResourceData(); - result.Id = res.Id; - result.Name = string.Format("{1}, {0}", res.FirstName, res.LastName); - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion - - #region Assign Resource to Project - - [WebMethod(Description="Assign resource to a project")] - [SoapHeader("Credentials")] - public void AssignResource(int resourceId, Guid projectId) - { - // user credentials required - Security.Login(Credentials); - - try - { - Resource res = Resource.GetResource(resourceId); - res.Assignments.AssignTo(projectId); - res.Save(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion - - #region Roles - - [WebMethod(Description="Get a list of roles")] - public RoleInfo[] GetRoles() - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - RoleList list = RoleList.GetList(); - List result = new List(); - foreach (RoleList.NameValuePair role in list) - { - RoleInfo info = new RoleInfo(); - info.Id = role.Key; - info.Name = role.Value; - result.Add(info); - } - return result.ToArray(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectData.cs deleted file mode 100644 index f49cf699..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectData.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; - -public class ProjectData -{ - private Guid _id; - private string _name; - private string _started; - private string _ended; - private string _description; - private List - _resources = new List(); - - public Guid Id - { - get { return _id; } - set { _id = value; } - } - - public string Name - { - get { return _name; } - set { _name = value; } - } - - public string Started - { - get { return _started; } - set { _started = value; } - } - - public string Ended - { - get { return _ended; } - set { _ended = value; } - } - - public string Description - { - get { return _description; } - set { _description = value; } - } - - public void AddResource(ProjectResourceData resource) - { - _resources.Add(resource); - } - - public ProjectResourceData[] ProjectResources - { - get - { - if (_resources.Count > 0) - return _resources.ToArray(); - return null; - } - set - { - _resources = new List(value); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectRequest.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectRequest.cs deleted file mode 100644 index c98e120c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectRequest.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public class ProjectRequest -{ - private Guid _id; - - public Guid Id - { - get { return _id; } - set { _id = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectResourceData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectResourceData.cs deleted file mode 100644 index ff9ec4d9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectResourceData.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; - -public class ProjectResourceData -{ - private int _resourceId; - private string _firstName; - private string _lastName; - private string _assigned; - private int _role; - - public int ResourceId - { - get { return _resourceId; } - set { _resourceId = value; } - } - - public string FirstName - { - get { return _firstName; } - set { _firstName = value; } - } - - public string LastName - { - get { return _lastName; } - set { _lastName = value; } - } - - public string Assigned - { - get { return _assigned; } - set { _assigned = value; } - } - - public int Role - { - get { return _role; } - set { _role = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceAssignmentData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceAssignmentData.cs deleted file mode 100644 index 8f76d297..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceAssignmentData.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; - -public class ResourceAssignmentData -{ - private Guid _projectId; - private string _projectName; - private string _assigned; - private int _role; - - public Guid ProjectId - { - get { return _projectId; } - set { _projectId = value; } - } - - public string ProjectName - { - get { return _projectName; } - set { _projectName = value; } - } - - public string Assigned - { - get { return _assigned; } - set { _assigned = value; } - } - - public int Role - { - get { return _role; } - set { _role = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceData.cs deleted file mode 100644 index dabfaa1b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceData.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; - -public class ResourceData -{ - private int _id; - private string _name; - private List _projects = new List(); - - public int Id - { - get { return _id; } - set { _id = value; } - } - - public string Name - { - get { return _name; } - set { _name = value; } - } - - public void AddProject(ResourceAssignmentData project) - { - _projects.Add(project); - } - - public ResourceAssignmentData[] ResourceAssignments - { - get - { - if (_projects.Count > 0) - return _projects.ToArray(); - return null; - } - set - { - _projects = new List(value); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceRequest.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceRequest.cs deleted file mode 100644 index 774d7174..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceRequest.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public class ResourceRequest -{ - private int _id; - - public int Id - { - get { return _id; } - set { _id = value; } - } - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/RoleInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/RoleInfo.cs deleted file mode 100644 index a396665f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/RoleInfo.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; - -public class RoleInfo -{ - private int _id; - private string _name; - - public int Id - { - get { return _id; } - set { _id = value; } - } - - public string Name - { - get { return _name; } - set { _name = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/Security.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/Security.cs deleted file mode 100644 index 90fab5e2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/Security.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Web; -using System.Security.Principal; -using ProjectTracker.Library.Security; - -public static class Security -{ - public static void UseAnonymous() - { - // setting an unauthenticated principal when running - // under the VShost causes serialization issues - // and isn't strictly necessary anyway - if (UrlIsHostedByVS(HttpContext.Current.Request.Url)) - return; - ProjectTracker.Library.Security.PTPrincipal.Logout(); - } - - public static void Login(CslaCredentials credentials) - { - if (string.IsNullOrEmpty(credentials.Username)) - throw new System.Security.SecurityException( - "Valid credentials not provided"); - - // set to unauthenticated principal - PTPrincipal.Logout(); - - PTPrincipal.Login(credentials.Username, credentials.Password); - - if (!Csla.ApplicationContext.User.Identity.IsAuthenticated) - { - // the user is not valid, raise an error - throw - new System.Security.SecurityException( - "Invalid user or password"); - } - } - - public static bool UrlIsHostedByVS(Uri uri) - { - if (uri.Port >= 1024 && string.Compare(uri.Host, "localhost", StringComparison.OrdinalIgnoreCase) == 0) - return true; - return false; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/PTService.asmx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/PTService.asmx deleted file mode 100644 index 1cf6b86b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/PTService.asmx +++ /dev/null @@ -1 +0,0 @@ -<%@ WebService Language="C#" CodeBehind="~/App_Code/PTService.cs" Class="PTService" %> diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/Web.Config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/Web.Config deleted file mode 100644 index ca6d4270..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/Web.Config +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/RemotingHost/Web.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/RemotingHost/Web.config deleted file mode 100644 index aa186546..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/RemotingHost/Web.config +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/Web.Config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/Web.Config deleted file mode 100644 index 093b399b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/Web.Config +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/WebServicePortal.asmx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/WebServicePortal.asmx deleted file mode 100644 index 5a3a2f9b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/WebServicePortal.asmx +++ /dev/null @@ -1 +0,0 @@ -<%@ WebService Language="C#" Class="Csla.Server.Hosts.WebServicePortal" %>