lixiaojun
2024-12-02 54b0925cde5f2246ad59529f82a74753139eb104
完善性能曲线
已删除1个文件
已修改10个文件
236 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelCtrl.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatCtrl.Designer.cs 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatCtrl.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatDlg.Designer.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatDlg.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/00-core/HydroWorkingExtensions.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/00-core/HydroWorkingViewModel.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/05-state/HydroPumpListItemStateViewModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/05-state/HydroPumpListStateEditCtrl.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/05-state/HydroPumpListStateEditCtrl.resx 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -2020,14 +2020,37 @@
        #region æ°´æ³µåˆ—表
        //性能曲线
        private void barBtnPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        private void PumpFeat()
        {
            if (_hydroInfo == null)
            {
                return;
            }
            var pumps = _hydroInfo.Pumps;
            if (pumps == null || pumps.Count < 1)
            {
                XtraMessageBox.Show("无水泵信息");
                return;
            }
            var dlg = new SimulationPumpFeatDlg();
            dlg.SaveEvent += async (list) =>
            {
                pumps.ForEach(x => x.UpdateWorkingInfo(list));
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList());
                SelectVisual(_visual, eVisualSource.None);
                var gradingHelper = await GetGradingHelper();
                gradingHelper.Set();
            };
            dlg.SetBindingData(_hydroInfo);
            dlg.ShowDialog();
        }
        #region å¹¶è”模拟
        //性能曲线
        private void barBtnPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            PumpFeat();
        }
        //并联模拟
        private void PumpParallel()
@@ -2057,14 +2080,12 @@
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList());
                SelectVisual(_visual, eVisualSource.None);
                var calcuResultLabelHelper = await GetCalcuResultLabelHelper();
                calcuResultLabelHelper.Set();
                var gradingHelper = await GetGradingHelper();
                gradingHelper.Set();
            };
            dlg.SetBindingData(_hydroInfo);
            dlg.ShowDialog();
        }
        //并联模拟
        private void barBtnPumpParallel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
@@ -2072,8 +2093,6 @@
            PumpParallel();
        }
        #endregion
        #endregion
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/01-parallel/SimulationPumpParallelCtrl.cs
@@ -59,7 +59,7 @@
        //保存
        private void btnSave_Click(object sender, EventArgs e)
        {
            var result = XtraMessageBox.Show("是否将现有水泵状态更新模型?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes;
            var result = XtraMessageBox.Show("是否使用现有水泵状态更新模型?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes;
            if (!result)
            {
                return;
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatCtrl.Designer.cs
@@ -29,22 +29,22 @@
        private void InitializeComponent()
        {
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            panelControl1 = new PanelControl();
            pumpOperationChart1 = new Yw.WinFrmUI.Phart.PumpOperationChart();
            hydroPumpListStateEditCtrl1 = new HydroPumpListStateEditCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            splitterItem1 = new DevExpress.XtraLayout.SplitterItem();
            panelControl1 = new PanelControl();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            pumpOperationChart1 = new Yw.WinFrmUI.Phart.PumpOperationChart();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)panelControl1).BeginInit();
            panelControl1.SuspendLayout();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlGroup1).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)splitterItem1).BeginInit();
            ((ISupportInitialize)panelControl1).BeginInit();
            panelControl1.SuspendLayout();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            SuspendLayout();
            // 
@@ -61,11 +61,32 @@
            layoutControl1.TabIndex = 0;
            layoutControl1.Text = "layoutControl1";
            // 
            // panelControl1
            //
            panelControl1.BorderStyle = BorderStyles.Simple;
            panelControl1.Controls.Add(pumpOperationChart1);
            panelControl1.Location = new Point(229, 2);
            panelControl1.Name = "panelControl1";
            panelControl1.Padding = new Padding(1);
            panelControl1.Size = new Size(721, 593);
            panelControl1.TabIndex = 7;
            //
            // pumpOperationChart1
            //
            pumpOperationChart1.Dock = DockStyle.Fill;
            pumpOperationChart1.LineNameVisible = true;
            pumpOperationChart1.LineVisible = false;
            pumpOperationChart1.Location = new Point(3, 3);
            pumpOperationChart1.Margin = new Padding(2, 2, 2, 2);
            pumpOperationChart1.Name = "pumpOperationChart1";
            pumpOperationChart1.Size = new Size(715, 587);
            pumpOperationChart1.TabIndex = 0;
            //
            // hydroPumpListStateEditCtrl1
            // 
            hydroPumpListStateEditCtrl1.Location = new Point(0, 22);
            hydroPumpListStateEditCtrl1.Location = new Point(2, 24);
            hydroPumpListStateEditCtrl1.Name = "hydroPumpListStateEditCtrl1";
            hydroPumpListStateEditCtrl1.Size = new Size(217, 575);
            hydroPumpListStateEditCtrl1.Size = new Size(213, 571);
            hydroPumpListStateEditCtrl1.TabIndex = 4;
            // 
            // Root
