From caf0bf69009cdaee31f2e1cfdac647077aff340d Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期五, 06 九月 2024 09:42:35 +0800
Subject: [PATCH] 增加自动匹配界面

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.Designer.cs |  191 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 152 insertions(+), 39 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.Designer.cs
index 98749ce..dca5030 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.Designer.cs
@@ -29,7 +29,20 @@
         private void InitializeComponent()
         {
             components = new Container();
+            EditorButtonImageOptions editorButtonImageOptions1 = new EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
             ComponentResourceManager resources = new ComponentResourceManager(typeof(XhsProjectMgrPage));
+            EditorButtonImageOptions editorButtonImageOptions2 = new EditorButtonImageOptions();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject5 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject6 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject7 = new DevExpress.Utils.SerializableAppearanceObject();
+            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject8 = new DevExpress.Utils.SerializableAppearanceObject();
+            ColModelState = new DevExpress.XtraTreeList.Columns.TreeListColumn();
+            repositoryItemImageComboBox1 = new DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox();
+            svgImageCollection1 = new DevExpress.Utils.SvgImageCollection(components);
             ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
             barBtnAdd = new DevExpress.XtraBars.BarButtonItem();
             barBtnEdit = new DevExpress.XtraBars.BarButtonItem();
@@ -44,6 +57,7 @@
             barBtnCollpseAll = new DevExpress.XtraBars.BarButtonItem();
             barBtnSearch = new DevExpress.XtraBars.BarButtonItem();
             barBtnRefresh = new DevExpress.XtraBars.BarButtonItem();
+            BtnAddBimfaceFile = new DevExpress.XtraBars.BarButtonItem();
             ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
             ribPageGroupForBasic = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             ribPageGroupForOperation = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
@@ -53,32 +67,73 @@
             treeList1 = new DevExpress.XtraTreeList.TreeList();
             colNO = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colName = new DevExpress.XtraTreeList.Columns.TreeListColumn();
-            colStartTime = new DevExpress.XtraTreeList.Columns.TreeListColumn();
-            colEndTime = new DevExpress.XtraTreeList.Columns.TreeListColumn();
-            colPublishStatus = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colAddress = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colCustomer = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colFlags = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colTagName = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             colDescription = new DevExpress.XtraTreeList.Columns.TreeListColumn();
+            ColViewBimface = new DevExpress.XtraTreeList.Columns.TreeListColumn();
+            repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
+            colCreateTime = new DevExpress.XtraTreeList.Columns.TreeListColumn();
             xhsProjectMgrViewModelBindingSource = new BindingSource(components);
-            panelControl1 = new DevExpress.XtraEditors.PanelControl();
+            panelControl1 = new PanelControl();
             svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
+            ((ISupportInitialize)repositoryItemImageComboBox1).BeginInit();
+            ((ISupportInitialize)svgImageCollection1).BeginInit();
             ((ISupportInitialize)ribbonControl1).BeginInit();
             ((ISupportInitialize)treeList1).BeginInit();
+            ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
             ((ISupportInitialize)xhsProjectMgrViewModelBindingSource).BeginInit();
             ((ISupportInitialize)panelControl1).BeginInit();
             panelControl1.SuspendLayout();
             ((ISupportInitialize)svgImg32).BeginInit();
             SuspendLayout();
             // 
+            // ColModelState
+            // 
+            ColModelState.Caption = "妯″瀷鐘舵��";
+            ColModelState.ColumnEdit = repositoryItemImageComboBox1;
+            ColModelState.FieldName = "ModelState";
+            ColModelState.Name = "ColModelState";
+            ColModelState.Visible = true;
+            ColModelState.VisibleIndex = 8;
+            ColModelState.Width = 20;
+            // 
+            // repositoryItemImageComboBox1
+            // 
+            repositoryItemImageComboBox1.AutoHeight = false;
+            serializableAppearanceObject1.Options.UseTextOptions = true;
+            serializableAppearanceObject1.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            serializableAppearanceObject2.Options.UseTextOptions = true;
+            serializableAppearanceObject2.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+            serializableAppearanceObject3.Options.UseTextOptions = true;
+            serializableAppearanceObject3.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+            serializableAppearanceObject4.Options.UseTextOptions = true;
+            serializableAppearanceObject4.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
+            repositoryItemImageComboBox1.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Ellipsis, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemImageComboBox1.HtmlImages = svgImageCollection1;
+            repositoryItemImageComboBox1.Name = "repositoryItemImageComboBox1";
+            repositoryItemImageComboBox1.SmallImages = svgImageCollection1;
+            // 
+            // svgImageCollection1
+            // 
+            svgImageCollection1.Add("up", "image://svgimages/actions/up.svg");
+            svgImageCollection1.Add("finishmerge", "image://svgimages/snap/finishmerge.svg");
+            svgImageCollection1.Add("arrangegroups", "image://svgimages/snap/arrangegroups.svg");
+            svgImageCollection1.Add("bo_validation", "image://svgimages/business objects/bo_validation.svg");
+            svgImageCollection1.Add("charttype_line3dstacked", "image://svgimages/chart/charttype_line3dstacked.svg");
+            svgImageCollection1.Add("bo_security_permission_member", "image://svgimages/business objects/bo_security_permission_member.svg");
+            svgImageCollection1.Add("relations", "image://svgimages/dashboards/relations.svg");
+            svgImageCollection1.Add("bo_security_permission_type", "image://svgimages/business objects/bo_security_permission_type.svg");
+            svgImageCollection1.Add("security_warningcircled2", "image://svgimages/icon builder/security_warningcircled2.svg");
+            // 
             // ribbonControl1
             // 
             ribbonControl1.ExpandCollapseItem.Id = 0;
             ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnAdd, barBtnEdit, barBtnDelete, barBtnInfo, barBtnViewHydro, barBtnViewBimface, barBtnPublish, barBtnDeprecated, barCkTreeLine, barBtnExpandAll, barBtnCollpseAll, barBtnSearch, barBtnRefresh });
