From e1651383e25df3819f4aef2a67fd513c43d29744 Mon Sep 17 00:00:00 2001 From: "CHEN-ZW\\acer" Date: Fri, 15 Aug 2025 11:55:13 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=99=A8=E5=89=8D=E7=AB=AF=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.vs/CAD.Extend.csproj.dtbcache.json | 1 + newFront/c#前端/CAD.Extend/CAD.Extend.csproj | 189 ++++++++++++++++ .../c#前端/CAD.Extend/CAD.Extend.csproj.user | 7 + newFront/c#前端/CAD.Extend/Commands.cs | 145 ++++++++++++ newFront/c#前端/CAD.Extend/GlobalObject.cs | 48 ++++ .../CAD.Extend/Properties/AssemblyInfo.cs | 33 +++ .../ViewModels/DialogConvertBaseMapViewModel.cs | 206 ++++++++++++++++++ newFront/c#前端/CAD.Extend/app.config | 15 ++ ...Framework,Version=v4.8.AssemblyAttributes.cs | 4 + .../CAD.Extend.csproj.AssemblyReference.cache | Bin 0 -> 32330 bytes .../CAD.Extend.csproj.FileListAbsolute.txt | 1 + ...signTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 5046 bytes newFront/c#前端/CAD.Extend/packages.config | 20 ++ 13 files changed, 669 insertions(+) create mode 100644 newFront/c#前端/CAD.Extend/.vs/CAD.Extend.csproj.dtbcache.json create mode 100644 newFront/c#前端/CAD.Extend/CAD.Extend.csproj create mode 100644 newFront/c#前端/CAD.Extend/CAD.Extend.csproj.user create mode 100644 newFront/c#前端/CAD.Extend/Commands.cs create mode 100644 newFront/c#前端/CAD.Extend/GlobalObject.cs create mode 100644 newFront/c#前端/CAD.Extend/Properties/AssemblyInfo.cs create mode 100644 newFront/c#前端/CAD.Extend/ViewModels/DialogConvertBaseMapViewModel.cs create mode 100644 newFront/c#前端/CAD.Extend/app.config create mode 100644 newFront/c#前端/CAD.Extend/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs create mode 100644 newFront/c#前端/CAD.Extend/obj/Debug/CAD.Extend.csproj.AssemblyReference.cache create mode 100644 newFront/c#前端/CAD.Extend/obj/Debug/CAD.Extend.csproj.FileListAbsolute.txt create mode 100644 newFront/c#前端/CAD.Extend/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 newFront/c#前端/CAD.Extend/packages.config diff --git a/newFront/c#前端/CAD.Extend/.vs/CAD.Extend.csproj.dtbcache.json b/newFront/c#前端/CAD.Extend/.vs/CAD.Extend.csproj.dtbcache.json new file mode 100644 index 00000000..f1669d77 --- /dev/null +++ b/newFront/c#前端/CAD.Extend/.vs/CAD.Extend.csproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"E:\\Di-Electrical\\c#前端\\CAD.Extend","ProjectFileName":"CAD.Extend.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Commands.cs"},{"SourceFile":"GlobalObject.cs"},{"SourceFile":"Model\\KeyValueModel.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"ViewModels\\DialogConvertBaseMapViewModel.cs"},{"SourceFile":"ViewModels\\myViewModelBase\\DialogBase.cs"},{"SourceFile":"Views\\CustomControl\\customWindowTitleBar.xaml.cs"},{"SourceFile":"Views\\CustomDialogWindow.xaml.cs"},{"SourceFile":"Views\\DialogConvertBaseMap.xaml.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\DryIoc.dll.5.4.3\\lib\\net45\\DryIoc.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Microsoft.Bcl.AsyncInterfaces.8.0.0\\lib\\net462\\Microsoft.Bcl.AsyncInterfaces.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.1\\lib\\net462\\Microsoft.Extensions.DependencyInjection.Abstractions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Microsoft.Xaml.Behaviors.Wpf.1.1.122\\lib\\net462\\Microsoft.Xaml.Behaviors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.Container.Abstractions.9.0.106\\lib\\net47\\Prism.Container.Abstractions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.Container.DryIoc.9.0.106\\lib\\net47\\Prism.Container.DryIoc.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.Container.Unity.9.0.106\\lib\\net462\\Prism.Container.Unity.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.Core.9.0.537\\lib\\net47\\Prism.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.DryIoc.9.0.537\\lib\\net47\\Prism.DryIoc.Wpf.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.Events.9.0.537\\lib\\net47\\Prism.Events.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.Unity.9.0.537\\lib\\net47\\Prism.Unity.Wpf.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Prism.Wpf.9.0.537\\lib\\net47\\Prism.Wpf.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD.Base\\bin\\Debug\\SWS.CAD.Base.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"E:\\Di-Electrical\\c#前端\\SWS.CAD.Base\\bin\\Debug\\SWS.CAD.Base.dll"},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\System.Runtime.CompilerServices.Unsafe.4.5.3\\lib\\net461\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\System.Threading.Tasks.Extensions.4.5.4\\lib\\net461\\System.Threading.Tasks.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\System.ValueTuple.4.5.0\\lib\\net47\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD\\RefDLL\\WPF45\\Telerik.Windows.Controls.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD\\RefDLL\\WPF45\\Telerik.Windows.Controls.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD\\RefDLL\\WPF45\\Telerik.Windows.Controls.FileDialogs.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD\\RefDLL\\WPF45\\Telerik.Windows.Controls.GridView.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD\\RefDLL\\WPF45\\Telerik.Windows.Controls.Input.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD\\RefDLL\\WPF45\\Telerik.Windows.Controls.Navigation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\SWS.CAD\\RefDLL\\WPF45\\Telerik.Windows.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Unity.Abstractions.5.11.7\\lib\\net48\\Unity.Abstractions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"E:\\Di-Electrical\\c#前端\\packages\\Unity.Container.5.11.11\\lib\\net48\\Unity.Container.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"E:\\Di-Electrical\\c#前端\\CAD.Extend\\bin\\Debug\\CAD.Extend.dll","OutputItemRelativePath":"CAD.Extend.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/newFront/c#前端/CAD.Extend/CAD.Extend.csproj b/newFront/c#前端/CAD.Extend/CAD.Extend.csproj new file mode 100644 index 00000000..37231d23 --- /dev/null +++ b/newFront/c#前端/CAD.Extend/CAD.Extend.csproj @@ -0,0 +1,189 @@ + + + + + Debug + AnyCPU + {8740B023-B585-4E69-8521-4F62FA754A1B} + Library + Properties + CAD.Extend + CAD.Extend + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\..\..\Program Files\KunHeng\KunHengCAD V21 zh_CN\BrxMgd.dll + + + ..\packages\DryIoc.dll.5.4.3\lib\net45\DryIoc.dll + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.1\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.122\lib\net462\Microsoft.Xaml.Behaviors.dll + + + + + ..\packages\Prism.Core.9.0.537\lib\net47\Prism.dll + + + ..\packages\Prism.Container.Abstractions.9.0.106\lib\net47\Prism.Container.Abstractions.dll + + + ..\packages\Prism.Container.DryIoc.9.0.106\lib\net47\Prism.Container.DryIoc.dll + + + ..\packages\Prism.Container.Unity.9.0.106\lib\net462\Prism.Container.Unity.dll + + + ..\packages\Prism.DryIoc.9.0.537\lib\net47\Prism.DryIoc.Wpf.dll + + + ..\packages\Prism.Events.9.0.537\lib\net47\Prism.Events.dll + + + ..\packages\Prism.Unity.9.0.537\lib\net47\Prism.Unity.Wpf.dll + + + ..\packages\Prism.Wpf.9.0.537\lib\net47\Prism.Wpf.dll + + + + + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + + + + + + + + + + + ..\..\..\..\..\Program Files\KunHeng\KunHengCAD V21 zh_CN\TD_Mgd.dll + + + False + ..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.dll + + + False + ..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.Data.dll + + + False + ..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.FileDialogs.dll + + + False + ..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.GridView.dll + + + False + ..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.Input.dll + + + False + ..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Controls.Navigation.dll + + + False + ..\SWS.CAD\RefDLL\WPF45\Telerik.Windows.Data.dll + + + ..\packages\Unity.Abstractions.5.11.7\lib\net48\Unity.Abstractions.dll + + + ..\packages\Unity.Container.5.11.11\lib\net48\Unity.Container.dll + + + + + + + + + + + + customWindowTitleBar.xaml + + + CustomDialogWindow.xaml + + + DialogConvertBaseMap.xaml + + + + + + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + + + + + + + {d4a15774-1469-45a0-9eff-771271764a00} + SWS.CAD.Base + + + + + + + \ No newline at end of file diff --git a/newFront/c#前端/CAD.Extend/CAD.Extend.csproj.user b/newFront/c#前端/CAD.Extend/CAD.Extend.csproj.user new file mode 100644 index 00000000..0a8cb176 --- /dev/null +++ b/newFront/c#前端/CAD.Extend/CAD.Extend.csproj.user @@ -0,0 +1,7 @@ + + + + Program + D:\Program Files\KunHeng\KunHengCAD V21 zh_CN\kunhengcad.exe + + \ No newline at end of file diff --git a/newFront/c#前端/CAD.Extend/Commands.cs b/newFront/c#前端/CAD.Extend/Commands.cs new file mode 100644 index 00000000..12c90eba --- /dev/null +++ b/newFront/c#前端/CAD.Extend/Commands.cs @@ -0,0 +1,145 @@ +using System; +using System.Linq; +using System.Windows.Forms; +using Bricscad.Ribbon; +using Bricscad.Windows; +using CAD.Extend; +using CAD.Extend.ViewModels; +using CAD.Extend.Views; +using Prism.Container.DryIoc; +using Prism.Dialogs; +using Prism.Ioc; +using SWS.CAD.Base; +using Teigha.Runtime; +using Telerik.Windows.Controls; +using Unity; +using Application = Bricscad.ApplicationServices.Application; + +[assembly: CommandClass(typeof(Commands))] +[assembly: ExtensionApplication(typeof(Commands))] +namespace CAD.Extend +{ + public partial class Commands : IExtensionApplication + { + + public void Initialize() + { + + try + { + AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; + if (RibbonServices.RibbonPaletteSet == null) + RibbonServices.CreateRibbonPaletteSet(); + + Register(); + + AddTab(); + } + catch (System.Exception e) + { + Application.ShowAlertDialog(" An exception occurred in Initialize():\n" + e.ToString()); + } + } + + private void Register() + { + + GlobalObject._prismContainer = new DryIocContainerExtension(); + GlobalObject._prismContainer.Register(); + GlobalObject._prismContainer.Register(); + GlobalObject._prismContainer.RegisterDialog(); + } + + private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + try + { + // 记录异常信息到日志文件,这里简单打印到控制台 + System.Exception ex = e.ExceptionObject as System.Exception; + Console.WriteLine($"发生未处理的异常: {ex.Message}"); + Console.WriteLine($"异常堆栈跟踪: {ex.StackTrace}"); + + // 关闭所有打开的对话框窗口 + + + // 提示用户发生了错误 + MessageBox.Show("发生错误,请检查日志文件以获取更多信息。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (System.Exception innerEx) + { + // 如果在处理异常时又发生了异常,简单打印信息 + Console.WriteLine($"处理异常时发生错误: {innerEx.Message}"); + } + } + + public void Terminate() + { + } + + void AddTab() + { + RibbonControl rbnCtrl = ComponentManager.Ribbon; //整个上面都是ribbon,比如莫工做的电气系统,就是ribbon中的一个tab + + if (rbnCtrl == null) return; + #region create Ribbon tab + RibbonTab tab1 = new RibbonTab(); + tab1.Title = "扩展功能"; + tab1.Id = "扩展功能"; + rbnCtrl.Tabs.Add(tab1);//一个就行了 + #endregion + + #region Ribbon 图层管理 + RibbonPanelSource dataSource = new RibbonPanelSource(); + dataSource.Title = "图层操作"; + dataSource.Id = "图层操作"; + RibbonPanel dataPanel = new RibbonPanel(); + dataPanel.Source = dataSource; + tab1.Panels.Add(dataPanel); + + //垂直排列按钮panel + RibbonRowPanel ribbonRowPanel = new RibbonRowPanel(); + + #region buttons 一键转底图 + RibbonButton btnSinalManage = new RibbonButton(); + btnSinalManage.ToolTip = "一键转底图"; + btnSinalManage.Text = "一键转底图"; + btnSinalManage.ButtonStyle = RibbonButtonStyle.SmallWithText; + btnSinalManage.CommandHandler = new DelegateCommand(x => + { + var listObjectId=General.GetSelectedObjectId(); + if (listObjectId==null||!listObjectId.Any()) + { + MessageBox.Show("请先选择图元!"); + return; + } + //打开窗体 + Prism.Dialogs.DialogParameters para = new Prism.Dialogs.DialogParameters(); + para.Add(GlobalObject.dialogPar.info.ToString(), listObjectId); + var _dialogService = GlobalObject._prismContainer.Resolve(); + _dialogService.ShowDialog(nameof(DialogConvertBaseMap), para, (RES) => + { + if (RES.Result == ButtonResult.Yes) + { + + } + else if (RES.Result == ButtonResult.No) + { } + }); + }); + btnSinalManage.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"CAD.Extend.Images.pic1.png"); + btnSinalManage.Id = "一键转底图"; + ribbonRowPanel.Items.Add(btnSinalManage); + ribbonRowPanel.Items.Add(new RibbonRowBreak());//换行,这样可以使按钮多行排列 + #endregion + dataSource.Items.Add(ribbonRowPanel); + #endregion + + } + + } +} + + + + + diff --git a/newFront/c#前端/CAD.Extend/GlobalObject.cs b/newFront/c#前端/CAD.Extend/GlobalObject.cs new file mode 100644 index 00000000..44e4c135 --- /dev/null +++ b/newFront/c#前端/CAD.Extend/GlobalObject.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media; +using Prism.Ioc; +using Unity; + +namespace CAD.Extend +{ + public class GlobalObject + { + public static IContainerExtension _prismContainer; + public enum dialogPar + { + info, + para1, + para2 + } + /// + /// 获取图片 + /// + /// 包括命名空间 + /// + public static System.Windows.Media.ImageSource ImageSourceFromEmbeddedResourceStream(string resName) + { + System.Reflection.Assembly assy = System.Reflection.Assembly.GetExecutingAssembly(); + //foreach (string resource in assy.GetManifestResourceNames()) + //{ + // Console.WriteLine(resource);//遍历所有的内嵌资源 + //} + System.IO.Stream stream = assy.GetManifestResourceStream(resName); + if (stream == null) + return null; + System.Windows.Media.Imaging.BitmapImage img = new System.Windows.Media.Imaging.BitmapImage(); + img.BeginInit(); + img.StreamSource = stream; + img.EndInit(); + return img; + } + + } +} diff --git a/newFront/c#前端/CAD.Extend/Properties/AssemblyInfo.cs b/newFront/c#前端/CAD.Extend/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..feb0fe8d --- /dev/null +++ b/newFront/c#前端/CAD.Extend/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("CAD.Extend")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CAD.Extend")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("8740b023-b585-4e69-8521-4f62fa754a1b")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/newFront/c#前端/CAD.Extend/ViewModels/DialogConvertBaseMapViewModel.cs b/newFront/c#前端/CAD.Extend/ViewModels/DialogConvertBaseMapViewModel.cs new file mode 100644 index 00000000..25e55cae --- /dev/null +++ b/newFront/c#前端/CAD.Extend/ViewModels/DialogConvertBaseMapViewModel.cs @@ -0,0 +1,206 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using Bricscad.Windows; +using CAD.Extend.Model; +using Prism.Commands; +using Prism.Dialogs; +using SWS.CAD.Base; +using Teigha.Colors; +using Teigha.DatabaseServices; +using Brush = System.Windows.Media.Brush; +using Color = System.Windows.Media.Color; + +namespace CAD.Extend.ViewModels +{ + public class DialogConvertBaseMapViewModel : DialogBase, IDialogAware + { + #region binding + private ObservableCollection _listLayerName = new ObservableCollection(); + /// + /// 底图名列表 + /// + public ObservableCollection listLayerName + { + get { return _listLayerName; } + set { _listLayerName = value; RaisePropertyChanged(nameof(listLayerName)); } + } + private KeyValueModel _SelectedLayerName; + /// + /// 选中的底图名 + /// + public KeyValueModel SelectedLayerName + { + get { return _SelectedLayerName; } + set { _SelectedLayerName = value; RaisePropertyChanged(nameof(SelectedLayerName)); } + } + private bool _IsToBlock; + /// + /// 是否转为图块 + /// + public bool IsToBlock + { + get { return _IsToBlock; } + set { _IsToBlock = value; RaisePropertyChanged(nameof(IsToBlock)); } + } + #endregion + + private string _BlockName = "EI-Elec专用底图"; + /// + /// 块名 + /// + public string BlockName + { + get { return _BlockName; } + set { _BlockName = value; RaisePropertyChanged(nameof(BlockName)); } + } + private Brush _BlockColor; + /// + /// 图层颜色 + /// + public Brush BlockColor + { + get { return _BlockColor; } + set { _BlockColor = value; RaisePropertyChanged(nameof(BlockColor)); } + } + + /// + /// 随机块名 + /// + public ICommand Command_BlockName { get; set; } + /// + /// 颜色 + /// + public ICommand Command_Color { get; set; } + /// + /// 图层颜色 默认灰色 + /// + Teigha.Colors.Color layerColor = Teigha.Colors.Color.FromColorIndex(ColorMethod.ByAci, 8); + List listObjectId = new List(); + string layerName = "EI-Elec专用底图图层"; + public DialogConvertBaseMapViewModel() + { + title = "背景底图设置"; + Command_BlockName = new DelegateCommand(onBlockName); + Command_Color = new DelegateCommand(onColor); + System.Drawing.Color winColor = layerColor.ColorValue; + var c = Color.FromArgb(winColor.A, winColor.R, winColor.G, winColor.B); + BlockColor = new SolidColorBrush(c); + } + /// + /// 颜色选择 + /// + public void onColor() + { + var list=General.GetTopLevelDictionaryNames(); + + ColorDialog dlg = new ColorDialog(); + + if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + layerColor = dlg.Color; + System.Drawing.Color winColor = dlg.Color.ColorValue; + var b = Color.FromArgb(winColor.A, winColor.R, winColor.G, winColor.B); + BlockColor = new SolidColorBrush(b); + } + } + /// + /// 随机块名 + /// + public void onBlockName() + { + var a = GetRndABC(); + Thread.Sleep(10); + var b = GetRndABC(); + Thread.Sleep(10); + var c = GetRndABC(); + BlockName = "EI-Elec图块" + a + b + c; + } + public string GetRndABC() + { + // a-z ASCII值 97-122 + // A-Z ASCII值 65-90 + int i = new Random().Next(65, 90); + char c = (char)i; + return c.ToString(); + } + + #region Dialog + + public DialogCloseListener RequestClose { get; } + + public bool CanCloseDialog() + { + return true; + } + + public void OnDialogClosed() + { + + } + + #endregion + + public void OnDialogOpened(IDialogParameters parameters) + { + listObjectId = parameters.GetValue>(GlobalObject.dialogPar.info.ToString()); + var list = General.GetAllLayerNames(); + foreach (var layerName in list) + { + if (layerName.Equals(layerName)) + { listLayerName.Insert(0, new KeyValueModel() { Key = layerName, Value = layerName }); } + else + { + listLayerName.Add(new KeyValueModel() { Key = layerName, Value = layerName }); + } + } + if (!listLayerName.Where(a => a.Key == layerName).Any()) + { listLayerName.Insert(0, new KeyValueModel() { Key = layerName, Value = layerName }); } + SelectedLayerName = listLayerName[0]; + } + public override void ExecuteOKCommandAsync(object para) + { + if (IsToBlock) + { + if (string.IsNullOrEmpty(BlockName)) + { + MessageBox.Show("块名不能为空!"); + return; + } + if (General.CheckHasBlockName(BlockName)) + { + MessageBox.Show("块名已存在,请更换块名!"); + return; + } + General.SetEntityToLayer(listObjectId, SelectedLayerName.Value, layerColor, BlockName); + } + else + { + General.SetEntityToLayer(listObjectId, SelectedLayerName.Value, layerColor); + } + MessageBox.Show("底图设置成功!"); + //Prism.Dialogs.DialogParameters resPara = new Prism.Dialogs.DialogParameters(); + //RequestClose.Invoke(resPara, ButtonResult.Yes); + } + public override void ExecuteCloseCommand(object parameter) + { + if (parameter as string == "ClickNo") + { + RequestClose.Invoke(ButtonResult.No); + } + else + { + RequestClose.Invoke(ButtonResult.Cancel); + } + this.Dispose(); + } + + } + + +} diff --git a/newFront/c#前端/CAD.Extend/app.config b/newFront/c#前端/CAD.Extend/app.config new file mode 100644 index 00000000..c5c88e05 --- /dev/null +++ b/newFront/c#前端/CAD.Extend/app.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/newFront/c#前端/CAD.Extend/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/newFront/c#前端/CAD.Extend/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 00000000..15efebfc --- /dev/null +++ b/newFront/c#前端/CAD.Extend/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/newFront/c#前端/CAD.Extend/obj/Debug/CAD.Extend.csproj.AssemblyReference.cache b/newFront/c#前端/CAD.Extend/obj/Debug/CAD.Extend.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..29871103956ac0d42614ed91c2d340486791fc4d GIT binary patch literal 32330 zcmeHQ33yY*7Ved@SV{|0kVSkf)lZaW>6#X*)V4rBpj6sY;H8u_xhbJp%1sK?qM(9` zK0riJK`@GIkwti}sGvmbfvxw%V{N$$PvTwe2dm#?uklRIb5 zob&(ZoSC`lL}{X;qNs}8EMpPls$xuzfun48+CA{9xrX$i#)-6*W@x9G9+=~H(~e5J zjdmNy+sus1?Xr4|qdPHrb8lAMOHBKEUi|XpQZH^N6U$$<;2kjilYVMXpuOgwFbNPZ(fwuyXl$y)hicmt{$^z)mF{+ zn$g2bF4=qk*(J`Y(c_PA`LurJdz02R*Z-Di`)Pz{+2p$Bm?cG9DL5aW?YO2X{@|P$ zQ~^7%VFM@8jN9gNW+P>5bi)Sb*4jO_44v(yYdws~K5Sr7Eiec3Sh}vnRZTmyE!IkF za-}6rXEj?hGSUs;u2B>mFPMieoGnmr7H}5@X98ZxP@<4fFWhLH)Hn6>#r*#Ucj{VP z=l0MJO|FZf+jui{Tag`7R5w2>Mz@ES^Ox@ev*ngysl0n=t~c8?Iqo{Axxne68LP=m zyEO)2_B!5p(~|{n!Zzo9=X-CT!5<@|9uT$zq&YY=?!w!8y#iYg+aEh1-u%;(wc(q? z0ePWp5^gc}_FentmaIvA`T2gs`$T;?{LkmMoyv^zME6R6^7y_Z^DCkc#xI&x`qaHk z8-{+@(&OOvjl-Xe`}4_H*AKSOT#^wp?)?tGC5)+dzA|{qq9+WaFL(YrYyZ8EnMOpt z_y>LXvIC#*YyR1++w1*X&TXX+_x~|*|IkZ!AL)7g@tl;b0UeLLcIXl)DORi5l5DY9()3Uxd3Y;?mSAYR%aw^>bj?nL{bLsKUrQ|le)3xL+elh7NWRf(&02JKG&l!0~1gb!A z7rlU0Ikkaml{YF71bL|*@1;s^BiDO>&Kep$;pq=Y?%g&hYen=p+ zzubB8Woz%a`p|Zy_>C{s8HOI)G@Y8;s>uuVYP~cEnk8JQ`D5ifWe#HSZNF{YgZEy(b@(@{k2D>9{n+Y5={*NsbWc}i#JL44 z=kNMrPWNTIJI|Rg^h9#py(c@K`s&1>osa)`;*7;OE_TK18y>u>ymD9rJ#4@qhqFE9 zuB7HOH&5FfziUZSVDA$x?0`tNKs;YQ5R6oKF*iGPtb3a_T+=&eU+I*kxMGWnxogNe9 zT*a}seurVw#`MB8I0|IlFpw{^IW4X^?(0o%Wq~~IX1&DX@oA`{QR8kK;|rfA6PStf zowx)9T~#V1_+q6)n~+ZQ?J7&bPrbA#1u{6Gh_SiZR8x})AR;X#gGc-fP%eRQ^60*A zR*wgEB6RPF-k~n``D|Yh`Z`YekQ+LHU(MkL1yCL=4iDTJT0tBy>{ueZT9*2J-w)TX z%RBIzabMH)n;SYW-1~ZBZvXY^j}%Tg^^xby4bROouj z-zm@3UwO|R%?Hkn9Q#Q@-_Cy>Ik(l}p8sg$l**W4JFdFu*PK412h5AxIDF;a-gC1* zcxla=ezAw??{C_U+)tT)QE&zI z=jW9-w!$m1@ZQxG?{6sDXnyBSdD9!PEDvh0H+>a zIB(~&S@b@7AzBSpITJ(zOBGuKz{J`LF!9ypeSQ}PMuY-ByJ&FD6A$_Tq<5e>vrU7b z84n%KHb95J@L@nhB)k`DHlo;m8eYFdfdWRq?Gh-Iu@jtIc;WB>$Nr(#yV$$n@53$q zpnlK`v1(_yZdHaeG!TV&L$?BNN}V=OT~O2lmURM+oNdU*E3pqf?1LMSyRumZ7eJtv zGSSA-2DI@Lod+ARfP)nXWjbD{)`$X|a_nG;Vhv=ic8N8Yurn-PAwetQU4g(*Xz_(Z zm@#W+?*HSbxYMv5mtUxhUp;);%OsP%mM*ESu?wXkZt0#A8YeKW03FXNfe*NO4L~i3 zFWe1r8u%|4awf?JDN!_mt6ccrhUIJ?m9F@pr>}?s3Vslkgho6dg|BB!Qw&J{V)8h| zRWt+%A{2q91ZvVBe8AMSsm?(heK`AWSM}$MStSBv4YEVdhjIR^W{jjR63R_Nl#L#? zmRzn6$igPd2AuraV1>XPvQ+AOn+F@AVj9cNF54hzg7JCQRK-B!FJ2JPh{W?kJw;TQ zQ!3UVS%87W+b+W!4yY6_M+GmG!TDC|7bUX&LI|{RJj}l9N5j8AdWnyQP>Z1^aFUwg{bi1IeRbpcT-_25xF&Qib~*b23B&aY8kZSiHhb%8Sr16 z3c0;!uqjtIlfUDS>p@IXna(`~ZS;7C-O=ulL;-YD~P zypXGQWDI%kL%7%dN_ijUodP-sPvr1-zr7Solx%L7*E2g2C7?}TSrm#GJ;LtkV79_K{k-eFYpTnALb*x ztv8-F_-wru`_p+-_cQa`T4Cm4M1}60im~u8ACYU^?dxQfMRKOacAX6OQ%P?gIzOkY zT8op=BjD9KijShE%J&~(Ar1M9aPTmL;|Ea--aX!`I9>H}6Qlwe3vzgOs8o=``7A&r z3ABD4Z~Yk@yo*{yrm>d<4OML1;5@XPV+dH|RvolW>cvZCw2U+2D#mNRgibnMQ!#qw zWEkaQ9ByezD%G0}bnJ(Rf>7bJRYd{7ajS7Q=PYS0c+?Xj&*U*_;7c*>5gm|})QcMD zEQBLWxy3U~OpUZ+R5TBy7)dp#XdZ>MM>EFbk)Z_@Aq$)clAeXJp?SKvtXPwqlLw!# zkvDFfv8-qmc#cI04e~l$wT8n2xMziN*+p=0Bxdz%bB{q{?h~ppbpov4LN>S+{3O9B zgZuFdSBs_j*(alxl~Idi)Q0L7X~PS;l1i=I@BE%u_*7DUPU2e=^0d>pC4PES?)IaD zzq|gRa_P*Du~1`we9ZH6DSNlXb};m(u7{Ku#s&FiM(1mtwY> zQVf~qOr4p|fGVNl;S0HxO4#^KWGP3bLMf>OGel1caslmllM_5v#sM}g@MR1*Q{qcr zcurC6yr3E9i#dH&sWuOnR5k2D18 z8xRV!QM@LT|0a{>KVDidRGLJ6v3-%CHLOC(GGTXUQ6!mACGz4No(RDbWiV2-nh-ea z2-^aqM`+CO!T}{0MWOf6ix8L)*p#It$c4SbORkvYIr|D9&BFB=mlMPl<6Rcojvy(= z>2$GAPG~z3T^=}Ve3DS$tf}<`p&zRj`HJD}o($26iMTz}JIR=)dtkb*h=YR{kC9nR zE%63$a2Y8M9tD;f^K2%&s|uTiCWf>|(FcQU5}%P)kY;3&2oai{I^?LAEI-FV5WUd& znG~fC2{~Vd;NekK>{gPtGOYZ{k7Dfir4B?M$wQuD)kzlB34;cOw1m-&%`(YG&j~_B z#k0i+9BqCQDn+RsRC}^rfdur3jc}lXmB$!AMgS#1#j5^*&`f&Xbu8}Ls zErV;(kOh?1cW)q-TcUymjzg7N5uQM&kj^IsdA(3?5yhTWA=wj+iY#@)Co5cVIiz~j zsZQQQp8Hf_sdia7k315BaHSOH!#rn1S+*pUK5$sys*(vF@MS!DL|MiZAh{Q+F``i4 z9uoD1p^=6D3o>gW52cYtCKn3ybFn;;#DH)tPf?_I`lyp5l3Z)!=7T_P1;Je@M~-e| zDg?#Gk)k}s<5_S5p|ppW%?mXXQM6YcNPBQBWO=R|w3h!blR?uEF5Kpe;F<&BJt9O? z1oBKy5TVrE4|AS!8j{#QfZNv!K@@tp-${)&7RD%wFgrspQA#i6q3MPD9!ewoWG3+= zKEcsBy z-0cC!wiW++ciq^>hCJ|AjIP*JdhNNmZDYnibSCLs{LZhBqtgZ4Q$wjq!J`#uh@B=m z2mVqGnU(1#GdNXXP1ey?mA+L>;YnyX8Qg^fe%!NINv+#(ph_SNheMF`OZb2<(U)9I zmhG4PQ)gMH)C=ED$a$sEf_KUChP&6XE-Cr!TD(6_SL~016v!&|!Z!tS-YB$)Ojj&n zU6CI~fFAK&~Wj$TQNp~i`8+@@q{Nz_n?SQ2zj RNm`6~>di~|o$HdK{RdOQD8&VdQ}bf!^~pO(3t^( z5XT;R=&$IphyJRnf1_`Vu}KQ7*~W@RAd~zp0 z$ys7Xs_g-lBNO%?PxcC~cBg?WCb%LNjDWl7%B;cPW5)0zsq~bVH2k~_y0kgyePGZ@ zv6qjxH1Np<4CsUjsYrL!CnfWHc(~b_2lmMKa|VkaC`U-FF0<%aB)2I+0oT;zp(-R8 z9zTOP)_LOkGGsDElA4mKfK&zg$vDXS_3{dvq*OeKlXQv=u)`cF`yW9Wb^M3PlC1$g zg61t}dPW|yVCO%KX=#YTH1=S@^cv{$(dmCy3z2S8BdsmQCambT=^%t{rG~9duoBf) z7o*z<*+~tVtmh_2mvDOB?js6C&HVLQGa-f~6zfSRkkrn*i_cFONz zwDaw)xl)2Fw9Y^Rb4^XWw411JY9LW zW`WQ&yCilYlph%uW0!GPOjXAF-ioCzWDs&?xbKDPFx#};qFzOY47=AbTrvKOp=oX} z-RRL}4jI*FPf zAzJ=C#kVi#RmxrFQVr2KU=|Jw7SHCFjO!-VgSr$!1I6Ov`Mg7=2Rc5qSxn-wUC7zu zV%`Fe;n96|-o_EeluAg31@|Wj2WFCR5R(bt1*vLxi_hmRIyKzaIDlAuyFHagF^7*| zcTF>g5j}zzJ4$GcSM=UTTHON0Jl;Wp(gG#?NxX{jm<5MP)EU4h=wTMQ{V9WbsZ)o# wI2C$+Zv=F3gNee~z-yDhXXaKRu7m + + + + + + + + + + + + + + + + + + + \ No newline at end of file