@@ -86,7 +107,6 @@
            layoutControlGroup1.Name = "layoutControlGroup1";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(217, 597);
            layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Text = "水泵列表";
            // 
            // layoutControlItem1
@@ -95,7 +115,7 @@
            layoutControlItem1.Location = new Point(0, 0);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem1.Size = new Size(217, 575);
            layoutControlItem1.Size = new Size(213, 571);
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            // 
@@ -106,16 +126,6 @@
            splitterItem1.Name = "splitterItem1";
            splitterItem1.Size = new Size(10, 597);
            // 
            // panelControl1
            //
            panelControl1.BorderStyle = BorderStyles.Simple;
            panelControl1.Controls.Add(pumpOperationChart1);
            panelControl1.Location = new Point(227, 0);
            panelControl1.Name = "panelControl1";
            panelControl1.Padding = new Padding(1);
            panelControl1.Size = new Size(725, 597);
            panelControl1.TabIndex = 7;
            //
            // layoutControlItem3
            // 
            layoutControlItem3.Control = panelControl1;
@@ -123,19 +133,9 @@
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem3.Size = new Size(725, 597);
            layoutControlItem3.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            //
            // pumpOperationChart1
            //
            pumpOperationChart1.Dock = DockStyle.Fill;
            pumpOperationChart1.LineNameVisible = true;
            pumpOperationChart1.LineVisible = false;
            pumpOperationChart1.Location = new Point(3, 3);
            pumpOperationChart1.Margin = new Padding(2, 2, 2, 2);
            pumpOperationChart1.Name = "pumpOperationChart1";
            pumpOperationChart1.Size = new Size(719, 591);
            pumpOperationChart1.TabIndex = 0;
            // 
            // SimulationPumpFeatCtrl
            // 
@@ -146,12 +146,12 @@
            Size = new Size(952, 597);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)panelControl1).EndInit();
            panelControl1.ResumeLayout(false);
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlGroup1).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)splitterItem1).EndInit();
            ((ISupportInitialize)panelControl1).EndInit();
            panelControl1.ResumeLayout(false);
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ResumeLayout(false);
        }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatCtrl.cs