+            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnAdd, barBtnEdit, barBtnDelete, barBtnInfo, barBtnViewHydro, barBtnViewBimface, barBtnPublish, barBtnDeprecated, barCkTreeLine, barBtnExpandAll, barBtnCollpseAll, barBtnSearch, barBtnRefresh, BtnAddBimfaceFile });
             ribbonControl1.Location = new Point(0, 0);
-            ribbonControl1.MaxItemId = 14;
+            ribbonControl1.MaxItemId = 15;
             ribbonControl1.Name = "ribbonControl1";
             ribbonControl1.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
             ribbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
@@ -120,6 +175,7 @@
             barBtnInfo.Id = 4;
             barBtnInfo.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnInfo.ImageOptions.SvgImage");
             barBtnInfo.Name = "barBtnInfo";
+            barBtnInfo.Visibility = DevExpress.XtraBars.BarItemVisibility.Never;
             barBtnInfo.ItemClick += barBtnInfo_ItemClick;
             // 
             // barBtnViewHydro
@@ -128,6 +184,7 @@
             barBtnViewHydro.Id = 5;
             barBtnViewHydro.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnViewHydro.ImageOptions.SvgImage");
             barBtnViewHydro.Name = "barBtnViewHydro";
+            barBtnViewHydro.ItemClick += barBtnViewHydro_ItemClick;
             // 
             // barBtnViewBimface
             // 
@@ -143,7 +200,6 @@
             barBtnPublish.Id = 7;
             barBtnPublish.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnPublish.ImageOptions.SvgImage");
             barBtnPublish.Name = "barBtnPublish";
-            barBtnPublish.ItemClick += barBtnPublish_ItemClick;
             // 
             // barBtnDeprecated
             // 
@@ -192,6 +248,14 @@
             barBtnRefresh.Name = "barBtnRefresh";
             barBtnRefresh.ItemClick += barBtnRefresh_ItemClick;
             // 
+            // BtnAddBimfaceFile
+            // 
+            BtnAddBimfaceFile.Caption = "瀵煎叆鏂囦欢";
+            BtnAddBimfaceFile.Id = 14;
+            BtnAddBimfaceFile.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("BtnAddBimfaceFile.ImageOptions.SvgImage");
+            BtnAddBimfaceFile.Name = "BtnAddBimfaceFile";
+            BtnAddBimfaceFile.ItemClick += BtnAddBimfaceFile_ItemClick;
+            // 
             // ribbonPage1
             // 
             ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribPageGroupForBasic, ribPageGroupForOperation, ribPageGroupForHydro, ribPageGroupBimface, ribPageGroupForMore });
@@ -203,6 +267,7 @@
             ribPageGroupForBasic.ItemLinks.Add(barBtnAdd);
             ribPageGroupForBasic.ItemLinks.Add(barBtnEdit);
             ribPageGroupForBasic.ItemLinks.Add(barBtnDelete);
+            ribPageGroupForBasic.ItemLinks.Add(BtnAddBimfaceFile);
             ribPageGroupForBasic.ItemLinks.Add(barBtnInfo);
             ribPageGroupForBasic.Name = "ribPageGroupForBasic";
             ribPageGroupForBasic.Text = "鍩虹";
@@ -213,6 +278,7 @@
             ribPageGroupForOperation.ItemLinks.Add(barBtnDeprecated);
             ribPageGroupForOperation.Name = "ribPageGroupForOperation";
             ribPageGroupForOperation.Text = "鎿嶄綔";
+            ribPageGroupForOperation.Visible = false;
             // 
             // ribPageGroupForHydro
             // 
@@ -238,85 +304,125 @@
             // 
             // treeList1
             // 
-            treeList1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
-            treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNO, colName, colStartTime, colEndTime, colPublishStatus, colAddress, colCustomer, colFlags, colTagName, colDescription });
+            treeList1.Appearance.HeaderPanel.Options.UseTextOptions = true;
+            treeList1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            treeList1.BorderStyle = BorderStyles.NoBorder;
+            treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNO, colName, colAddress, colCustomer, colFlags, colTagName, colDescription, ColModelState, ColViewBimface, colCreateTime });
             treeList1.DataSource = xhsProjectMgrViewModelBindingSource;
             treeList1.Dock = DockStyle.Fill;
             treeList1.Location = new Point(0, 1);
             treeList1.MenuManager = ribbonControl1;
             treeList1.Name = "treeList1";
+            treeList1.OptionsBehavior.PopulateServiceColumns = true;
+            treeList1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1, repositoryItemImageComboBox1 });
             treeList1.Size = new Size(998, 568);
             treeList1.TabIndex = 1;
+            treeList1.RowCellClick += treeList1_RowCellClick;
+            treeList1.CustomDrawRow += treeList1_CustomDrawRow;
             // 
             // colNO
             // 
+            colNO.AppearanceCell.Options.UseTextOptions = true;
+            colNO.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colNO.AppearanceHeader.Options.UseTextOptions = true;
+            colNO.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             colNO.FieldName = "NO";
             colNO.Name = "colNO";
             colNO.Visible = true;
             colNO.VisibleIndex = 0;
+            colNO.Width = 87;
             // 
             // colName
             // 
+            colName.AppearanceCell.Options.UseTextOptions = true;
+            colName.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             colName.FieldName = "Name";
             colName.Name = "colName";
             colName.Visible = true;
             colName.VisibleIndex = 1;
-            // 
-            // colStartTime
-            // 
-            colStartTime.FieldName = "StartTime";
-            colStartTime.Name = "colStartTime";
-            colStartTime.Visible = true;
-            colStartTime.VisibleIndex = 2;
-            // 
-            // colEndTime
-            // 
-            colEndTime.FieldName = "EndTime";
-            colEndTime.Name = "colEndTime";
-            colEndTime.Visible = true;
-            colEndTime.VisibleIndex = 3;
-            // 
-            // colPublishStatus
-            // 
-            colPublishStatus.FieldName = "PublishStatus";
-            colPublishStatus.Name = "colPublishStatus";
-            colPublishStatus.Visible = true;
-            colPublishStatus.VisibleIndex = 4;
+            colName.Width = 167;
             // 
             // colAddress
             // 
+            colAddress.AppearanceCell.Options.UseTextOptions = true;
+            colAddress.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             colAddress.FieldName = "Address";
             colAddress.Name = "colAddress";
             colAddress.Visible = true;
-            colAddress.VisibleIndex = 5;
+            colAddress.VisibleIndex = 7;
+            colAddress.Width = 257;
             // 
             // colCustomer
             // 
+            colCustomer.AppearanceCell.Options.UseTextOptions = true;
+            colCustomer.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             colCustomer.FieldName = "Customer";
             colCustomer.Name = "colCustomer";
             colCustomer.Visible = true;
-            colCustomer.VisibleIndex = 6;
+            colCustomer.VisibleIndex = 5;
+            colCustomer.Width = 127;
             // 
             // colFlags
             // 
+            colFlags.AppearanceCell.Options.UseTextOptions = true;
+            colFlags.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             colFlags.FieldName = "Flags";
             colFlags.Name = "colFlags";
             colFlags.Visible = true;
-            colFlags.VisibleIndex = 7;
+            colFlags.VisibleIndex = 3;
+            colFlags.Width = 57;
             // 
             // colTagName
             // 
+            colTagName.AppearanceCell.Options.UseTextOptions = true;
+            colTagName.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             colTagName.FieldName = "TagName";
             colTagName.Name = "colTagName";
             colTagName.Visible = true;
-            colTagName.VisibleIndex = 8;
+            colTagName.VisibleIndex = 4;
+            colTagName.Width = 58;
             // 
             // colDescription
             // 