@@ -24,6 +24,11 @@
        }
        /// <summary>
        /// ä¿å­˜äº‹ä»¶
        /// </summary>
        public event Action<List<HydroWorkingPumpViewModel>> SaveEvent;
        /// <summary>
        /// 
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
@@ -92,7 +97,21 @@
            return vm;
        }
        /// <summary>
        /// ä¿å­˜
        /// </summary>
        public void Save()
        {
            if (this.hydroPumpListStateEditCtrl1.HasChanged)
            {
                var result = XtraMessageBox.Show("是否使用现有水泵状态更新模型?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes;
                if (result)
                {
                    var allWorkingList = this.hydroPumpListStateEditCtrl1.GetWorkingList();
                    this.SaveEvent?.Invoke(allWorkingList);
                }
            }
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatDlg.Designer.cs
@@ -79,6 +79,7 @@
            RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden;
            StartPosition = FormStartPosition.CenterParent;
            Text = "并联模拟";
            FormClosing += SimulationPumpFeatDlg_FormClosing;
            ((ISupportInitialize)ribbon).EndInit();
            ResumeLayout(false);
            PerformLayout();
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/11-pump/02-feat/SimulationPumpFeatDlg.cs
@@ -6,13 +6,31 @@
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.simulationPumpFeatCtrl1.SaveEvent += SimulationPumpFeatCtrl1_SaveEvent;
        }
        /// <summary>
        /// ä¿å­˜äº‹ä»¶
        /// </summary>
        public event Action<List<HydroWorkingPumpViewModel>> SaveEvent;
        private void SimulationPumpFeatCtrl1_SaveEvent(List<HydroWorkingPumpViewModel> obj)
        {
            this.SaveEvent?.Invoke(obj);
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
        {
            this.simulationPumpFeatCtrl1.SetBindingData(hydroInfo);
        }
        private void SimulationPumpFeatDlg_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.simulationPumpFeatCtrl1.Save();
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/00-core/HydroWorkingExtensions.cs
@@ -115,6 +115,36 @@
        }
        /// <summary>
        /// æ›´æ–°å·¥å†µä¿¡æ¯
        /// </summary>
        public static void UpdateWorkingInfo(this Yw.Model.HydroPumpInfo pumpInfo, HydroWorkingPumpViewModel pumpWorkingInfo)
        {
            if (pumpInfo == null)
            {
                return;
            }
            if (pumpWorkingInfo == null)
            {
                return;
            }
            pumpInfo.LinkStatus = pumpWorkingInfo.LinkStatus;
            pumpInfo.SpeedRatio = pumpWorkingInfo.CurrentHz / pumpInfo.RatedHz;
        }
        /// <summary>
        /// æ›´æ–°å·¥å†µä¿¡æ¯
        /// </summary>
        public static void UpdateWorkingInfo(this Yw.Model.HydroPumpInfo pumpInfo, List<HydroWorkingPumpViewModel> allWorkingList)
        {
            if (pumpInfo == null)
            {
                return;
            }
            var workingInfo = allWorkingList?.Find(x => x.Code == pumpInfo.Code);
            pumpInfo.UpdateWorkingInfo(workingInfo);
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/00-core/HydroWorkingViewModel.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/05-state/HydroPumpListItemStateViewModel.cs
@@ -86,5 +86,7 @@
        /// 
        /// </summary>
        public Yw.Model.HydroModelInfo HydroInfo { get; set; }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/05-state/HydroPumpListStateEditCtrl.cs
@@ -24,7 +24,18 @@
        /// </summary>
        public event Action<HydroPumpListItemStateViewModel> SelectedChangedEvent;
        private BindingList<HydroPumpListItemStateViewModel> _allBindingList = null;
        private BindingList<HydroPumpListItemStateViewModel> _allBindingList = null;//所有绑定列表
        /// <summary>
        /// æ˜¯å¦æœ‰æ”¹å˜
        /// </summary>
        public bool HasChanged
        {
            get { return _hasChanged; }
        }
        private bool _hasChanged = false;
        /// <summary>
        /// ç»‘定数据
@@ -86,7 +97,17 @@
            {
                vm.RunStatus = rhs.LinkStatus == Yw.Hydro.PumpStatus.Open;
                vm.CurrentHz = rhs.CurrentHz;
                if (vm.RunStatus)
                {
                    vm.Image = Yw.WinFrmUI.Hydro.Core.Properties.Resources.pump_run_32;
                }
                else
                {
                    vm.Image = Yw.WinFrmUI.Hydro.Core.Properties.Resources.pump_shut_32;
                }
                this.hydroPumpListItemStateViewModelBindingSource.ResetBindings(false);
                _hasChanged = true;
            };
            dlg.SetBindingData(working);
            dlg.ShowDialog();
WinFrmUI/Yw.WinFrmUI.Hydro.Core/19-pump/05-state/HydroPumpListStateEditCtrl.resx
@@ -125,29 +125,24 @@
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO4DAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8
        cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog
        TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu
        OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt
        MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2
        LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw
        LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x
        NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40
        LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu
        MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu
        NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw
        YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu
        NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy
        NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
        WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl
        Pg0KICA8ZyBpZD0iUHJvcGVydGllcyI+DQogICAgPHBhdGggZD0iTTMwLDE4di00bC00LjQtMC43Yy0w
        LjItMC44LTAuNS0xLjUtMC45LTIuMWwyLjYtMy42bC0yLjgtMi44bC0zLjYsMi42Yy0wLjctMC40LTEu
        NC0wLjctMi4xLTAuOUwxOCwyaC00ICAgbC0wLjcsNC40Yy0wLjgsMC4yLTEuNSwwLjUtMi4xLDAuOUw3
        LjUsNC43TDQuNyw3LjVsMi42LDMuNmMtMC40LDAuNy0wLjcsMS40LTAuOSwyLjFMMiwxNHY0bDQuNCww
        LjdjMC4yLDAuOCwwLjUsMS41LDAuOSwyLjEgICBsLTIuNiwzLjZsMi44LDIuOGwzLjYtMi42YzAuNyww
        LjQsMS40LDAuNywyLjEsMC45TDE0LDMwaDRsMC43LTQuNGMwLjgtMC4yLDEuNS0wLjUsMi4xLTAuOWwz
        LjYsMi42bDIuOC0yLjhsLTIuNi0zLjYgICBjMC40LTAuNywwLjctMS40LDAuOS0yLjFMMzAsMTh6IE0x
        NiwyMGMtMi4yLDAtNC0xLjgtNC00YzAtMi4yLDEuOC00LDQtNHM0LDEuOCw0LDRDMjAsMTguMiwxOC4y
        LDIwLDE2LDIweiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
</root>