+            colDescription.AppearanceCell.Options.UseTextOptions = true;
+            colDescription.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
             colDescription.FieldName = "Description";
             colDescription.Name = "colDescription";
             colDescription.Visible = true;
-            colDescription.VisibleIndex = 9;
+            colDescription.VisibleIndex = 6;
+            colDescription.Width = 57;
+            // 
+            // ColViewBimface
+            // 
+            ColViewBimface.AppearanceCell.Options.UseTextOptions = true;
+            ColViewBimface.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            ColViewBimface.Caption = "鏌ョ湅鏂规";
+            ColViewBimface.ColumnEdit = repositoryItemButtonEdit1;
+            ColViewBimface.Name = "ColViewBimface";
+            ColViewBimface.OptionsColumn.AllowEdit = false;
+            ColViewBimface.Visible = true;
+            ColViewBimface.VisibleIndex = 9;
+            ColViewBimface.Width = 20;
+            // 
+            // repositoryItemButtonEdit1
+            // 
+            repositoryItemButtonEdit1.AutoHeight = false;
+            editorButtonImageOptions2.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions2.SvgImage");
+            editorButtonImageOptions2.SvgImageSize = new Size(25, 25);
+            repositoryItemButtonEdit1.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
+            repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
+            repositoryItemButtonEdit1.TextEditStyle = TextEditStyles.HideTextEditor;
+            // 
+            // colCreateTime
+            // 
+            colCreateTime.AppearanceCell.Options.UseTextOptions = true;
+            colCreateTime.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            colCreateTime.Caption = "鍒涘缓鏃堕棿";
+            colCreateTime.FieldName = "CreateTime";
+            colCreateTime.Name = "colCreateTime";
+            colCreateTime.Visible = true;
+            colCreateTime.VisibleIndex = 2;
+            colCreateTime.Width = 125;
             // 
             // xhsProjectMgrViewModelBindingSource
             // 
@@ -324,7 +430,7 @@
             // 
             // panelControl1
             // 
-            panelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
+            panelControl1.BorderStyle = BorderStyles.NoBorder;
             panelControl1.Controls.Add(treeList1);
             panelControl1.Dock = DockStyle.Fill;
             panelControl1.Location = new Point(0, 101);
@@ -348,8 +454,11 @@
             Controls.Add(ribbonControl1);
             Name = "XhsProjectMgrPage";
             Size = new Size(998, 670);
+            ((ISupportInitialize)repositoryItemImageComboBox1).EndInit();
+            ((ISupportInitialize)svgImageCollection1).EndInit();
             ((ISupportInitialize)ribbonControl1).EndInit();
             ((ISupportInitialize)treeList1).EndInit();
+            ((ISupportInitialize)repositoryItemButtonEdit1).EndInit();
             ((ISupportInitialize)xhsProjectMgrViewModelBindingSource).EndInit();
             ((ISupportInitialize)panelControl1).EndInit();
             panelControl1.ResumeLayout(false);
@@ -374,9 +483,6 @@
         private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribPageGroupBimface;
         private DevExpress.XtraTreeList.Columns.TreeListColumn colNO;
         private DevExpress.XtraTreeList.Columns.TreeListColumn colName;
-        private DevExpress.XtraTreeList.Columns.TreeListColumn colStartTime;
-        private DevExpress.XtraTreeList.Columns.TreeListColumn colEndTime;
-        private DevExpress.XtraTreeList.Columns.TreeListColumn colPublishStatus;
         private DevExpress.XtraTreeList.Columns.TreeListColumn colAddress;
         private DevExpress.XtraTreeList.Columns.TreeListColumn colCustomer;
         private DevExpress.XtraTreeList.Columns.TreeListColumn colFlags;
@@ -394,5 +500,12 @@
         private DevExpress.XtraBars.BarButtonItem barBtnRefresh;
         private DevExpress.XtraEditors.PanelControl panelControl1;
         private DevExpress.Utils.SvgImageCollection svgImg32;
+        private DevExpress.XtraTreeList.Columns.TreeListColumn ColModelState;
+        private DevExpress.XtraTreeList.Columns.TreeListColumn ColViewBimface;
+        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
+        private DevExpress.XtraEditors.Repository.RepositoryItemImageComboBox repositoryItemImageComboBox1;
+        private DevExpress.Utils.SvgImageCollection svgImageCollection1;
+        private DevExpress.XtraBars.BarButtonItem BtnAddBimfaceFile;
+        private DevExpress.XtraTreeList.Columns.TreeListColumn colCreateTime;
     }
 }

--
Gitblit v1.9.3