Commit ccc06486 LN

增加用户管理功能

1 个父辈 b2a955fa
...@@ -131,7 +131,7 @@ namespace TSA_V.Common ...@@ -131,7 +131,7 @@ namespace TSA_V.Common
/// </summary> /// </summary>
public static string AOIFileConfig = "AOIFileConfig"; public static string AOIFileConfig = "AOIFileConfig";
public static string Config_Pwd = "Config_Pwd"; //public static string Config_Pwd = "Config_Pwd";
public static string DefaultPointSize = "DefaultPointSize"; public static string DefaultPointSize = "DefaultPointSize";
public static string DefaultPointType = "DefaultPointType"; public static string DefaultPointType = "DefaultPointType";
......
...@@ -125,6 +125,9 @@ ...@@ -125,6 +125,9 @@
<None Include="config\database.db3"> <None Include="config\database.db3">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="config\user.sqlite3">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="config\defaultBoard0.jpg" /> <None Include="config\defaultBoard0.jpg" />
<None Include="config\元器件信息模板.csv"> <None Include="config\元器件信息模板.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
......
...@@ -43,18 +43,18 @@ namespace DAL ...@@ -43,18 +43,18 @@ namespace DAL
} }
} }
public bool QueryUserName(string username, string password) //public bool QueryUserName(string username, string password)
{ //{
bool succeed = false; // bool succeed = false;
string sql = "SELECT * FROM Account WHERE Username='" + username + "' AND Password='" + password + "'"; // string sql = "SELECT * FROM Account WHERE Username='" + username + "' AND Password='" + password + "'";
bool rtn = Select(sql, out string[][] data); // bool rtn = Select(sql, out string[][] data);
if (rtn) // if (rtn)
{ // {
if (data.Length > 0) // if (data.Length > 0)
succeed = true; // succeed = true;
} // }
return succeed; // return succeed;
} //}
public bool QueryHistory(string barCode, string dateTimeFront, string dateTimeBack, out string[][] data) public bool QueryHistory(string barCode, string dateTimeFront, string dateTimeBack, out string[][] data)
{ {
......
此文件类型无法预览
...@@ -12,8 +12,8 @@ namespace TSA_V ...@@ -12,8 +12,8 @@ namespace TSA_V
public class FormManager public class FormManager
{ {
public static Color buttonColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255))))); public static Color buttonColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
private static string skinFileName = Application.StartupPath + @"\Skins\OneBlue.ssk"; private static string skinFileName = Application.StartupPath + @"\Skins\OneBlue.ssk";
...@@ -35,14 +35,14 @@ namespace TSA_V ...@@ -35,14 +35,14 @@ namespace TSA_V
return skinFileName; return skinFileName;
} }
} }
private static int index = -1; private static int index = -1;
public static void DefaultSkin() public static void DefaultSkin()
{ {
index = -1; index = -1;
} }
public static void NextSkin() public static void NextSkin()
{ {
index++; index++;
...@@ -51,9 +51,9 @@ namespace TSA_V ...@@ -51,9 +51,9 @@ namespace TSA_V
index = 0; index = 0;
} }
} }
public static List<string> SkinsList = new List<string>(); public static List<string> SkinsList = new List<string>();
private static List<string> GetSkinList() private static List<string> GetSkinList()
{ {
List<string> returnList = new System.Collections.Generic.List<string>(); List<string> returnList = new System.Collections.Generic.List<string>();
...@@ -67,5 +67,14 @@ namespace TSA_V ...@@ -67,5 +67,14 @@ namespace TSA_V
} }
return returnList; return returnList;
} }
public static Lazy<Asa.UserManagement> userManager = new Lazy<Asa.UserManagement>(() => {
Asa.UserManagement user = new Asa.UserManagement("log");
user.DatabasePath = Application.StartupPath + @"\config\user.sqlite3";
return user;
});
public static Asa.Users UserInfo = null;
} }
} }
...@@ -23,20 +23,35 @@ namespace TSA_V ...@@ -23,20 +23,35 @@ namespace TSA_V
private void BtnLogin_Click(object sender, EventArgs e) private void BtnLogin_Click(object sender, EventArgs e)
{ {
if (DeviceLibrary.DB.db.IsCon)
{ FormManager.UserInfo = new Asa.Users();
DeviceLibrary.DB.userName = TxtUsername.Text; FormManager.UserInfo.Name = TxtUsername.Text.Trim();
bool rtn = DeviceLibrary.DB.db.QueryUserName(DeviceLibrary.DB.userName, TxtPassword.Text); FormManager.UserInfo.Password = TxtPassword.Text.Trim();
if (rtn) FormManager.userManager.Value.Connect();
DialogResult = DialogResult.OK; if (FormManager.userManager.Value.UserLogin(ref FormManager.UserInfo))
else {
MessageBox.Show("用户名或密码错误", "", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK;
} }
else else
{ {
MessageBox.Show("数据库未连接"); string msg = ResourceCulture.GetString("用户名或密码错误");
MessageBox.Show(msg, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
////if (DeviceLibrary.DB.db.IsCon)
//{
// DeviceLibrary.DB.userName = TxtUsername.Text;
// bool rtn = DeviceLibrary.DB.db.QueryUserName(DeviceLibrary.DB.userName, TxtPassword.Text);
// if (rtn)
// DialogResult = DialogResult.OK;
// else
// MessageBox.Show("用户名或密码错误", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
//}
//else
//{
// MessageBox.Show("数据库未连接");
//}
} }
private void BtnExit_Click(object sender, EventArgs e) private void BtnExit_Click(object sender, EventArgs e)
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.button1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button1.ForeColor = System.Drawing.Color.White; this.button1.ForeColor = System.Drawing.Color.White;
this.button1.Location = new System.Drawing.Point(99, 99); this.button1.Location = new System.Drawing.Point(221, 206);
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(118, 103); this.button1.Size = new System.Drawing.Size(118, 103);
this.button1.TabIndex = 13; this.button1.TabIndex = 13;
...@@ -61,13 +61,12 @@ ...@@ -61,13 +61,12 @@
this.btnDeviceSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnDeviceSelect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnDeviceSelect.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnDeviceSelect.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDeviceSelect.ForeColor = System.Drawing.Color.White; this.btnDeviceSelect.ForeColor = System.Drawing.Color.White;
this.btnDeviceSelect.Location = new System.Drawing.Point(111, 12); this.btnDeviceSelect.Location = new System.Drawing.Point(99, 206);
this.btnDeviceSelect.Name = "btnDeviceSelect"; this.btnDeviceSelect.Name = "btnDeviceSelect";
this.btnDeviceSelect.Size = new System.Drawing.Size(158, 103); this.btnDeviceSelect.Size = new System.Drawing.Size(118, 103);
this.btnDeviceSelect.TabIndex = 12; this.btnDeviceSelect.TabIndex = 12;
this.btnDeviceSelect.Text = "设备选择"; this.btnDeviceSelect.Text = "用户管理";
this.btnDeviceSelect.UseVisualStyleBackColor = false; this.btnDeviceSelect.UseVisualStyleBackColor = false;
this.btnDeviceSelect.Visible = false;
this.btnDeviceSelect.Click += new System.EventHandler(this.btnDeviceSelect_Click); this.btnDeviceSelect.Click += new System.EventHandler(this.btnDeviceSelect_Click);
// //
// btnLanguage // btnLanguage
...@@ -77,9 +76,9 @@ ...@@ -77,9 +76,9 @@
this.btnLanguage.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnLanguage.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLanguage.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnLanguage.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLanguage.ForeColor = System.Drawing.Color.White; this.btnLanguage.ForeColor = System.Drawing.Color.White;
this.btnLanguage.Location = new System.Drawing.Point(99, 208); this.btnLanguage.Location = new System.Drawing.Point(99, 98);
this.btnLanguage.Name = "btnLanguage"; this.btnLanguage.Name = "btnLanguage";
this.btnLanguage.Size = new System.Drawing.Size(158, 103); this.btnLanguage.Size = new System.Drawing.Size(118, 103);
this.btnLanguage.TabIndex = 11; this.btnLanguage.TabIndex = 11;
this.btnLanguage.Text = "语言"; this.btnLanguage.Text = "语言";
this.btnLanguage.UseVisualStyleBackColor = false; this.btnLanguage.UseVisualStyleBackColor = false;
...@@ -92,9 +91,9 @@ ...@@ -92,9 +91,9 @@
this.btnExit.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnExit.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnExit.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnExit.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnExit.ForeColor = System.Drawing.Color.White; this.btnExit.ForeColor = System.Drawing.Color.White;
this.btnExit.Location = new System.Drawing.Point(426, 209); this.btnExit.Location = new System.Drawing.Point(465, 206);
this.btnExit.Name = "btnExit"; this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(158, 103); this.btnExit.Size = new System.Drawing.Size(118, 103);
this.btnExit.TabIndex = 10; this.btnExit.TabIndex = 10;
this.btnExit.Text = "返回"; this.btnExit.Text = "返回";
this.btnExit.UseVisualStyleBackColor = false; this.btnExit.UseVisualStyleBackColor = false;
...@@ -107,7 +106,7 @@ ...@@ -107,7 +106,7 @@
this.btnPosition.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnPosition.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnPosition.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnPosition.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnPosition.ForeColor = System.Drawing.Color.White; this.btnPosition.ForeColor = System.Drawing.Color.White;
this.btnPosition.Location = new System.Drawing.Point(465, 100); this.btnPosition.Location = new System.Drawing.Point(465, 98);
this.btnPosition.Name = "btnPosition"; this.btnPosition.Name = "btnPosition";
this.btnPosition.Size = new System.Drawing.Size(118, 103); this.btnPosition.Size = new System.Drawing.Size(118, 103);
this.btnPosition.TabIndex = 6; this.btnPosition.TabIndex = 6;
...@@ -122,7 +121,7 @@ ...@@ -122,7 +121,7 @@
this.btnDebug.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnDebug.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnDebug.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnDebug.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDebug.ForeColor = System.Drawing.Color.White; this.btnDebug.ForeColor = System.Drawing.Color.White;
this.btnDebug.Location = new System.Drawing.Point(221, 100); this.btnDebug.Location = new System.Drawing.Point(221, 98);
this.btnDebug.Name = "btnDebug"; this.btnDebug.Name = "btnDebug";
this.btnDebug.Size = new System.Drawing.Size(118, 103); this.btnDebug.Size = new System.Drawing.Size(118, 103);
this.btnDebug.TabIndex = 5; this.btnDebug.TabIndex = 5;
...@@ -137,9 +136,9 @@ ...@@ -137,9 +136,9 @@
this.btnPwdUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnPwdUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnPwdUpdate.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnPwdUpdate.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnPwdUpdate.ForeColor = System.Drawing.Color.White; this.btnPwdUpdate.ForeColor = System.Drawing.Color.White;
this.btnPwdUpdate.Location = new System.Drawing.Point(263, 209); this.btnPwdUpdate.Location = new System.Drawing.Point(343, 206);
this.btnPwdUpdate.Name = "btnPwdUpdate"; this.btnPwdUpdate.Name = "btnPwdUpdate";
this.btnPwdUpdate.Size = new System.Drawing.Size(158, 103); this.btnPwdUpdate.Size = new System.Drawing.Size(118, 103);
this.btnPwdUpdate.TabIndex = 19; this.btnPwdUpdate.TabIndex = 19;
this.btnPwdUpdate.Text = "密码修改"; this.btnPwdUpdate.Text = "密码修改";
this.btnPwdUpdate.UseVisualStyleBackColor = false; this.btnPwdUpdate.UseVisualStyleBackColor = false;
...@@ -152,7 +151,7 @@ ...@@ -152,7 +151,7 @@
this.btnWidthC.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnWidthC.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnWidthC.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnWidthC.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnWidthC.ForeColor = System.Drawing.Color.White; this.btnWidthC.ForeColor = System.Drawing.Color.White;
this.btnWidthC.Location = new System.Drawing.Point(343, 99); this.btnWidthC.Location = new System.Drawing.Point(343, 98);
this.btnWidthC.Name = "btnWidthC"; this.btnWidthC.Name = "btnWidthC";
this.btnWidthC.Size = new System.Drawing.Size(118, 103); this.btnWidthC.Size = new System.Drawing.Size(118, 103);
this.btnWidthC.TabIndex = 20; this.btnWidthC.TabIndex = 20;
......
using System; using Asa;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
...@@ -8,7 +9,7 @@ using System.Text; ...@@ -8,7 +9,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using TSA_V.Common; using TSA_V.Common;
using TSA_V.DeviceLibrary; using TSA_V.DeviceLibrary;
namespace TSA_V namespace TSA_V
{ {
...@@ -66,6 +67,31 @@ namespace TSA_V ...@@ -66,6 +67,31 @@ namespace TSA_V
private void FrmMaintenance_Load(object sender, EventArgs e) private void FrmMaintenance_Load(object sender, EventArgs e)
{ {
LanguageProcess(); LanguageProcess();
if (FormManager.UserInfo.Limit.Equals(UserLimit.Admin)) {
btnDeviceSelect.Visible = true;
btnLanguage.Visible = true;
}
else if(FormManager.UserInfo.Limit.Equals(UserLimit.Debug))
{
button1.Visible = true;
btnDebug.Visible = true;
btnWidthC.Visible = true;
btnPosition.Visible = true;
btnDeviceSelect.Visible = false ;
btnLanguage.Visible = false ;
}
else
{
button1.Visible = false;
btnDebug.Visible = false;
btnWidthC.Visible = false;
btnPosition.Visible = false;
btnDeviceSelect.Visible = false;
btnLanguage.Visible = false;
}
} }
private void btnDeviceSelect_Click(object sender, EventArgs e) private void btnDeviceSelect_Click(object sender, EventArgs e)
{ {
...@@ -73,6 +99,36 @@ namespace TSA_V ...@@ -73,6 +99,36 @@ namespace TSA_V
//this.Visible = false; //this.Visible = false;
//frmLanguage.ShowDialog(); //frmLanguage.ShowDialog();
//this.Visible = true; //this.Visible = true;
SetUserMLanager();
this.Visible = false;
FormManager.userManager.Value.ManageForm(this);
this.Visible = true;
}
private void SetUserMLanager()
{
Asa.Language.AddFail = ResourceCulture.GetString("添加用户失败");
Asa.Language.Exit = ResourceCulture.GetString("退出");
Asa.Language.AddUpdateDel = new string[] {
ResourceCulture.GetString("增加") ,
ResourceCulture.GetString("修改") ,
ResourceCulture.GetString("删除") };
Asa.Language.UserPwdLimit = new string[] {
ResourceCulture.GetString("用户名") ,
ResourceCulture.GetString("密码") ,
ResourceCulture.GetString("权限") };
Asa.Language.ManageTitle = ResourceCulture.GetString("用户管理");
Asa.Language.DelConfirm = ResourceCulture.GetString("确认删除用户");
Asa.Language.DelSucceed = ResourceCulture.GetString("删除用户成功");
Asa.Language.DelFail = ResourceCulture.GetString("删除用户失败");
Asa.Language.UpdateConfirm = ResourceCulture.GetString("确定修改用户信息");
Asa.Language.UpdateSucceed = ResourceCulture.GetString("修改用户成功");
Asa.Language.UpdateFail = ResourceCulture.GetString("修改用户失败");
Asa.Language.AddSucceed = ResourceCulture.GetString("添加用户成功");
Asa.Language.AddFail = ResourceCulture.GetString("添加用户失败");
Asa.Language.UserPwdWrong = ResourceCulture.GetString("用户名或密码错误");
} }
private void button1_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e)
......
...@@ -36,6 +36,7 @@ namespace TSA_V ...@@ -36,6 +36,7 @@ namespace TSA_V
this.btnExit = new System.Windows.Forms.Button(); this.btnExit = new System.Windows.Forms.Button();
this.btnWork = new System.Windows.Forms.Button(); this.btnWork = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
this.btnHistory = new System.Windows.Forms.Button();
this.LblUserName = new System.Windows.Forms.Label(); this.LblUserName = new System.Windows.Forms.Label();
this.btnScreenTest = new System.Windows.Forms.Button(); this.btnScreenTest = new System.Windows.Forms.Button();
this.lblWaitTime = new System.Windows.Forms.Label(); this.lblWaitTime = new System.Windows.Forms.Label();
...@@ -45,7 +46,6 @@ namespace TSA_V ...@@ -45,7 +46,6 @@ namespace TSA_V
this.btnMaintenance = new System.Windows.Forms.Button(); this.btnMaintenance = new System.Windows.Forms.Button();
this.btnCom = new System.Windows.Forms.Button(); this.btnCom = new System.Windows.Forms.Button();
this.btnProduct = new System.Windows.Forms.Button(); this.btnProduct = new System.Windows.Forms.Button();
this.btnHistory = new System.Windows.Forms.Button();
this.panel1.SuspendLayout(); this.panel1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
...@@ -114,6 +114,22 @@ namespace TSA_V ...@@ -114,6 +114,22 @@ namespace TSA_V
this.panel1.Size = new System.Drawing.Size(861, 453); this.panel1.Size = new System.Drawing.Size(861, 453);
this.panel1.TabIndex = 14; this.panel1.TabIndex = 14;
// //
// btnHistory
//
this.btnHistory.BackColor = System.Drawing.Color.Transparent;
this.btnHistory.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnHistory.BackgroundImage")));
this.btnHistory.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.btnHistory.FlatAppearance.BorderSize = 0;
this.btnHistory.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnHistory.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnHistory.ForeColor = System.Drawing.Color.White;
this.btnHistory.Location = new System.Drawing.Point(412, 195);
this.btnHistory.Name = "btnHistory";
this.btnHistory.Size = new System.Drawing.Size(222, 81);
this.btnHistory.TabIndex = 20;
this.btnHistory.UseVisualStyleBackColor = false;
this.btnHistory.Click += new System.EventHandler(this.BtnHistory_Click);
//
// LblUserName // LblUserName
// //
this.LblUserName.AutoSize = true; this.LblUserName.AutoSize = true;
...@@ -204,7 +220,7 @@ namespace TSA_V ...@@ -204,7 +220,7 @@ namespace TSA_V
this.btnMaintenance.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnMaintenance.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnMaintenance.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnMaintenance.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnMaintenance.ForeColor = System.Drawing.Color.White; this.btnMaintenance.ForeColor = System.Drawing.Color.White;
this.btnMaintenance.Location = new System.Drawing.Point(527, 285); this.btnMaintenance.Location = new System.Drawing.Point(414, 287);
this.btnMaintenance.Name = "btnMaintenance"; this.btnMaintenance.Name = "btnMaintenance";
this.btnMaintenance.Size = new System.Drawing.Size(107, 81); this.btnMaintenance.Size = new System.Drawing.Size(107, 81);
this.btnMaintenance.TabIndex = 8; this.btnMaintenance.TabIndex = 8;
...@@ -220,7 +236,7 @@ namespace TSA_V ...@@ -220,7 +236,7 @@ namespace TSA_V
this.btnCom.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.btnCom.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCom.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.btnCom.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCom.ForeColor = System.Drawing.Color.White; this.btnCom.ForeColor = System.Drawing.Color.White;
this.btnCom.Location = new System.Drawing.Point(412, 285); this.btnCom.Location = new System.Drawing.Point(527, 287);
this.btnCom.Name = "btnCom"; this.btnCom.Name = "btnCom";
this.btnCom.Size = new System.Drawing.Size(107, 81); this.btnCom.Size = new System.Drawing.Size(107, 81);
this.btnCom.TabIndex = 5; this.btnCom.TabIndex = 5;
...@@ -243,22 +259,6 @@ namespace TSA_V ...@@ -243,22 +259,6 @@ namespace TSA_V
this.btnProduct.UseVisualStyleBackColor = false; this.btnProduct.UseVisualStyleBackColor = false;
this.btnProduct.Click += new System.EventHandler(this.btnProduct_Click); this.btnProduct.Click += new System.EventHandler(this.btnProduct_Click);
// //
// btnHistory
//
this.btnHistory.BackColor = System.Drawing.Color.Transparent;
this.btnHistory.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnHistory.BackgroundImage")));
this.btnHistory.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.btnHistory.FlatAppearance.BorderSize = 0;
this.btnHistory.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnHistory.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnHistory.ForeColor = System.Drawing.Color.White;
this.btnHistory.Location = new System.Drawing.Point(412, 195);
this.btnHistory.Name = "btnHistory";
this.btnHistory.Size = new System.Drawing.Size(222, 81);
this.btnHistory.TabIndex = 20;
this.btnHistory.UseVisualStyleBackColor = false;
this.btnHistory.Click += new System.EventHandler(this.BtnHistory_Click);
//
// FrmMenu // FrmMenu
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
...@@ -299,7 +299,7 @@ namespace TSA_V ...@@ -299,7 +299,7 @@ namespace TSA_V
private System.Windows.Forms.Label lblWaitTime; private System.Windows.Forms.Label lblWaitTime;
private System.Windows.Forms.Timer timer1; private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Button btnScreenTest; private System.Windows.Forms.Button btnScreenTest;
private System.Windows.Forms.Label LblUserName;
private System.Windows.Forms.Button btnHistory; private System.Windows.Forms.Button btnHistory;
private System.Windows.Forms.Label LblUserName;
} }
} }
\ No newline at end of file \ No newline at end of file
...@@ -15,6 +15,7 @@ using TSA_V.LoadCSVLibrary; ...@@ -15,6 +15,7 @@ using TSA_V.LoadCSVLibrary;
using System.IO; using System.IO;
using AccAOI; using AccAOI;
using System.Speech.Synthesis; using System.Speech.Synthesis;
using Asa;
namespace TSA_V namespace TSA_V
{ {
...@@ -30,10 +31,29 @@ namespace TSA_V ...@@ -30,10 +31,29 @@ namespace TSA_V
ResourceCulture.SetCurrentCulture(str); ResourceCulture.SetCurrentCulture(str);
frmMain = this; frmMain = this;
CheckForIllegalCrossThreadCalls = false; CheckForIllegalCrossThreadCalls = false;
InitializeComponent(); InitializeComponent();
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.btnCom.Visible = true ; this.btnCom.Visible = true;
if (FormManager.UserInfo.Limit.Equals(UserLimit.Admin) || FormManager.UserInfo.Limit.Equals(UserLimit.Debug))
{
btnProduct.Visible = true;
btnCom.Visible = true;
}
else
{
btnProduct.Visible = false;
btnCom.Visible = true;
}
//if (FormManager.UserInfo.Limit.Equals(UserLimit.Admin))
//{
// btnMaintenance.Visible = true;
//}
//else
//{
// btnMaintenance.Visible = false ;
//}
} }
public static void Speak(string text) public static void Speak(string text)
{ {
...@@ -60,27 +80,31 @@ namespace TSA_V ...@@ -60,27 +80,31 @@ namespace TSA_V
fw.ShowDialog(); fw.ShowDialog();
this.Visible = true; this.Visible = true;
} }
private void btnProduct_Click(object sender, EventArgs e) private void btnProduct_Click(object sender, EventArgs e)
{ {
FrmPwd fw = new FrmPwd(10); //FrmPwd fw = new FrmPwd(10);
DialogResult result = fw.ShowDialog(); //DialogResult result = fw.ShowDialog();
if (!result.Equals(DialogResult.OK)) //if (!result.Equals(DialogResult.OK))
{ //{
LogUtil.info("点击 元器件信息,没有正确输入密码"); // LogUtil.info("点击 元器件信息,没有正确输入密码");
return; // return;
} //}
this.Visible = false; ;
isClick = true;
FrmBoardList.instance.Show(); this.Visible = false; ;
FrmBoardList.instance .LoadCom(); isClick = true;
FrmBoardList.instance.Show();
FrmBoardList.instance.LoadCom();
} }
private bool useLed = false; private bool useLed = false;
private System.Timers.Timer timer = new System.Timers.Timer(); private System.Timers.Timer timer = new System.Timers.Timer();
private void FrmMenu_Load(object sender, EventArgs e) private void FrmMenu_Load(object sender, EventArgs e)
{ {
LblUserName.Text = DB.userName; DB.userName = FormManager.UserInfo.Name;
LblUserName.Text = FormManager.UserInfo.Name + "/" + FormManager.UserInfo.Limit;
GetVersion(true); GetVersion(true);
Task.Factory.StartNew(delegate Task.Factory.StartNew(delegate
{ {
...@@ -225,13 +249,13 @@ namespace TSA_V ...@@ -225,13 +249,13 @@ namespace TSA_V
private void btnCom_Click(object sender, EventArgs e) private void btnCom_Click(object sender, EventArgs e)
{ {
FrmPwd fw = new FrmPwd(10); //FrmPwd fw = new FrmPwd(10);
DialogResult result = fw.ShowDialog(); //DialogResult result = fw.ShowDialog();
if (!result.Equals(DialogResult.OK)) //if (!result.Equals(DialogResult.OK))
{ //{
LogUtil.info("点击 元器件信息,没有正确输入密码"); // LogUtil.info("点击 元器件信息,没有正确输入密码");
return; // return;
} //}
isClick = true; isClick = true;
FrmComponentList.instance.Show(); FrmComponentList.instance.Show();
this.Visible = false; this.Visible = false;
...@@ -268,13 +292,13 @@ namespace TSA_V ...@@ -268,13 +292,13 @@ namespace TSA_V
private void btnMaintenance_Click(object sender, EventArgs e) private void btnMaintenance_Click(object sender, EventArgs e)
{ {
FrmPwd fw = new FrmPwd(10); //FrmPwd fw = new FrmPwd(10);
DialogResult result = fw.ShowDialog(); //DialogResult result = fw.ShowDialog();
if (!result.Equals(DialogResult.OK)) //if (!result.Equals(DialogResult.OK))
{ //{
LogUtil.info("点击 元器件信息,没有正确输入密码"); // LogUtil.info("点击 元器件信息,没有正确输入密码");
return; // return;
} //}
isClick = true; isClick = true;
FrmMaintenance.instance.Show(); FrmMaintenance.instance.Show();
this.Visible = false; this.Visible = false;
......
...@@ -1190,7 +1190,7 @@ ...@@ -1190,7 +1190,7 @@
<value>DAC MODULE DEBUG</value> <value>DAC MODULE DEBUG</value>
</data> </data>
<data name="FrmMaintenance_btnDeviceSelect_Text" xml:space="preserve"> <data name="FrmMaintenance_btnDeviceSelect_Text" xml:space="preserve">
<value>DEVICE SELECTION</value> <value>USER MANAGMENT </value>
</data> </data>
<data name="FrmMaintenance_btnLed_Text" xml:space="preserve"> <data name="FrmMaintenance_btnLed_Text" xml:space="preserve">
<value>LED MODULE DEBUG</value> <value>LED MODULE DEBUG</value>
...@@ -2267,6 +2267,25 @@ ...@@ -2267,6 +2267,25 @@
<value>point no</value> <value>point no</value>
</data> </data>
<data name="名称" xml:space="preserve"> <data name="名称" xml:space="preserve">
<value>point name</value> <value>point name</value>
</data> </data>
<data name="用户名或密码错误" xml:space="preserve">
<value>Incorrect user name or password</value>
</data>
<data name = "添加用户失败" xml:space = "preserve"> <value> Failed to add user </value> </data>
<data name = "退出" xml:space = "preserve"> <value> exit </value> </data>
<data name = "增加" xml:space = "preserve"> <value> add </value> </data>
<data name = "修改" xml:space = "preserve"> <value> modify </value> </data>
<data name = "删除" xml:space = "preserve"> <value> delete </value> </data>
<data name = "用户名" xml:space = "preserve"> <value> username </value> </data>
<data name = "密码" xml:space = "preserve"> <value> password </value> </data>
<data name = "权限" xml:space = "preserve"> <value> Permission </value> </data>
<data name = "用户管理" xml:space = "preserve"> <value> user management </value> </data>
<data name = "确认删除用户" xml:space = "preserve"> <value> Confirm to delete user </value> </data>
<data name = "用户删除成功" xml:space = "preserve"> <value> User deleted successfully </value> </data>
<data name = "用户删除失败" xml:space = "preserve"> <value> Failed to delete user </value> </data>
<data name = "确定修改用户信息" xml:space = "preserve"> <value> Confirm to modify user information </value> </data>
<data name = "用户修改成功" xml:space = "preserve"> <value> Modify user successfully </value> </data>
<data name = "用户修改失败" xml:space = "preserve"> <value> Failed to modify user </value> </data>
<data name = "添加用户成功" xml:space = "preserve"> <value> Added user successfully </value> </data>
</root> </root>
\ No newline at end of file \ No newline at end of file
...@@ -1174,7 +1174,7 @@ ...@@ -1174,7 +1174,7 @@
<value>DAC模块调试</value> <value>DAC模块调试</value>
</data> </data>
<data name="FrmMaintenance_btnDeviceSelect_Text" xml:space="preserve"> <data name="FrmMaintenance_btnDeviceSelect_Text" xml:space="preserve">
<value>设备选择</value> <value>用户管理</value>
</data> </data>
<data name="FrmMaintenance_btnLed_Text" xml:space="preserve"> <data name="FrmMaintenance_btnLed_Text" xml:space="preserve">
<value>LED模块调试</value> <value>LED模块调试</value>
...@@ -2250,38 +2250,56 @@ ...@@ -2250,38 +2250,56 @@
<data name="FrmHistorySearch_Text" xml:space="preserve"> <data name="FrmHistorySearch_Text" xml:space="preserve">
<value>历史记录</value> <value>历史记录</value>
</data> </data>
<data name="ID" xml:space="preserve"> <data name="ID" xml:space="preserve">
<value>ID</value> <value>ID</value>
</data> </data>
<data name="程序名称" xml:space="preserve"> <data name="程序名称" xml:space="preserve">
<value>程序名称</value> <value>程序名称</value>
</data> </data>
<data name="程序类型" xml:space="preserve"> <data name="程序类型" xml:space="preserve">
<value>程序类型</value> <value>程序类型</value>
</data> </data>
<data name="条码" xml:space="preserve"> <data name="条码" xml:space="preserve">
<value>条码</value> <value>条码</value>
</data> </data>
<data name="宽度" xml:space="preserve"> <data name="宽度" xml:space="preserve">
<value>宽度 ↑</value> <value>宽度 ↑</value>
</data> </data>
<data name="长度" xml:space="preserve"> <data name="长度" xml:space="preserve">
<value>长度→</value> <value>长度→</value>
</data> </data>
<data name="结果" xml:space="preserve"> <data name="结果" xml:space="preserve">
<value>结果</value> <value>结果</value>
</data> </data>
<data name="用户" xml:space="preserve"> <data name="用户" xml:space="preserve">
<value>用户</value> <value>用户</value>
</data> </data>
<data name="时间" xml:space="preserve"> <data name="时间" xml:space="preserve">
<value>时间</value> <value>时间</value>
</data> </data>
<data name="编号" xml:space="preserve"> <data name="编号" xml:space="preserve">
<value>编号</value> <value>编号</value>
</data> </data>
<data name="名称" xml:space="preserve"> <data name="名称" xml:space="preserve">
<value>名称</value> <value>名称</value>
</data> </data>
<data name="用户名或密码错误" xml:space="preserve">
<value>用户名或密码错误</value>
</data>
<data name = "添加用户失败" xml:space = "preserve"> <value> 添加用户失败 </value> </data>
<data name = "退出" xml:space = "preserve"> <value> 退出 </value> </data>
<data name = "增加" xml:space = "preserve"> <value> 增加 </value> </data>
<data name = "修改" xml:space = "preserve"> <value> 修改 </value> </data>
<data name = "删除" xml:space = "preserve"> <value> 删除 </value> </data>
<data name = "用户名" xml:space = "preserve"> <value> 用户名 </value> </data>
<data name = "密码" xml:space = "preserve"> <value> 密码 </value> </data>
<data name = "权限" xml:space = "preserve"> <value> 权限 </value> </data>
<data name = "用户管理" xml:space = "preserve"> <value> 用户管理 </value> </data>
<data name = "确认删除用户" xml:space = "preserve"> <value> 确认删除用户 </value> </data>
<data name = "删除用户成功" xml:space = "preserve"> <value> 删除用户成功 </value> </data>
<data name = "删除用户失败" xml:space = "preserve"> <value> 删除用户失败 </value> </data>
<data name = "确定修改用户信息" xml:space = "preserve"> <value> 确定修改用户信息 </value> </data>
<data name = "修改用户成功" xml:space = "preserve"> <value> 修改用户成功 </value> </data>
<data name = "修改用户失败" xml:space = "preserve"> <value> 修改用户失败 </value> </data>
<data name = "添加用户成功" xml:space = "preserve"> <value> 添加用户成功 </value> </data>
</root> </root>
\ No newline at end of file \ No newline at end of file
...@@ -110,13 +110,18 @@ namespace TSA_V ...@@ -110,13 +110,18 @@ namespace TSA_V
} }
public static void LogDefaultMap() public static void LogDefaultMap()
{ {
LogUtil.info("开始打印缺少的文字配置" + defaultMap.Count); //LogUtil.info("开始打印缺少的文字配置" + defaultMap.Count);
StringBuilder builder = new StringBuilder();
builder.Append("开始打印缺少的文字配置" + defaultMap.Count+"\r\n");
foreach (string key in defaultMap.Keys) foreach (string key in defaultMap.Keys)
{ {
string value = defaultMap[key]; string value = defaultMap[key];
LogUtil.info(" 缺少文字配置[" + key + "] 默认值[" + value + "]"); builder.Append($"<data name = {key} xml:space = \"preserve\"> <value> { value} </value> </data> \r\n");
} //LogUtil.info(" 缺少文字配置[" + key + "] 默认值[" + value + "]");
LogUtil.info("结束打印缺少的文字配置"); }
builder.Append("结束打印缺少的文字配置");
LogUtil.info(builder.ToString());
} }
private static string spiltStr = "_"; private static string spiltStr = "_";
private static string Text = "Text"; private static string Text = "Text";
......
...@@ -69,6 +69,9 @@ ...@@ -69,6 +69,9 @@
<Reference Include="Asa.Theme"> <Reference Include="Asa.Theme">
<HintPath>..\dll\Asa.Theme.dll</HintPath> <HintPath>..\dll\Asa.Theme.dll</HintPath>
</Reference> </Reference>
<Reference Include="Asa.UserManagement">
<HintPath>..\dll\user\Asa.UserManagement.dll</HintPath>
</Reference>
<Reference Include="CodeLibrary"> <Reference Include="CodeLibrary">
<HintPath>..\dll\CodeLibrary.dll</HintPath> <HintPath>..\dll\CodeLibrary.dll</HintPath>
</Reference> </Reference>
...@@ -114,12 +117,6 @@ ...@@ -114,12 +117,6 @@
<Compile Include="DataCalculate.cs"> <Compile Include="DataCalculate.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="deviceDebug\FrmPwd.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="deviceDebug\FrmPwd.Designer.cs">
<DependentUpon>FrmPwd.cs</DependentUpon>
</Compile>
<Compile Include="deviceDebug\FrmUpdatePwd.cs"> <Compile Include="deviceDebug\FrmUpdatePwd.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
...@@ -306,9 +303,6 @@ ...@@ -306,9 +303,6 @@
<Compile Include="FrmDeviceConfig.Designer.cs"> <Compile Include="FrmDeviceConfig.Designer.cs">
<DependentUpon>FrmDeviceConfig.cs</DependentUpon> <DependentUpon>FrmDeviceConfig.cs</DependentUpon>
</Compile> </Compile>
<EmbeddedResource Include="deviceDebug\FrmPwd.resx">
<DependentUpon>FrmPwd.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="deviceDebug\FrmUpdatePwd.resx"> <EmbeddedResource Include="deviceDebug\FrmUpdatePwd.resx">
<DependentUpon>FrmUpdatePwd.cs</DependentUpon> <DependentUpon>FrmUpdatePwd.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
......
...@@ -26,14 +26,14 @@ namespace TSA_V ...@@ -26,14 +26,14 @@ namespace TSA_V
private void btnNext_Click(object sender, EventArgs e) private void btnNext_Click(object sender, EventArgs e)
{ {
string pwd = txtPwd.Text; string pwd = txtPwd.Text.Trim();
string configPwd = ConfigAppSettings.GetValue(Setting_Init.Config_Pwd); //string configPwd = ConfigAppSettings.GetValue(Setting_Init.Config_Pwd);
if (configPwd.Equals("")) //if (configPwd.Equals(""))
{ //{
configPwd = "123456"; // configPwd = "123456";
ConfigAppSettings.SaveValue(Setting_Init.Config_Pwd,configPwd); // ConfigAppSettings.SaveValue(Setting_Init.Config_Pwd,configPwd);
} //}
if (pwd.Equals(configPwd)) if (pwd.Equals(FormManager.UserInfo.Password))
{ {
string newPwd = FormUtil.getValue(txtNPwd); string newPwd = FormUtil.getValue(txtNPwd);
...@@ -47,7 +47,8 @@ namespace TSA_V ...@@ -47,7 +47,8 @@ namespace TSA_V
} }
ConfigAppSettings.SaveValue(Setting_Init.Config_Pwd, newPwd); //ConfigAppSettings.SaveValue(Setting_Init.Config_Pwd, newPwd);
FormManager.userManager.Value.UserUpdatePassword(FormManager.UserInfo.Name, newPwd);
MessageBox.Show(ResourceCulture.GetString("修改密码成功", "修改密码成功")); MessageBox.Show(ResourceCulture.GetString("修改密码成功", "修改密码成功"));
this.DialogResult = DialogResult.OK; this.DialogResult = DialogResult.OK;
......
namespace TSA_V
{
partial class FrmUserM
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmUserM));
this.btnNew = new System.Windows.Forms.Button();
this.groupInfo = new System.Windows.Forms.GroupBox();
this.btnBack = new System.Windows.Forms.Button();
this.cmbLevel = new System.Windows.Forms.ComboBox();
this.label6 = new System.Windows.Forms.Label();
this.txtCount = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.txtName = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.btnSave = new System.Windows.Forms.Button();
this.dgvList = new System.Windows.Forms.DataGridView();
this.Column_Name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Pwd = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Limit = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column_Del = new System.Windows.Forms.DataGridViewLinkColumn();
this.groupInfo.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvList)).BeginInit();
this.SuspendLayout();
//
// btnNew
//
this.btnNew.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnNew.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnNew.Location = new System.Drawing.Point(170, 187);
this.btnNew.Name = "btnNew";
this.btnNew.Size = new System.Drawing.Size(120, 40);
this.btnNew.TabIndex = 71;
this.btnNew.Text = "新增";
this.btnNew.UseVisualStyleBackColor = true;
//
// groupInfo
//
this.groupInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupInfo.Controls.Add(this.btnNew);
this.groupInfo.Controls.Add(this.cmbLevel);
this.groupInfo.Controls.Add(this.label6);
this.groupInfo.Controls.Add(this.txtCount);
this.groupInfo.Controls.Add(this.label5);
this.groupInfo.Controls.Add(this.txtName);
this.groupInfo.Controls.Add(this.label1);
this.groupInfo.Controls.Add(this.btnSave);
this.groupInfo.Location = new System.Drawing.Point(409, 10);
this.groupInfo.Name = "groupInfo";
this.groupInfo.Size = new System.Drawing.Size(315, 265);
this.groupInfo.TabIndex = 68;
this.groupInfo.TabStop = false;
this.groupInfo.Text = "用户信息";
//
// btnBack
//
this.btnBack.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnBack.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnBack.Location = new System.Drawing.Point(594, 358);
this.btnBack.Name = "btnBack";
this.btnBack.Size = new System.Drawing.Size(120, 40);
this.btnBack.TabIndex = 6;
this.btnBack.Text = "退出";
this.btnBack.UseVisualStyleBackColor = true;
//
// cmbLevel
//
this.cmbLevel.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;
this.cmbLevel.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.cmbLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbLevel.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbLevel.FormattingEnabled = true;
this.cmbLevel.Location = new System.Drawing.Point(129, 121);
this.cmbLevel.Name = "cmbLevel";
this.cmbLevel.Size = new System.Drawing.Size(171, 27);
this.cmbLevel.TabIndex = 75;
//
// label6
//
this.label6.Location = new System.Drawing.Point(9, 127);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(114, 17);
this.label6.TabIndex = 71;
this.label6.Text = "权限";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// txtCount
//
this.txtCount.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtCount.Location = new System.Drawing.Point(129, 76);
this.txtCount.MaxLength = 30;
this.txtCount.Name = "txtCount";
this.txtCount.Size = new System.Drawing.Size(171, 29);
this.txtCount.TabIndex = 70;
//
// label5
//
this.label5.Location = new System.Drawing.Point(9, 83);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(114, 17);
this.label5.TabIndex = 69;
this.label5.Text = "密码";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// txtName
//
this.txtName.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtName.Location = new System.Drawing.Point(129, 32);
this.txtName.MaxLength = 30;
this.txtName.Name = "txtName";
this.txtName.Size = new System.Drawing.Size(171, 29);
this.txtName.TabIndex = 33;
//
// label1
//
this.label1.Location = new System.Drawing.Point(9, 39);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(114, 17);
this.label1.TabIndex = 32;
this.label1.Text = "用户名";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// btnSave
//
this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.Location = new System.Drawing.Point(34, 186);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(120, 40);
this.btnSave.TabIndex = 4;
this.btnSave.Text = "保存";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// dgvList
//
this.dgvList.AllowUserToAddRows = false;
this.dgvList.AllowUserToDeleteRows = false;
this.dgvList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.dgvList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column_Name,
this.Column_Pwd,
this.Column_Limit,
this.Column_Del});
this.dgvList.Location = new System.Drawing.Point(12, 10);
this.dgvList.MultiSelect = false;
this.dgvList.Name = "dgvList";
this.dgvList.ReadOnly = true;
this.dgvList.RowHeadersWidth = 10;
this.dgvList.RowTemplate.Height = 23;
this.dgvList.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgvList.Size = new System.Drawing.Size(383, 393);
this.dgvList.TabIndex = 32;
this.dgvList.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvList_CellContentClick);
//
// Column_Name
//
this.Column_Name.HeaderText = "名称";
this.Column_Name.Name = "Column_Name";
this.Column_Name.ReadOnly = true;
//
// Column_Pwd
//
this.Column_Pwd.HeaderText = "密码";
this.Column_Pwd.Name = "Column_Pwd";
this.Column_Pwd.ReadOnly = true;
//
// Column_Limit
//
this.Column_Limit.HeaderText = "权限";
this.Column_Limit.Name = "Column_Limit";
this.Column_Limit.ReadOnly = true;
//
// Column_Del
//
this.Column_Del.HeaderText = "删除";
this.Column_Del.Name = "Column_Del";
this.Column_Del.ReadOnly = true;
this.Column_Del.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.Column_Del.Text = "删除";
this.Column_Del.ToolTipText = "删除";
this.Column_Del.UseColumnTextForLinkValue = true;
this.Column_Del.Width = 60;
//
// FrmUserM
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(736, 415);
this.Controls.Add(this.btnBack);
this.Controls.Add(this.groupInfo);
this.Controls.Add(this.dgvList);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmUserM";
this.Text = "用户管理";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmComponentList_FormClosing);
this.Load += new System.EventHandler(this.FrmPointType_Load);
this.VisibleChanged += new System.EventHandler(this.FrmComponentList_VisibleChanged);
this.groupInfo.ResumeLayout(false);
this.groupInfo.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dgvList)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnBack;
private System.Windows.Forms.DataGridView dgvList;
private System.Windows.Forms.GroupBox groupInfo;
private System.Windows.Forms.TextBox txtName;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Button btnNew;
private System.Windows.Forms.TextBox txtCount;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.ComboBox cmbLevel;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Name;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Pwd;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_Limit;
private System.Windows.Forms.DataGridViewLinkColumn Column_Del;
}
}
\ No newline at end of file \ No newline at end of file
using TSA_V.Common;
using TSA_V.DeviceLibrary;
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 TSA_V.LoadCSVLibrary;
using Asa;
namespace TSA_V
{
public partial class FrmUserM : FrmBase
{
public static FrmUserM instance = new FrmUserM();
private FrmUserM()
{
InitializeComponent();
}
private void FrmPointType_Load(object sender, EventArgs e)
{
// SetSkin(this);
loadPositionList();
LanguageProcess();
LanguagePro();
}
private void LanguagePro()
{
this.Column_Name.HeaderText = ResourceCulture.GetString(ResourceCulture.Col_Name, "名称");
this.Column_Limit.HeaderText = ResourceCulture.GetString(ResourceCulture.Col_Count, "权限");
this.Column_Pwd.HeaderText = ResourceCulture.GetString(ResourceCulture.Col_Position, "密码");
this.Column_Del.HeaderText = ResourceCulture.GetString(ResourceCulture.ItemText_Delete, "删除");
this.Column_Del.Text = ResourceCulture.GetString(ResourceCulture.ItemText_Delete, "删除");
this.Column_Del.ToolTipText = ResourceCulture.GetString(ResourceCulture.ItemText_Delete, "删除");
}
private void loadPositionList()
{
cmbLevel.Items.Clear();
cmbLevel.Items.Add(Asa.UserLimit.Admin);
cmbLevel.Items.Add(Asa.UserLimit.User );
cmbLevel.Items.Add(Asa.UserLimit.Debug );
cmbLevel.Items.Add(Asa.UserLimit.None);
cmbLevel.SelectedIndex = 2;
}
private void LoadList()
{
FormManager.userManager.Value.lget
}
private DataGridViewRow SetRowInfo(DataGridViewRow view, Asa.Users user)
{
if (view == null)
{
view = new DataGridViewRow();
view.CreateCells(dgvList);
}
view.Cells[Column_Name.Index].Value = user.Name.ToString();
view.Cells[this.Column_Pwd.Index].Value = user.Password.ToString();
view.Cells[Column_Limit.Index].Value = user.Limit.ToString();
return view;
}
private void btnNew_Click(object sender, EventArgs e)
{
FrmAddCom frm = new FrmAddCom();
this.Visible = false;
frm.ShowDialog();
this.Visible = true;
}
private void btnSave_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
int rowIndex = dgvList.SelectedRows[0].Index;
DataGridViewRow row = dgvList.Rows[rowIndex];
Users obj = getRowPointInfo(row);
if (obj == null)
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SelectC,"请选择元器件!"));
return;
}
if (cmbLevel.SelectedIndex < 0)
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SelectCPosition,"请选择元器件位置!"));
cmbLevel.Focus();
return;
}
TSAVPosition position = (TSAVPosition)cmbLevel.SelectedItem;
obj.ComponentName = FormUtil.getValue(txtName);
obj.ComponentDes = FormUtil.getValue(txtDes);
obj.ComCount = FormUtil.GetIntValue(txtCount);
obj.Notes = FormUtil.getValue(txtNotes);
obj.PartNum = FormUtil.getValue(txtPartNum);
obj.PositionNum = position.PositionNum;
if (obj.ComponentName.Equals(""))
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.WriteComName,"请输入元器件名称!"));
txtName.Focus();
return;
}
//if (obj.PositionNum.Equals(""))
//{
// MessageBox.Show("请输入元器件所在位置!");
// this.txtPosition.Focus();
// return;
//}
if (obj.ComCount<=0)
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.WriteComNum,"请输入元器件数量!"));
txtCount.Focus();
return;
}
CSVReaderBomManager.SaveComponet(cmbList.Text, obj);
//ComponentManager.Update(obj);
SetRowInfo(dgvList.Rows[rowIndex], obj);
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.ComSaveOk,"元器件【{0}】保存成功!", obj.PartNum + "-" + obj.ComponentName ));
groupInfo.Text = ResourceCulture.GetString(ResourceCulture.ComInfo,"元器件【{0}】的基本信息",obj.PartNum + "-" + obj.ComponentName);
}
}
private void btnDel_Click(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
int rowIndex = dgvList.SelectedRows[0].Index;
DeleteCom(rowIndex);
}
}
private Users getRowPointInfo(DataGridViewRow row)
{
Users user = new Users();
try
{
if (row.Cells[Column_Name.Name].Value == null)
{
return null;
}
user.Name = row.Cells[this.Column_Name.Name].Value.ToString();
user.Password = row.Cells[this.Column_Pwd.Name].Value.ToString();
user.Limit = (UserLimit)Convert.ToInt32(row.Cells[this.Column_Limit.Name].Value.ToString());
}
catch (Exception ex)
{
LogUtil.error("保存数据出错:" + ex.ToString());
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.CheckComNum, "请检查元器件数据是否正确!"));
return null;
}
return user;
}
private void showDetail(int rowIndex)
{
DataGridViewRow row = dgvList.Rows[rowIndex];
ComponetInfo obj = getRowPointInfo(row);
if (obj == null)
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.ChoiceCom,"请选择元器件!"));
return;
}
txtPartNum.Tag = obj;
txtName.Text = obj.ComponentName;
txtDes.Text = obj.ComponentDes;
txtCount.Text = obj.ComCount.ToString();
txtPartNum.Text = obj.PartNum;
txtNotes.Text = obj.Notes;
//txtPosition.Text = obj.PositionNum;
int index = -1;
foreach (TSAVPosition p in allPosition)
{
index++;
if (p.PositionNum.Equals(obj.PositionNum))
{
break;
}
}
if (index >= 0)
{
this.cmbLevel.SelectedIndex = index;
}
groupInfo.Text = ResourceCulture.GetString(ResourceCulture.ChoiceLibrary, "元器件【{0}】的基本信息",obj.PartNum+"-"+obj.ComponentName);
}
private void DeleteCom(int rowIndex)
{
DataGridViewRow row = dgvList.Rows[rowIndex];
ComponetInfo obj = getRowPointInfo(row);
if (MessageBox.Show(
ResourceCulture.GetString(ResourceCulture.SureDelCom, "确认要删除元器件【{0}】吗?", obj.PartNum + "-" + obj.ComponentName),
ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"),
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
else
{
CSVReaderBomManager.RemoveCom(cmbList.Text, obj);
this.dgvList.Rows.RemoveAt(rowIndex);
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.DelComOk,"元器件【{0}】删除成功!",obj.PartNum + "-" + obj.ComponentName)
,ResourceCulture.GetString(ResourceCulture.MsgTitle,"提示"));
}
}
private void btnBack_Click(object sender, EventArgs e)
{
//this.Close();
this.Visible = false;
FrmMenu.frmMain.Visible = true;
}
private void dgvList_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1 && e.ColumnIndex >= 0)
{
string name = this.dgvList.Columns[e.ColumnIndex].Name;
if (name.Equals(this.Column_Del.Name))
{
DeleteCom(e.RowIndex);
}
}
}
private void dgvList_SelectionChanged(object sender, EventArgs e)
{
if (dgvList.SelectedRows != null && dgvList.SelectedRows.Count > 0)
{
int rowIndex = dgvList.SelectedRows[0].Index;
showDetail(rowIndex);
}
}
private void btnDownLoad_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
sfd.FileName = ResourceCulture.GetString( "元器件库模板");
sfd.Filter = @"csv|*.csv";
DialogResult result = sfd.ShowDialog();
if (result.Equals(DialogResult.OK))
{
string filePath = sfd.FileName;
//if (Directory.Exists(filePath))
{
string sourcePath = Application.StartupPath + ConfigAppSettings.GetValue(Setting_Init.Componet_Template);
if (File.Exists(filePath))
{
File.Delete(filePath);
}
//复制文件
File.Copy(sourcePath, filePath);
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.DemoSave,"模板已保存在:" )+ filePath);
}
}
}
private void BtnBeiLiao_Click(object sender, EventArgs e)
{
if (cmbList.SelectedIndex >= 0)
{
string key = cmbList.Text;
List<ComponetInfo> list = CSVReaderBomManager.GetComList(key);
FrmPutCom frm = new FrmPutCom();
if (frm.SetOperateInfo(key, list))
{
this.Visible = false;
frm.ShowDialog();
this.Visible = true;
cmbList_SelectedIndexChanged(null, null);
}
}
else
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.ChoiceLibrary,"请先选择一个元器件库"));
}
}
private void FrmComponentList_FormClosing(object sender, FormClosingEventArgs e)
{
this.Visible = false;
FrmMenu.frmMain.Visible = true;
e.Cancel = true;
}
private void FrmComponentList_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible)
{
LanguagePro();
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Column_Name.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Pwd.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Limit.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Del.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAkAMDAAAAEACACoDgAAlgAAACAgAAABACAAqBAAAD4PAAAQEAAAAQAgAGgEAADmHwAAFBQAAAEA
IAC4BgAATiQAABgYAAABACAAiAkAAAYrAAAwMAAAAQAIAKgOAACONAAAEBAAAAEACABoBQAANkMAABQU
AAABACAAuAYAAJ5IAAAYGAAAAQAgAIgJAABWTwAAKAAAADAAAABgAAAAAQAIAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACAgIAAAIAAAACAgAAAAIAAAP//AMDAwAD///8AgIAAAIAAgACAAAAAALfbAAAc
HAAApNIAAOfPAADIkAAAwIEAANSpAAArKwAAt7cAANmyAABvtwAArlwAAIHAAACp1AAAlZUAADabAADU
1AAAq1cAANeuAADw+AAAb28AAM2aAACBgQAA9fUAZZs2AADq1AAAV1cAALLZAAD48AAAOp0AAJqaAAAn
JwAAttsAAHS6AACbmwAA7NkAAJMnAADbtgAAdHQAAGtrAACysgAAt28AAOvrAAD69QBLa2sAYzo6AACy
ZQAA/f0AADo6AADx8QAAeHgAAL9+AADgwAAAtWsAALu7AACdOgAALy8AAP36AAB+vwAAn88AAH2+AADX
1wAA8PAAAN68AAB+fgAAISEAAM+fAACrqwAArq4ACPjwAACXLwAAvN4AcJAhAACfnwAA+fkAADCYAACj
owAAvLwAFurUAADn5wAA0qQAANGjAACHhwAAq1YAANTqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAIAAAIAAAIAAAACAAACAAIAAAIAAAIAAAIAAAIAAAIAAAIAAgAAAgIAAAIAAAABAAQCAAQAAgAE
AgACAAAEAAIAAAIAAgAAAgACAAACAAQCAAQABAIABAADAAADAAEBAgACAAIAAwACCgACAAACAAQCAAIA
BAACAAQCAAIAAgAAAgAEAgACAAgAAgACAAEBAAADCgQCAAACAAADAAADAAIKAAIAAAADAAIKAAIAAAAA
AwACCgACAAAEAgkAAgEBAgAAAgAAAgQAAgIAAAIAAAIAAAMAAAIAAAIAAAMAAgACAAACAAADAAIAAAIA
BAEBAAMAAAMAAgAIBAACBAACBAACAgAAAAACBAACAgAAAAMAAgQAAgIAAAACAAQCAAEBAAACAAICBAIA
AgACAAACAAgEAAIEAwACAAgEAAIEAAAAAgAIBAACBAADAAIKAgEBAgADCgQAAgAEAgIEAgIEAgACAAIA
AAIEAgACAAIAAgACBAIAAgACAAACAAADAAEBAAAAAgAbBQUcAAACAFoFBQUFWwQCVQU5AAQCXAUFXQAA
AgAEAl4FBV8ACAQAAgEBAAIEAgAkBQUlCAACJgUFBQUFBTQAVQUFVgIAVwVYAAIAAgQCTAUFBVkAAgAC
AAEBAgACAAAbBQVOAAIAFAVPAgBQBQUoUQUFBQUFBQVSAgACAAIAUwUFBQVUAAMAAAEBAAQAAQAkBQUl
AABHBQVIAANJBQVCQwUFBQUFBQVKPQUFBUsDTAUFBQVNAAACBAEBAAIAAgAbBQUlAgAEAgACAEEFBQVC
QwUFRAAVBTwCPQUFBUUCNQUFBQVGAgkAAgEBAAIABAIbBQUlAwACCgwFBQUFBQU4ADkFOjsFBTwCPQUF
BT4KNQUxPwUFQAACAAEBAAMAAgobBQUcAAACMwUFBQUFBTQAADMFBQUFBSoDAAIAAAIANQUxCjYFNwIE
AAEBAgAAAgAbBQUlAgQAFAUFBQUuBAACAgApBQUFBS8AAAACBAAwBQUxACIFMgACAAEBAAIEAAIkBQUl
AgAIJgUdBAAnBQUoAAIpBQUFBSoCBAACAAgrBQUsAiIFBS0AAgEBAAIACAQbBQUcBAIAFAUdAAIeBR8C
AAIgBQUFFgACAAIEAiEFBREABCIFBSMABAEBAgQFBQUFBQUFBRMEFAUFBQUFBRUCAgQADgUFFgIEAgAC
ABcFBRgCAhkFBRoCAAEBAAIFBQUFBQUFBQsCAAwFBQUFDQIAAAIADgUPAAACAAACBBAFBREAAhIFBQUC
AAEBAAIEAgAAAgACAAIACAACBAIAAgAIAAICAAIACAACBAIAAgAIAAIEAAMKAgADAAEBAgACAAgAAgQA
AwADAAIAAgADAAMAAgAAAwADAAIAAgADAAMAAgACCAACAAIAAgEBAAMAAwACAAIACAADAAMAAgACAAgC
AAIACAIAAgAIAAMAAwAAAwADAAIAAwABAAEBAgACAAIAAwADAAIAAgACAAMAAwAAAwADAAADAAMAAgAC
AAICAAIAAgACAAIAAgEBAgQCAwACAAIAAgIEAgMAAgACAAICAAIAAgIAAgACAgQCAwACBAIDAAADAAMA
AwEBAAIAAAoCBAIDAAICAAIKAgQCAwACBAIDAAIEAgMAAAMCAAQCAgACBAICAAICAAEBAgQCBAIEAgAI
AgQCBAIEAgQCAwACAAIBAAICAAMIAAIAAQMGBgUBAgQCAwoDAAEBAgIAAgIAAwIEAgACAgACAgACAAMC
CQIAAwADCgIEAgQCAQUFBgUGBQgAAgACAgEBAAMCBAIDAAIAAgMAAwIEAgMAAQACAgACAgACAwACAgIB
BQYDAgMBBQEDAAMAAwEBAgACAgACCAQCAAIIAAIACAADAgIEAgMAAwIAAgIEAgQGBQIAAAIDBgUAAgIC
AAEBAgMAAwIEAgIDAgQCBAIDAgMAAgACAAIDAAIDAAMCAAIFBgMCAwACBgUCBAIEAgEBAgADAAICBAIA
AgMAAgMABgUGBQYFBgUGBgUGBQYGBQYFBgMAAgMEBQYAAgICBAEBAgMCAgQCAgQCBAICAwACBQgDAgQC
AwIDAgMCAAMCAwIBBQEDAgIBBgMDAgQCAgEBAgACAwIAAwICAgADAAIDBgMAAgICAAIAAgADAgIEAgAD
AQUGBgUGBQMCAAIDAAEBAgMAAgQIAgADCAMCAgIABQICBAIDAgMCBAICBAICAgMCAwEFBQYDAwICAwAC
AwEBAgIDAgIDAgMAAgACBAIBBgMAAgMAAgADAgMAAgMAAwACAgIAAwICAgQCAgMCAgEBAwACBAIAAgID
AgMCAgMCBQIDAgADAgMCAAIDAgICAgMAAwIDAAIEAgIEAgADAAEBAgIDAQEFBgMAAgADAAIEBgIAAwIC
AAIDCAIAAwYGBQYFBgUGBQYFBgUGBQgCAgEBAgMDBQYFBgUBAwICAwICBQMCAgMCAwgAAwIDAgUGBQYF
BgYFBgUGBQYFBgMCAwEBAgIBBgMCAwYFAgMAAgMCBgIEAgADAAMCAgQCAgYFBgUGBQYFBgUGBQYFBgMA
AgEBAgMFBQIDAgUGBgUGBQYGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgIDAgEBAgIBBgMCAQUB
AwIDAgMCAwIDAgMCAgMCAwIDAgYFBgUGBQYFBgUGBQYFBgMCAwEBAwIDBQYFBgUBAgICBAICAAMCAgID
AgIAAgMAAwUGBQYFBgUGBQYFBgUHBQICAgEBAgMCAQUGBQECAwADAgIDAgIEAgMAAwIDAgICAgYFBgUG
BQYFBgUGBQYFBgMCAwEBAgIDAgIDAAIDAgICAwIDAAMCAgICAwICBAIDAgMCAwIDAgMCAwIDAgMCAwIA
AgEBAwICBAICAwICAwIDAAICAwICAwMCAAMCAgMCAwACAwICAwICAwICAwICAgMCAwEAAQIDAgMCAgMA
AgMCAwIDAgIDAAIDAgIDAgIEAgIDAgMCAgQCAgMCAgQCAwIDAQD///////8AAIAAAAAAAQAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAB
AAAoAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHABVAFUAAABVAFUAVQAA
AFUAVQBVAAAAVQAAAFUAVQBVAAAAVQBVAFUAVQBVAAAAVQBVAFUAAABVAFUAVQAAAFUAVQBVAAAAVQBV
AFUAAABVAFUAVQAAAFUAVQBVACsAVQArAFUAKwBVAIAAVQAAAFUAVQBVAAAAVQAAABxVVVX/ABw5/wA5
AP8AHDn/ABwA/wA5AP8AHDn/ABwA/wBVAP8AAAD/ABw5/wBVAP8AAAD/AFUA/wAcAP8AOQD/ABwA/wA5
AP8AOQD/ABwA/wA5AP8AHDn/ADkA/wAcOf8ADhz/AEcc/wAOHP8AKxz/ADk5/wAcAP8AOTn/VVVV/1Vy
Vf8AHAD/DlUc/w45HP8AORz/ABwc/xxVAP8cAAD/AFUc/wAAAP8AVRz/ABw5/xw5AP8AVQD/AAAc/wAA
HP8AVRz/ABw5/xw5AP8AVQD/ABwA/wAcAP8AKw7/ACsO/w45Of8OHAD/AFUA/zk5AP8AKxz/HCsc/wBH
AP9VZFX/VXJV/wAcAP8OORz/Dhwc/wA5AP8AHDn/ADkA/wBVAP8AHBz/ADkA/wAcHP8AVQD/HAAA/wBV
Of8AAAD/ADkA/wAcHP8AVQD/HAAA/wBVOf8AHAD/ABwA/wBHDv8ADg7/DlUA/w4AAP8AVTn/ADkA/wAO
HP8cRxz/AA4c/1Vkcv9VVVX/ADk5/wAcAP8AVTn/ADkO/wA5Dv85Rxz/AA4c/wBVHP8AABz/AFUc/xwc
HP8AVRz/ADkA/wAOK/8ADg7/AFUc/xwcHP8AVRz/ADkA/wAAHP8AOTn/ACsA/wArOf8cOQ7/AFUO/wAc
Dv8AAA7/AFUc/wAcOf8cRwD/VWRV/1VyVf8AHAD/HFU5/xwcOf8AOQ7/ADkO/wArOf8AZAD/ADk5/wBV
AP8AOTn/HDkA/wA5HP8AVQD/AA4r/wBHDv8AOTn/HDkA/wA5HP8AVQD/ABwc/wAcAP8ARxz/AEcc/xw5
Dv8AHA7/AFUO/wAADv8AVRz/ABwA/xxHOf9VZFX/VVVV/wAcAP8AKxz/ACsA/wDn4v8A////Dm46/w4O
AP8AaRj/ALO3/wD///8A////APXr/wB0kv8AjFP/AP39/wCNdv8AIkr/AHk2/wDr4P8Aubn/ADoe/wAr
AP8AKxz/AD09/wClY/8A////Befs/xwrAP8cKzn/ADkA/1VyVf9VclX/ADkA/wBHHP8ADgD/AOfi/wD/
//8Obl//DkcA/wBgQP8A7ur/AL+i/wBxVf8E/Pj/AO/f/wBXbP8A59D/AOj0/wDMu/8AvLz/APX1/wCa
jP8AOQD/AEcA/wBHHP8ZQAv/Gc61/wD///8F+vX/AFVH/wBHOf8AHAD/VVVV/1VVVf8AHDn/HCsc/xwr
HP8A7OL/AP///wBIOv8ADgD/AH6q/wC4qv8AfGD/AGJi/wD4+P8A////AHg2/wC6uv8A//7/AMbG/wDf
7/8A/Pz/AKd8/wDS0v8A////AKm3/wB3Wv8Ay8v/AP///wD///8AjnX/HA4c/wBHHP9VZHL/VVVV/wBV
AP8ADhz/AEcc/wDi4v8A////AGVW/wArHP8cRxz/HBsM/wDGqv8A1NT/AP///wD///8sQiz/AI1r/wD+
/v8Abm7/AN/v/wD29v8AfSj/ANLS/wD///8Axrf/OWtO/wD4+P8AurP/APjx/wDLt/8cNjT/AEcA/1Vk
Vf9VZFX/AEc5/wArAP85KwD/AOLi/wD///8Abjr/AA4c/wB5O/8A6uX/AP///wD///8A3uj/AIp4/wAr
AP8AXU//AOnp/wD///8A////AIdv/wA5Of8AOQD/ABwO/wA5Dv8AgXn/APv7/xxNTf8cpqP/Ec7O/xFd
JP8AHDn/VVVV/1VkVf8ARwD/AA45/wBHAP8A7OL/AP///wBlOv8AKxz/OXlE/wDq7v8Atb//AFVx/wDb
4v8Aqrj/AERG/wBHAP8AvLz/AP///wD///8Ah2//ADkc/wAAHP8AVQ7/OTkO/wDX3/8A////AGps/wDA
o/8A7+//AImJ/wA5AP9VclX/VWRV/wBHHP8ccVX/HHGO/wDs7P8A////AKGY/wB+Yf8ASFj/APLl/wC1
ov8AjlX/APj8/wCfr/8AZAD/AEcc/wCtlP8A/Pr/AOTJ/wBWH/8ARxz/AEcA/wA5Of8AcmT/AP///wDZ
z/8AKxz/AJyq/wD///8tpo//ABwc/1VVcv9VZFX/AEcc/wD///8A////AP///wD///8A////AM/f/wBR
MP8AXVn/AP///wD///8A6/X/AJJ0/wArAP8ARxz/AE1F/wD37/8ApYP/ADAK/wBHHP8ADgD/AFUc/wBy
gP8A////ANnP/wBHAP8AXzT/AP///wDS6f8AVQD/VVVV/1VkVf8ARwD/ADk5/xw5AP8AKwD/ACsc/wBH
Dv8ARw7/HDkc/xw5AP8ARxz/AEcc/wA5HP8AORz/OUcA/wBHAP8ARw7/AEcO/xw5HP8cOQD/AEcc/wBH
HP8AORz/ADkc/zlHAP8ARwD/Dis5/w5HOf85OQD/ADkA/wBHOf9VZFX/VWRV/wBHOf8AORz/HDkc/wBH
AP8ARxz/HCsO/xwrDv8AVVX/AFU5/wArAP8AKwD/AFUc/zlVHP8ARwD/AEcA/xwrDv8cZA7/ADkc/wA5
AP85RwD/AEc5/wA5Of8AOTn/ACsc/wArHP8OZDn/DkcA/wA5HP8AORz/OUc5/1VkVf9VgFX/ACsc/wBk
Dv8ARw7/ADkc/wA5HP8ARzn/AGQA/wArHP8ARxz/AEcA/wBHOf8AORz/ADkc/wA5HP8AORz/AEc5/wAr
AP8ARzn/AEc5/wBHAP8AKxz/AGQO/wBHDv8AVQ7/AFUO/wA5HP8AHAD/AFUc/wBVHP8AKw7/VYBk/1Vk
Vf8ARxz/ACsO/zkODv8AVRz/AFUc/wBHOf8AZAD/AEcc/wBkHP85KwD/ACs5/wByHP8AORz/AFUc/wBV
HP8ARzn/AGQA/wArOf8AZDn/ACsA/wBHVf8AZA7/AA5H/wByDv8AOQ7/AFU5/wA5HP8AVRz/AFUc/wBH
Dv9VZGT/VYBV/wBHOf8ARxz/AGQc/wArR/8ARw7/OWQc/wArOf8AZBz/AEcc/wBHOf8AKzn/AHIc/wA5
Of8OVQ7/DlUO/zlHR/8ARw7/DlUc/w5VOf85Rxz/AEcc/ytHK/8rnJz/lc7O/0Dq6v9knID/HFVV/wBk
HP85Kxz/AGQ5/1VkVf9VZFX/AGQ5/wBHHP8AZBz/AEdH/wBkDv8AKxz/AGQ5/wBHHP8AZBz/AEc5/wBk
Of8cORz/HDk5/w5yDv8OOQ7/AGQO/wArDv8Ocjn/Djkc/wBkHP8AZBz/R5yA/2TV1f8Vo4f/FaOH/2S5
uf9Vqo7/AEc5/wBHOf8ARxz/VYBy/1WAVf8ARxz/AGQO/wBHDv8cZBz/HEc5/wBkHP8ARxz/OVUO/wBV
Dv8cRxz/HEcc/wBkOf8AZAD/ADk5/wByOf8AOTn/AHIc/wA5HP8Achz/ADk5/wA5Of9r3Nz/FaNq/wAr
Dv8ARw7/QJV5/0Dq6v8AOQ7/AHIO/wBHHP9VZFX/VYBV/wBHHP8AR0f/AGQO/wBHOf8AZBz/AEcc/wBk
Vf8AOQ7/AHJH/ytVR/8rx7j/VZyO/1Wcjv8ruJz/K7ic/4CcnP8ruJz/Vaqq/1Wqqv9Vqo7/VaqO/0Dq
6v9AlZX/AEcO/wBkR/8Vaof/a9zc/wA5Dv8Acg7/AEc5/1Vkcv9VgFX/AGQ5/wCADv8AR0f/AGQO/wBH
R/8AZBz/AEcc/wByOf8AORz/FaNq/06jav8AZDn/AEc5/wByHP8Achz/AGQ5/wBkOf8AZBz/AGQ5/wBk
Of8AZBz/R5yc/0e4uP9AlXn/FaNO/46rq/8rnJz/AHI5/wA5Of8Achz/VXJV/1WAVf8AZDn/AEcO/wBH
R/85ZA7/AEcO/xyAOf8cZDn/AHIc/wByAP8Vamr/FaNq/wBHHP8AZBz/AHI5/wByOf8ARxz/AEcc/wBk
Of8AZBz/AGQc/wBkOf8OgEf/R5yc/0Dq6v9r3Nz/K5yc/wCOVf8Achz/ADkc/wByOf9VcnL/VYBk/wBk
Dv8Ackf/AHIO/wBkOf8AgDn/AEcc/wBHHP8AZBz/AGQ5/2ScgP8rnID/AEcc/wBkOf8ARxz/AEcc/wBy
Of8Acjn/AEcc/wCAOf8ARxz/AEc5/wBkDv8AgA7/ADk5/wByHP8AZBz/AEc5/wBkHP8AZDn/AHIc/1Vy
Vf9VgGT/AGQO/xxyZP9VcmT/K6qc/yuOZP8ARxz/AEcc/wBkOf8AZBz/K2OA/yucR/8ARzn/AGQc/wBk
HP8AZBz/HHI5/xxyAP8ARzn/VZxy/1W5jv9Vuar/K6qq/yvHqv9Vqqr/VaqO/yuquP8rx5z/VZyq/zmA
Of8Achz/VXJV/1WAVf8AgDn/MqOj/2vAwP8rx6r/VdXV/zmcjv8AgDn/AGQc/wCAOf8Vo07/FaOH/wBk
HP8AZDn/AHI5/zlyOf8ARxz/AGQ5/wCAOf8rx5z/a9zc/2vc3P9V4+P/q8fH/0Dq6v9A6ur/gNXV/4DV
1f9A6ur/QJWV/wBkHP9VgHL/VYBV/wCAOf8y3Nz/FaNq/wCAR/8rx6r/gMe5/yvHuP9VnI7/Vbmq/2vA
o/9rwKP/K6q4/yuqnP9Vqqr/Vaqq/yvHnP8rqrj/VbmO/4DHuf9A6ur/QOrq/4DV1f+A1dX/QOrq/0Dq
6v+A1dX/gNXV/0Dq6v9AlVz/AGQ5/1WAVf9VgGT/AIAO/2ScnP9Vq6v/MqNq/zLc3P9VgHL/AIAc/wBy
R/8Ackf/AHIc/wByOf8AgDn/AIA5/wCAHP8AgDn/AGQc/wCAOf8AZEf/Vbmc/1Xj4/9V4+P/a9zc/2vc
3P9V4+P/VePj/2vc3P9r3Nz/Y/Hx/yucgP8AgBz/VYBy/1WAZP8AgEf/HI5V/0fV1f9r3Nz/TsDA/xyA
Of8ARxz/AHJH/wByDv8Acjn/AHIc/wBHOf8AgDn/AEc5/wCAHP8AZDn/AIAc/wBkDv9VuZz/VePj/1Xj
4/9r3Nz/a9zc/1Xj4/9V4+P/a9zc/2vc3P9j8fH/K5yA/wCAHP9VgHL/VYBk/wCADv8Ackf/AHIO/wBk
R/8AZA7/AIBH/wCADv8Acjn/AHIc/wBkR/8AZEf/AIAO/wCAK/8Achz/AHI5/wBkHP8AZDn/AIBH/wBk
R/8AgCv/AIAr/wCAR/8AgEf/AIAr/wCAK/8AgEf/AIBH/wCAHP8AgDn/AEcO/1WAZP9mgICOHIAr/wBy
R/8Ackf/AIAO/wCAR/8ARw7/AIBH/wByOf8Achz/AIBH/wCADv8AZEf/AGQr/wByOf8Achz/AIA5/wCA
HP8AR0f/AGQO/wCAR/8AgEf/AIAO/wBHR/8AgA7/AIBH/wCADv8AR0f/AIAc/wCAOf8cgGT/ZoCAjgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABozM80AKxXiACsA4gAV
EOIAKwXiAEAV4gArAOIAKwDiACsA4gArAOIAKxXiACsV4gArFeIAKxXiACsV4hozM80rRyv/Djkc/wAr
HP8OOQD/ACsO/wA5HP8OOQ7/AA4O/wA5HP8OOQ7/ABwA/wArDv8OKw7/DkcO/w4rHP8rRzn/K0c5/w45
K/8AOQ7/Djkc/wA5HP8OORz/AEcO/wAcHP8OORz/AEcO/wAcHP8AORz/DjkO/wAcDv8AORz/OVU5/ytH
K/8AKw7/APPx/w5MJv8Am37/AMy9/wHV1f8AsqP/AJmc/wDFsv8Acln/ADkO/wx8WP8C+Pj/Djwu/ytH
K/8rRzn/Disc/wDz8f8AOSv/DmZf/wCekP8A/f3/C4Bi/wDMzP8A7PT/ALKS/wDb2/8OqZv/AOzp/w5n
X/8rVTn/K1U5/w4rDv8A8/H/AEMr/w6xlf8Awsz/ALu//wBFJf8A6en/AMO3/wArHP8OOQ7/ANTU/w6H
gP8IqZr/K0c5/ytVOf8OuLj/APr6/wC7tv8AenL/ANC9/wDFxf8ARw7/ALuw/wCEXf8AOQ7/AF1O/wDs
5/8AWz//C97e/ytHOf8rVTn/Djkc/wA5Dv8OOQ7/Dkcr/wA5Dv8ORxz/DkcA/w5HDv8OOQ7/Dkcc/wA5
K/8OOQ7/Dkcr/w45Dv85VUf/K1U5/w45Dv8ARxz/AFUc/wBHHP8OORz/AEcc/wBHHP8ARxz/AEc5/wA5
HP8ARxz/AFUO/wA5HP8AVRz/K1U5/ytkR/8AVRz/AEcr/w5HK/8AVRz/AEc5/w5HK/8OVQ7/Dkcc/w5V
K/8OVRz/QJWH/0DAsf9OlYf/Dkcr/ytkR/8rZDn/AFUc/w5VK/8AVSv/DlUc/yRrTv8rgFX/FYdq/yuA
Y/8rgGP/K3Jj/0DAsf8ARxz/QLGx/wBVDv8rVUf/K3JH/wBVK/8OVRz/DmQr/wBkHP8klWr/AFUr/wBy
K/8AVSv/AGQr/wBkK/85nI7/QMCj/zmcjv8AVSv/K3JH/ytyOf8cckf/FYdc/wBHHP8AZCv/OY5y/wBV
K/8AVRz/DnIr/xVrQP8rgGP/FZVc/yuAY/8Vh2r/JHlO/ytyOf8rgEf/Obmq/yu5nP85qo7/K45j/0Cy
h/8Vh2r/OY5y/xWHav9Asof/VePj/4DV1f9A6ur/gNXV/0DAsf8rckf/K4BH/0eqnP9Hx7j/HHI5/wBy
Of8Aciv/AHI5/wByK/8Aciv/K45j/1Xj4/9r3Nz/VePj/2vc3P9Hx7j/K4BH/zCAQPsAcjn/AHIr/wBy
K/8Aciv/AHI5/wByK/8Aciv/AHIr/wBkOf8AgDn/AHI5/wCAK/8Acjn/AIAr/zBwUPsAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABQA
AAAoAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYrHqUAJgnTACkP0wAyBtMADwTTADUE0wAm
D9MANQDTADUA0wA1ANMAHgDTACYA0wA1ANMALw/TACwP0wAsD9MAJwzTAD0S0wAvCdMWHh6lNUw7/w41
Gv8ELyT/ADQa/xYdBf8ANRL/ACgf/xI1Fv8ANQD/AA0W/wA8G/8SLg3/ADoA/wAaDf8ALR//Ei0k/wAw
C/8WKyL/EjUa/zVVO/81VD7/AygS/wExG/8NOBr/CTwW/wAoG/8ALRb/CToJ/wAxGf8AGwb/Aiwb/wc7
Bf8AKBv/ADUW/wAoG/8JPgX/AC0a/wAyCv8HLBv/N0dM/zVMNf8SMxb/BUY1/wBeUf8ARQ3/AEgg/wBv
Vf8Sa1D/AEIm/wBiTf8HQib/C0An/wBpTf8AKgv/AD4W/xI8I/8AY0P/A0Yz/xUqG/88XT7/NVU1/wA8
Fv8Ad23/AOHe/xZDFP8AjW7/AN7N/wHMxv8Aqqn/AMi6/wC0vP8Ao4//ANXW/wA9B/8APhb/E2Y6/wD8
+P8Gm5L/Bzwf/zVHNf81Qj7/EjYm/wWDdP8A1dX/AC4X/wl0dv8Ad2H/AMnJ/wTjzv8DjXn/AOfn/wDD
0P8AzKf/ANLS/wDO1f8Jln//APTy/wDX0v8WLhz/NVhL/zVVPv8ANRj/FoNw/wDe1f8AMy7/DYJZ/wDx
8f8A9fb/BoF4/wRNLP8A6en/APPz/wBwU/8AVTT/AFZE/w2uqP8Sg4D/B+He/wpTMf81Qj7/NVA3/xJA
Kf8FmZD/AOHZ/wBXO/8WlID/AKqu/wClk/8Aqqj/AEYP/wDXzv8A8uT/AFAg/wAsH/8WVCr/AO3w/wBs
bP8A5ub/Eo57/zVPTP81VTz/AK+n/wDEv/8A0r//ALuv/w1SOv8AtbL/AMzA/wh2U/8FQhL/AHtg/wuc
dv8DQBf/ADML/wBRR/8Nyrf/AF4x/w2Uif8Anor/NUs7/zVYPv8AQij/FjkF/wA0Fv8WORb/CUc1/wBH
FP8AQBj/G0YW/wRCAP8WQhb/B0IW/xhAAv8APiv/AD41/wk5Fv8SRB//DUAN/w1CJP8+WEL/NWU+/wBD
H/8JPgv/AEQs/wBYDP8AQh//CUIN/wBCJf8AQhn/AEIf/wBCH/8AQh//AEQf/wBMH/8AQh//AFAW/wBM
Hf8AQxj/ADsW/zVlS/81aj7/ADcf/w1BIf8NVCv/CUQj/wBVFv8NUhb/AEcr/wBOLv8SSx//FkQ1/w5I
H/8aUjX/AEQf/yhub/9eu6H/MZyI/xJWJP8WTR//NVw+/zVhQP8AWCX/BFgh/xJIH/8AVh7/Fk0b/xJR
G/8JSjX/ElQk/wRYJP8AVh//A1Mb/wFNJP8ha0H/Q8Ss/wdaN/89opD/I4N1/wBWHf81X03/NXdC/wBP
N/8AWCf/AFMq/wBYPP8AUyj/G3VP/zaZgv8hi23/IZht/0ONef8hkXn/Q5V2/ymmh/9PsbH/AGMo/zN9
ev8ri3X/AFom/zVjU/81d0L/AFwk/xZLKP8AYSj/FmEo/wBmH/8bhmL/EG43/wBlKP8Aaij/AEsj/wBa
Lf8AZCX/BWow/zmflv9Q0MP/SbSv/wOBPP8ATyj/NWpU/zV3TP8HYTj/DW86/wtxN/8AVB//AGEo/zuV
df8JaED/AFwr/wBYH/8Jaij/AGEr/xt0O/8NbU7/DYg8/xNjUf8TeTv/EGRS/wlxMv81aj7/NYA+/zKZ
hv9BuKb/U7Cw/wl0P/8AYSv/JZFg/wlpPf8Abiz/FmEv/w1jK/8AaCz/adLK/1vh4f981tb/WOLi/1ji
4v9g4OD/PZBt/zV5TP81gEP/Oraj/xWPWv9Cvqz/OaeE/y+dgP87ooD/KaOC/y+hd/8voXn/IaR5/yGj
fv9f2tT/bdvb/23b2/9T5OT/U+Tk/2Li4v87lGr/NX5U/zWAUP8Sjlr/RsOz/zaghf8HaiP/AG41/wBn
JP8AYzX/AHMh/wB3K/8AYSv/AG4m/0PBrf9Jx7r/Sce6/0fItf9HyLX/UdDA/xuPWP81e0z/QYBc9wBu
Mf8Aeij/AGwt/wB3MP8AajX/AHkx/wB6KP8AbjX/AGoo/wB3KP8Aaj7/AGoq/wCANP8Aajn/AIAo/wCA
KP8Aair/AHs8/0B8ZvcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABwAEAAvwBAAL8AAAC/AEAAvwAAAL8AQAC/AEAAvwBAAL8AAAC/AEAAvwBA
AL8AAAC/AEAAvwBAAL8AAAC/AEAAvwBAAL8AQAC/AAAAvwCAAL8AAAC/AEAAvwAAAHBAYED/AEAg/wAg
IP8AQCD/ACAg/yAgAP8AQAD/ACAg/wAgIP8AIAD/AEAA/wAgIP8AQAD/AEAg/wAgAP8AQAD/ACAg/wAg
IP8AIED/AEAA/yAgIP8AQCD/AEAg/0BAQP9AYED/ACAg/yAgIP8AQAD/ACAg/wBAAP8AICD/AEAg/wBA
AP8gAAD/AEAg/wAgAP8AICD/IEAA/wBAIP8AIAD/ACAA/wAgIP8gQAD/AEAg/wAgAP8AICD/ICAg/0Bg
YP9AQED/AEAg/wBAIP8AQCD/IEAA/wAgIP8AQCD/AEAA/yAgIP8AQCD/ACAg/wAgIP8AQCD/IEAg/wBA
AP8AACD/ACAg/wBAIP8gQCD/AEAA/wAAIP8AQCD/IEAg/0BgQP9AYED/ACAg/yAgIP8AlXX/AGt2/wBA
AP8AQCD/AJqa/wCggP8AlGn/AEAg/wCefv8ATTn/AEAg/wCUaf8AgmL/ACAA/wBAIP8AQCD/AItV/wB1
ev8gQAD/ACBA/0BgQP9AYED/AEAg/wAgAP8A7+r/AMDA/yBAAP8Ag2P/AOvr/wCggP8C/fv/AHyD/wDk
yv8Ay+X/AKCA/wDo6P8Afmf/AEAA/wBAIP8cTBH/AP///wb69P8ASCj/AEAg/0BAQP9AQED/ACAg/yBA
IP8A7+r/AKur/wAgAP8Af4//AJZ2/wBPT/8A+/v/AM6d/wCXl/8A//7/AJut/wD8/P8AlGv/AP///wC/
z/8Ag2P/AP///wD///8AfFz/ICAg/0BgYP9AQED/AEAg/yBAIP8A6ur/AMCr/wAgIP8gbS3/AMbG/wD/
//8A////GXxq/wBZRv8A////AM7O/wDGxv8AXj7/AKCA/wCQX/8gdnb/ALq6/yC2rf8TyLX/AEAg/0BA
QP9AYED/ACAg/wBAAP8A7+r/AKur/wBAIP8gg2P/APXr/wCAoP8AudL/AG5n/wBAAP8Azc3/AP///wCu
k/8AICD/AEAA/yAgIP8A5OT/ALrL/wCbe/8A2tr/AEcn/0BgQP9AYED/AGBg/yCgoP8A9PT/AOrV/wCO
jv8AbXn/APXr/wCggP8A+/3/AHhK/wBAIP8ArZr/AP///wB3Lv8AQCD/AEAg/wBhUP8A////AH9f/wCD
g/8A////GVQ0/0BAYP9AQED/AIBg/wCggP8AoID/AKCA/wCOd/8gQAD/AGdH/wCgoP8AiXT/IEAA/wBA
AP8AWjT/AJJk/yAgAP8AQCD/AEAA/wBQQP8goID/AFVK/wBLK/8goID/AIBg/0BAQP9AYED/AEAg/yBA
IP8AQAD/ACAg/yBAIP8AQED/AEAg/wBAAP8AQCD/IGAg/wBAAP8gQCD/AEAg/wBAAP8gQAD/AEBA/wBA
QP8AQCD/AEAg/yBAAP8AQCD/IEAg/0BgQP9AgED/AEAg/wBAIP8AQCD/AEAg/wBgAP8AQCD/AEAg/wBA
IP8AQCD/AEAA/wBAIP8AQCD/AEAg/wBAIP8AYAD/AEAg/wBAIP8AQCD/AGAg/wAgAP8AQCD/AEAg/0CA
YP9AYED/AEAg/yAgIP8AQED/IGAg/wBAIP8AQCD/IEAg/wBAQP8AgED/AEAA/wBAIP8gQED/AGAg/wBg
QP8gIAD/AGAg/yBAYP9goGD/IIBg/wBAQP8AYCD/IGAg/0BAQP9AYED/AGAg/wBgIP8AQED/AEAg/wBg
IP8AYCD/AEAg/wBgIP8gQCD/AGAg/yBAIP8AYCD/AEAg/yBAIP8AYCD/IGBA/1DQ0P8wsJD/ULCw/0DA
oP8AQCD/AEAg/0CAYP9AgED/AEAg/wBgIP8gYCD/AGBA/wBAIP8gQCD/AGAg/yBgIP8AYCD/AEAg/wBg
IP8AQED/AGAg/wBgIP8AQCD/MJCQ/zCwkP8AQCD/AGAg/2Dg4P8AQCD/AGAg/0BgQP9AgED/AGBA/wBA
IP8AYCD/AEAg/wBgQP8AYCD/AEAg/1DQsP8wsJD/MJCQ/zCwkP9goID/MLCQ/zCQkP8wsJD/ULCQ/1Cw
sP8AYCD/IGBg/2DAwP8AYCD/AGAg/0BgYP9AgED/AEAg/wBgQP8gYCD/AGAg/yBgIP8AYCD/AGAg/zCw
kP8AQCD/AIAg/wBgIP8AQCD/AGAg/wBgIP8AYCD/AGBA/0CgoP9g4OD/YMDA/wCggP8AYCD/AGAg/0Bg
YP9AgGD/AGAg/wBgIP8AYCD/AGBA/wBgIP8AYCD/IIBA/zCwkP8AYCD/AEBA/wBgIP8AYCD/AGBA/wCA
IP8AYCD/AEAg/wCAIP8AQED/AGAg/wBgIP8AYCD/AGBA/0BgQP9AgED/AIBg/3CwsP9g4OD/IICA/wBg
IP8AYED/AGAg/zCwkP8AYCD/AIAg/yBgIP8gYED/AGAg/zCwkP9g4OD/YODg/5DQ0P9g4OD/YODg/2Dg
4P9g4OD/IIAg/0CAYP9AgED/IKCA/zCwkP8AgED/YODg/zCwkP8wkHD/YKCA/2DAoP8wkJD/MJCQ/zCQ
kP8wsHD/MJCQ/2DAoP9g4OD/YODg/2Dg4P9g4OD/YODg/2Dg4P9g4OD/AGBA/0CAQP9AgGD/IIBA/2DA
wP9QsJD/QMDA/wCAIP8AYED/AIAg/wBgQP8AgCD/AIBA/wCAIP8AYCD/AGBA/zCwkP9g4OD/YODg/2Dg
4P9g4OD/YODg/2Dg4P9w7+//AIAg/0CAYP9AgED/AIBA/yCgYP8wkJD/IIBA/wBgIP8AgED/AIBA/wBg
IP8AYCD/AGAg/wCAQP8AYED/AIAg/zCQUP8wsJD/MLCQ/zCwkP8wsJD/MLCQ/zCwkP8wsJD/AGAg/0CA
YP9VgIDvAIAg/wBgQP8AgCD/AGAg/wCAQP8AYED/AIAg/wCAIP8AYED/AIBA/wBgIP8AgCD/AGBA/wBg
IP8AgED/AIAg/wBgQP8AgCD/AIAg/wBgQP8AgCD/AIBA/1WAgO8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAoAAAAMAAAAGAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICA
gAAAgAAAAICAAAAAgAAA//8AwMDAAP///wCAgAAAgACAAIAAAAAAt9sAABwcAACk0gAA588AAMiQAADA
gQAA1KkAACsrAAC3twAA2bIAAG+3AACuXAAAgcAAAKnUAACVlQAANpsAANTUAACrVwAA164AAPD4AABv
bwAAzZoAAIGBAAD19QBlmzYAAOrUAABXVwAAstkAAPjwAAA6nQAAmpoAACcnAAC22wAAdLoAAJubAADs
2QAAkycAANu2AAB0dAAAa2sAALKyAAC3bwAA6+sAAPr1AEtrawBjOjoAALJlAAD9/QAAOjoAAPHxAAB4
eAAAv34AAODAAAC1awAAu7sAAJ06AAAvLwAA/foAAH6/AACfzwAAfb4AANfXAADw8AAA3rwAAH5+AAAh
IQAAz58AAKurAACurgAI+PAAAJcvAAC83gBwkCEAAJ+fAAD5+QAAMJgAAKOjAAC8vAAW6tQAAOfnAADS
pAAA0aMAAIeHAACrVgAA1OoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAgAAAAIA
AAIAAgAAAgAAAgAAAgAAAgAAAgAAAgACAAACAgAAAgAAAAEABAIABAACAAQCAAIAAAQAAgAAAgACAAAC
AAIAAAIABAIABAAEAgAEAAMAAAMAAQECAAIAAgADAAIKAAIAAAIABAIAAgAEAAIABAIAAgACAAACAAQC
AAIACAACAAIAAQEAAAMKBAIAAAIAAAMAAAMAAgoAAgAAAAMAAgoAAgAAAAADAAIKAAIAAAQCCQACAQEC
AAACAAACBAACAgAAAgAAAgAAAwAAAgAAAgAAAwACAAIAAAIAAAMAAgAAAgAEAQEAAwAAAwACAAgEAAIE
AAIEAAICAAAAAAIEAAICAAAAAwACBAACAgAAAAIABAIAAQEAAAIAAgIEAgACAAIAAAIACAQAAgQDAAIA
CAQAAgQAAAACAAgEAAIEAAMAAgoCAQECAAMKBAACAAQCAgQCAgQCAAIAAgAAAgQCAAIAAgACAAIEAgAC
AAIAAAIAAAMAAQEAAAACABsFBRwAAAIAWgUFBQVbBAJVBTkABAJcBQVdAAACAAQCXgUFXwAIBAACAQEA
AgQCACQFBSUIAAImBQUFBQUFNABVBQVWAgBXBVgAAgACBAJMBQUFWQACAAIAAQECAAIAABsFBU4AAgAU
BU8CAFAFBShRBQUFBQUFBVICAAIAAgBTBQUFBVQAAwAAAQEABAABACQFBSUAAEcFBUgAA0kFBUJDBQUF
BQUFBUo9BQUFSwNMBQUFBU0AAAIEAQEAAgACABsFBSUCAAQCAAIAQQUFBUJDBQVEABUFPAI9BQUFRQI1
BQUFBUYCCQACAQEAAgAEAhsFBSUDAAIKDAUFBQUFBTgAOQU6OwUFPAI9BQUFPgo1BTE/BQVAAAIAAQEA
AwACChsFBRwAAAIzBQUFBQUFNAAAMwUFBQUFKgMAAgAAAgA1BTEKNgU3AgQAAQECAAACABsFBSUCBAAU
BQUFBS4EAAICACkFBQUFLwAAAAIEADAFBTEAIgUyAAIAAQEAAgQAAiQFBSUCAAgmBR0EACcFBSgAAikF
BQUFKgIEAAIACCsFBSwCIgUFLQACAQEAAgAIBBsFBRwEAgAUBR0AAh4FHwIAAiAFBQUWAAIAAgQCIQUF
EQAEIgUFIwAEAQECBAUFBQUFBQUFEwQUBQUFBQUFFQICBAAOBQUWAgQCAAIAFwUFGAICGQUFGgIAAQEA
AgUFBQUFBQUFCwIADAUFBQUNAgAAAgAOBQ8AAAIAAAIEEAUFEQACEgUFBQIAAQEAAgQCAAACAAIAAgAI
AAIEAgACAAgAAgIAAgAIAAIEAgACAAgAAgQAAwoCAAMAAQECAAIACAACBAADAAMAAgACAAMAAwACAAAD
AAMAAgACAAMAAwACAAIIAAIAAgACAQEAAwADAAIAAgAIAAMAAwACAAIACAIAAgAIAgACAAgAAwADAAAD
AAMAAgADAAEAAQECAAIAAgADAAMAAgACAAIAAwADAAADAAMAAAMAAwACAAIAAgIAAgACAAIAAgACAQEC
BAIDAAIAAgACAgQCAwACAAIAAgIAAgACAgACAAICBAIDAAIEAgMAAAMAAwADAQEAAgAACgIEAgMAAgIA
AgoCBAIDAAIEAgMAAgQCAwAAAwIABAICAAIEAgIAAgIAAQECBAIEAgQCAAgCBAIEAgQCBAIDAAIAAgEA
AgIAAwgAAgABAwYGBQECBAIDCgMAAQECAgACAgADAgQCAAICAAICAAIAAwIJAgADAAMKAgQCBAIBBQUG
BQYFCAACAAICAQEAAwIEAgMAAgACAwADAgQCAwABAAICAAICAAIDAAICAgEFBgMCAwEFAQMAAwADAQEC
AAICAAIIBAIAAggAAgAIAAMCAgQCAwADAgACAgQCBAYFAgAAAgMGBQACAgIAAQECAwADAgQCAgMCBAIE
AgMCAwACAAIAAgMAAgMAAwIAAgUGAwIDAAIGBQIEAgQCAQECAAMAAgIEAgACAwACAwAGBQYFBgUGBQYG
BQYFBgYFBgUGAwACAwQFBgACAgIEAQECAwICBAICBAIEAgIDAAIFCAMCBAIDAgMCAwIAAwIDAgEFAQMC
AgEGAwMCBAICAQECAAIDAgADAgICAAMAAgMGAwACAgIAAgACAAMCAgQCAAMBBQYGBQYFAwIAAgMAAQEC
AwACBAgCAAMIAwICAgAFAgIEAgMCAwIEAgIEAgICAwIDAQUFBgMDAgIDAAIDAQECAgMCAgMCAwACAAIE
AgEGAwACAwACAAMCAwACAwADAAICAgADAgICBAICAwICAQEDAAIEAgACAgMCAwICAwIFAgMCAAMCAwIA
AgMCAgICAwADAgMAAgQCAgQCAAMAAQECAgMBAQUGAwACAAMAAgQGAgADAgIAAgMIAgADBgYFBgUGBQYF
BgUGBQYFCAICAQECAwMFBgUGBQEDAgIDAgIFAwICAwIDCAADAgMCBQYFBgUGBgUGBQYFBgUGAwIDAQEC
AgEGAwIDBgUCAwACAwIGAgQCAAMAAwICBAICBgUGBQYFBgUGBQYFBgUGAwACAQECAwUFAgMCBQYGBQYF
BgYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGAgMCAQECAgEGAwIBBQEDAgMCAwIDAgMCAwICAwID
AgMCBgUGBQYFBgUGBQYFBgUGAwIDAQEDAgMFBgUGBQECAgIEAgIAAwICAgMCAgACAwADBQYFBgUGBQYF
BgUGBQcFAgICAQECAwIBBQYFAQIDAAMCAgMCAgQCAwADAgMCAgICBgUGBQYFBgUGBQYFBgUGAwIDAQEC
AgMCAgMAAgMCAgIDAgMAAwICAgIDAgIEAgMCAwIDAgMCAwIDAgMCAwIDAgACAQEDAgIEAgIDAgIDAgMA
AgIDAgIDAwIAAwICAwIDAAIDAgIDAgIDAgIDAgICAwIDAQABAgMCAwICAwACAwIDAgMCAgMAAgMCAgMC
AgQCAgMCAwICBAICAwICBAIDAgMBAP///////wAAgAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAACgAAAAQAAAAIAAAAAEA
CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArgDkAAHI5AAByKwAAZDkAAIA5AACAKwArclUAK4BHAEeq
nABHx7gAHHI5ACuOYwBV4+MAa9zcADm5qgAruZwAOaqOAECyhwAVh2oAOY5yAIDV1QBA6uoAQMCxACty
RwArcjkAHHJHABWHXAAARxwAAGQrAABVKwAAVRwADnIrABVrQAArgGMAFZVcACR5TgAOVRwADmQrAABk
HAAklWoAOZyOAEDAowArZDkADlUrACRrTgArgFUAK3JjAECxsQAAVQ4AK1VHACtkRwAARysADkcrAABH
OQAOVQ4ADkccAECVhwBOlYcAK1U5AA45DgAOORwAADkcAAA5DgAORwAADkcOAAA5KwA5VUcADri4AAD6
+gAAu7YAAHpyAADQvQAAxcUAAEcOAAC7sAAAhF0AAF1OAADs5wAAWz8AC97eACtHOQAOKw4AAPPxAABD
KwAOsZUAAMLMAAC7vwAARSUAAOnpAADDtwAAKxwAANTUAA6HgAAIqZoADiscAA5mXwAAnpAAAP39AAuA
YgAAzMwAAOz0AACykgAA29sADqmbAADs6QAOZ18AK0crAAArDgAOTCYAAJt+AADMvQAB1dUAALKjAACZ
nAAAxbIAAHJZAAx8WAAC+PgADjwuAA45KwAAHBwAABwOADlVOQAOOQAAAA4OAAAcAAAPHFUAAB0OAABH
AAAAHQAADxwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfn+AfIBrgIGBgH9Jf0l/gmo8WntrPTt8PTt9a1FA
XlBQdz48PTxJeDxJeD07eT16amtSbG1ub3BxcnM+dHV2alBeUkFfYGFiY2RlZmdoaTo6UVJTVFVWV1hZ
WjtbXF1QOkNERUZHSElKSz5MTU5PUDo8Pjs0Pjc/QDs3QTs0O0I6OxseGzwbGxs1PRswPR46Mh4zNB41
NDY3KyQ4Fjk0MioeKx0kLC0SISEuFhsvMDEXHSQlJicdAh0cHCgpKB0XGBkaGxwTHR4fICEiIRIjGAcO
DxALERITEhEMFBUUFhcHCAkKAQIBAgILDA0MDQkHAAECAgIBAgICAwQBBQEFBgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAFAAAACgA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFiseaQAWBf8ATQn/AB0F/wAJBP8AVDX/ABYJ/wAf
AP8AVAD/AB8A/wBHAP8AFgD/AB8A/wBRCf8AGgn/AE8J/wAXB/8AJAv/ABwF/xYeHmk1TDv/DjUa/wQv
JP8ANBr/Fh0F/wA1Ev8AKB//EjUW/wA1AP8ADRb/ADwb/xIuDf8AOgD/ABoN/wAtH/8SLST/ADAL/xYr
Iv8SNRr/NVU7/zVUPv8DKBL/ATEb/w04Gv8JPBb/ACgb/wAtFv8JOgn/ADEZ/wAbBv8CLBv/BzsF/wAo
G/8ANRb/ACgb/wk+Bf8ALRr/ADIK/wcsG/83R0z/NUw1/xIzFv8FRjX/AF5R/wBFDf8ASCD/AG9V/xJr
UP8AQib/AGJN/wdCJv8LQCf/AGlN/wAqC/8APhb/Ejwj/wBjQ/8DRjP/FSob/zxdPv81VTX/ADwW/wB3
bf8A4d7/FkMU/wCNbv8A3s3/AczG/wCqqf8AyLr/ALS8/wCjj/8A1db/AD0H/wA+Fv8TZjr/APz4/wab
kv8HPB//NUc1/zVCPv8SNib/BYN0/wDV1f8ALhf/CXR2/wB3Yf8Aycn/BOPO/wONef8A5+f/AMPQ/wDM
p/8A0tL/AM7V/wmWf/8A9PL/ANfS/xYuHP81WEv/NVU+/wA1GP8Wg3D/AN7V/wAzLv8Ngln/APHx/wD1
9v8GgXj/BE0s/wDp6f8A8/P/AHBT/wBVNP8AVkT/Da6o/xKDgP8H4d7/ClMx/zVCPv81UDf/EkAp/wWZ
kP8A4dn/AFc7/xaUgP8Aqq7/AKWT/wCqqP8ARg//ANfO/wDy5P8AUCD/ACwf/xZUKv8A7fD/AGxs/wDm
5v8Sjnv/NU9M/zVVPP8Ar6f/AMS//wDSv/8Au6//DVI6/wC1sv8AzMD/CHZT/wVCEv8Ae2D/C5x2/wNA
F/8AMwv/AFFH/w3Kt/8AXjH/DZSJ/wCeiv81Szv/NVg+/wBCKP8WOQX/ADQW/xY5Fv8JRzX/AEcU/wBA
GP8bRhb/BEIA/xZCFv8HQhb/GEAC/wA+K/8APjX/CTkW/xJEH/8NQA3/DUIk/z5YQv81ZT7/AEMf/wk+
C/8ARCz/AFgM/wBCH/8JQg3/AEIl/wBCGf8AQh//AEIf/wBCH/8ARB//AEwf/wBCH/8AUBb/AEwd/wBD
GP8AOxb/NWVL/zVqPv8ANx//DUEh/w1UK/8JRCP/AFUW/w1SFv8ARyv/AE4u/xJLH/8WRDX/Dkgf/xpS
Nf8ARB//KG5v/167of8xnIj/ElYk/xZNH/81XD7/NWFA/wBYJf8EWCH/Ekgf/wBWHv8WTRv/ElEb/wlK
Nf8SVCT/BFgk/wBWH/8DUxv/AU0k/yFrQf9DxKz/B1o3/z2ikP8jg3X/AFYd/zVfTf81d0L/AE83/wBY
J/8AUyr/AFg8/wBTKP8bdU//NpmC/yGLbf8hmG3/Q415/yGRef9DlXb/KaaH/0+xsf8AYyj/M316/yuL
df8AWib/NWNT/zV3Qv8AXCT/Fkso/wBhKP8WYSj/AGYf/xuGYv8Qbjf/AGUo/wBqKP8ASyP/AFot/wBk
Jf8FajD/OZ+W/1DQw/9JtK//A4E8/wBPKP81alT/NXdM/wdhOP8Nbzr/C3E3/wBUH/8AYSj/O5V1/wlo
QP8AXCv/AFgf/wlqKP8AYSv/G3Q7/w1tTv8NiDz/E2NR/xN5O/8QZFL/CXEy/zVqPv81gD7/MpmG/0G4
pv9TsLD/CXQ//wBhK/8lkWD/CWk9/wBuLP8WYS//DWMr/wBoLP9p0sr/W+Hh/3zW1v9Y4uL/WOLi/2Dg
4P89kG3/NXlM/zWAQ/86tqP/FY9a/0K+rP85p4T/L52A/zuigP8po4L/L6F3/y+hef8hpHn/IaN+/1/a
1P9t29v/bdvb/1Pk5P9T5OT/YuLi/zuUav81flT/NYBQ/xKOWv9Gw7P/NqCF/wdqI/8AbjX/AGck/wBj
Nf8AcyH/AHcr/wBhK/8Abib/Q8Gt/0nHuv9Jx7r/R8i1/0fItf9R0MD/G49Y/zV7TP9MgGL/AG4x/wB6
KP8AbC3/AHcw/wBqNf8AeTH/AHoo/wBuNf8Aaij/AHco/wBqPv8Aair/AIA0/wBqOf8AgCj/AIAo/wBq
Kv8Aezz/NX1q/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAEAAYAD/ACAA/wAAAP8AYAD/AAAA/wAgAP8AYAD/AGAA/wAAAP8AYAD/ACAA/wAA
AP8AYAD/AGAA/wAAAP8AYAD/ACAA/wBgAP8AAAD/AIAA/wAAAP8AYAD/AAAAQEBgQP8AQCD/ACAg/wBA
IP8AICD/ICAA/wBAAP8AICD/ACAg/wAgAP8AQAD/ACAg/wBAAP8AQCD/ACAA/wBAAP8AICD/ACAg/wAg
QP8AQAD/ICAg/wBAIP8AQCD/QEBA/0BgQP8AICD/ICAg/wBAAP8AICD/AEAA/wAgIP8AQCD/AEAA/yAA
AP8AQCD/ACAA/wAgIP8gQAD/AEAg/wAgAP8AIAD/ACAg/yBAAP8AQCD/ACAA/wAgIP8gICD/QGBg/0BA
QP8AQCD/AEAg/wBAIP8gQAD/ACAg/wBAIP8AQAD/ICAg/wBAIP8AICD/ACAg/wBAIP8gQCD/AEAA/wAA
IP8AICD/AEAg/yBAIP8AQAD/AAAg/wBAIP8gQCD/QGBA/0BgQP8AICD/ICAg/wCVdf8Aa3b/AEAA/wBA
IP8Ampr/AKCA/wCUaf8AQCD/AJ5+/wBNOf8AQCD/AJRp/wCCYv8AIAD/AEAg/wBAIP8Ai1X/AHV6/yBA
AP8AIED/QGBA/0BgQP8AQCD/ACAA/wDv6v8AwMD/IEAA/wCDY/8A6+v/AKCA/wL9+/8AfIP/AOTK/wDL
5f8AoID/AOjo/wB+Z/8AQAD/AEAg/xxMEf8A////Bvr0/wBIKP8AQCD/QEBA/0BAQP8AICD/IEAg/wDv
6v8Aq6v/ACAA/wB/j/8Alnb/AE9P/wD7+/8Azp3/AJeX/wD//v8Am63/APz8/wCUa/8A////AL/P/wCD
Y/8A////AP///wB8XP8gICD/QGBg/0BAQP8AQCD/IEAg/wDq6v8AwKv/ACAg/yBtLf8Axsb/AP///wD/
//8ZfGr/AFlG/wD///8Azs7/AMbG/wBePv8AoID/AJBf/yB2dv8Aurr/ILat/xPItf8AQCD/QEBA/0Bg
QP8AICD/AEAA/wDv6v8Aq6v/AEAg/yCDY/8A9ev/AICg/wC50v8Abmf/AEAA/wDNzf8A////AK6T/wAg
IP8AQAD/ICAg/wDk5P8Ausv/AJt7/wDa2v8ARyf/QGBA/0BgQP8AYGD/IKCg/wD09P8A6tX/AI6O/wBt
ef8A9ev/AKCA/wD7/f8AeEr/AEAg/wCtmv8A////AHcu/wBAIP8AQCD/AGFQ/wD///8Af1//AIOD/wD/
//8ZVDT/QEBg/0BAQP8AgGD/AKCA/wCggP8AoID/AI53/yBAAP8AZ0f/AKCg/wCJdP8gQAD/AEAA/wBa
NP8AkmT/ICAA/wBAIP8AQAD/AFBA/yCggP8AVUr/AEsr/yCggP8AgGD/QEBA/0BgQP8AQCD/IEAg/wBA
AP8AICD/IEAg/wBAQP8AQCD/AEAA/wBAIP8gYCD/AEAA/yBAIP8AQCD/AEAA/yBAAP8AQED/AEBA/wBA
IP8AQCD/IEAA/wBAIP8gQCD/QGBA/0CAQP8AQCD/AEAg/wBAIP8AQCD/AGAA/wBAIP8AQCD/AEAg/wBA
IP8AQAD/AEAg/wBAIP8AQCD/AEAg/wBgAP8AQCD/AEAg/wBAIP8AYCD/ACAA/wBAIP8AQCD/QIBg/0Bg
QP8AQCD/ICAg/wBAQP8gYCD/AEAg/wBAIP8gQCD/AEBA/wCAQP8AQAD/AEAg/yBAQP8AYCD/AGBA/yAg
AP8AYCD/IEBg/2CgYP8ggGD/AEBA/wBgIP8gYCD/QEBA/0BgQP8AYCD/AGAg/wBAQP8AQCD/AGAg/wBg
IP8AQCD/AGAg/yBAIP8AYCD/IEAg/wBgIP8AQCD/IEAg/wBgIP8gYED/UNDQ/zCwkP9QsLD/QMCg/wBA
IP8AQCD/QIBg/0CAQP8AQCD/AGAg/yBgIP8AYED/AEAg/yBAIP8AYCD/IGAg/wBgIP8AQCD/AGAg/wBA
QP8AYCD/AGAg/wBAIP8wkJD/MLCQ/wBAIP8AYCD/YODg/wBAIP8AYCD/QGBA/0CAQP8AYED/AEAg/wBg
IP8AQCD/AGBA/wBgIP8AQCD/UNCw/zCwkP8wkJD/MLCQ/2CggP8wsJD/MJCQ/zCwkP9QsJD/ULCw/wBg
IP8gYGD/YMDA/wBgIP8AYCD/QGBg/0CAQP8AQCD/AGBA/yBgIP8AYCD/IGAg/wBgIP8AYCD/MLCQ/wBA
IP8AgCD/AGAg/wBAIP8AYCD/AGAg/wBgIP8AYED/QKCg/2Dg4P9gwMD/AKCA/wBgIP8AYCD/QGBg/0CA
YP8AYCD/AGAg/wBgIP8AYED/AGAg/wBgIP8ggED/MLCQ/wBgIP8AQED/AGAg/wBgIP8AYED/AIAg/wBg
IP8AQCD/AIAg/wBAQP8AYCD/AGAg/wBgIP8AYED/QGBA/0CAQP8AgGD/cLCw/2Dg4P8ggID/AGAg/wBg
QP8AYCD/MLCQ/wBgIP8AgCD/IGAg/yBgQP8AYCD/MLCQ/2Dg4P9g4OD/kNDQ/2Dg4P9g4OD/YODg/2Dg
4P8ggCD/QIBg/0CAQP8goID/MLCQ/wCAQP9g4OD/MLCQ/zCQcP9goID/YMCg/zCQkP8wkJD/MJCQ/zCw
cP8wkJD/YMCg/2Dg4P9g4OD/YODg/2Dg4P9g4OD/YODg/2Dg4P8AYED/QIBA/0CAYP8ggED/YMDA/1Cw
kP9AwMD/AIAg/wBgQP8AgCD/AGBA/wCAIP8AgED/AIAg/wBgIP8AYED/MLCQ/2Dg4P9g4OD/YODg/2Dg
4P9g4OD/YODg/3Dv7/8AgCD/QIBg/0CAQP8AgED/IKBg/zCQkP8ggED/AGAg/wCAQP8AgED/AGAg/wBg
IP8AYCD/AIBA/wBgQP8AgCD/MJBQ/zCwkP8wsJD/MLCQ/zCwkP8wsJD/MLCQ/zCwkP8AYCD/QIBg/2CA
gP8AgCD/AGBA/wCAIP8AYCD/AIBA/wBgQP8AgCD/AIAg/wBgQP8AgED/AGAg/wCAIP8AYED/AGAg/wCA
QP8AgCD/AGBA/wCAIP8AgCD/AGBA/wCAIP8AgED/YICA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAA==
</value>
</data>
</root>
\ No newline at end of file \ No newline at end of file
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>Asa.UserManagement</name>
</assembly>
<members>
<member name="F:Asa.FrmLogin.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:Asa.FrmLogin.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:Asa.FrmLogin.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="F:Asa.FrmManage.components">
<summary>
Required designer variable.
</summary>
</member>
<member name="M:Asa.FrmManage.Dispose(System.Boolean)">
<summary>
Clean up any resources being used.
</summary>
<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
</member>
<member name="M:Asa.FrmManage.InitializeComponent">
<summary>
Required method for Designer support - do not modify
the contents of this method with the code editor.
</summary>
</member>
<member name="T:Asa.Language">
<summary>
语言
</summary>
</member>
<member name="P:Asa.Language.UserPwdWrong">
<summary>
用户名或密码错误(提示框)
</summary>
</member>
<member name="P:Asa.Language.AddFail">
<summary>
账号添加失败(提示框)
</summary>
</member>
<member name="P:Asa.Language.AddSucceed">
<summary>
账号添加成功(提示框)
</summary>
</member>
<member name="P:Asa.Language.UpdateFail">
<summary>
账号修改失败(提示框)
</summary>
</member>
<member name="P:Asa.Language.UpdateSucceed">
<summary>
账号修改成功(提示框)
</summary>
</member>
<member name="P:Asa.Language.UpdateConfirm">
<summary>
账号修改确认(提示框)
</summary>
</member>
<member name="P:Asa.Language.DelFail">
<summary>
账号删除失败(提示框)
</summary>
</member>
<member name="P:Asa.Language.DelSucceed">
<summary>
账号删除成功(提示框)
</summary>
</member>
<member name="P:Asa.Language.DelConfirm">
<summary>
账号删除确认(提示框)
</summary>
</member>
<member name="P:Asa.Language.LoginTitle">
<summary>
登录框(标题)
</summary>
</member>
<member name="P:Asa.Language.ManageTitle">
<summary>
账号管理(标题)
</summary>
</member>
<member name="P:Asa.Language.UserPwdLimit">
<summary>
用户名密码权限(界面)
</summary>
</member>
<member name="P:Asa.Language.LoginCancel">
<summary>
登录取消(界面)
</summary>
</member>
<member name="P:Asa.Language.AddUpdateDel">
<summary>
添加修改删除(界面)
</summary>
</member>
<member name="P:Asa.Language.Exit">
<summary>
退出(界面)
</summary>
</member>
<member name="T:Asa.UserManagement">
<summary>
用户账户管理
</summary>
</member>
<member name="M:Asa.UserManagement.#ctor(System.String)">
<summary>
用户账户管理
</summary>
<param name="logName">日志名称</param>
</member>
<member name="P:Asa.UserManagement.Icon">
<summary>
窗口图标
</summary>
</member>
<member name="P:Asa.UserManagement.DatabasePath">
<summary>
SQLite数据库路径
</summary>
</member>
<member name="M:Asa.UserManagement.Connect">
<summary>
数据库连接
</summary>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.Close">
<summary>
数据库关闭
</summary>
</member>
<member name="M:Asa.UserManagement.UserLogin(Asa.Users@)">
<summary>
用户登录
</summary>
<param name="user"></param>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.UserInsert(Asa.Users)">
<summary>
用户添加
</summary>
<param name="user"></param>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.UserUpdatePassword(System.String,System.String)">
<summary>
用户更新密码
</summary>
<param name="userName"></param>
<param name="newPassword"></param>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.UserUpdateLimit(System.String,Asa.UserLimit)">
<summary>
用户更新权限
</summary>
<param name="userName"></param>
<param name="newLimit"></param>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.UserDelete(System.String)">
<summary>
用户删除
</summary>
<param name="userName"></param>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.LoginForm(Asa.Users@)">
<summary>
登录窗口
</summary>
<param name="user"></param>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.LoginForm(System.Windows.Forms.Form,Asa.Users@)">
<summary>
登录窗口
</summary>
<param name="parent"></param>
<param name="user"></param>
<returns></returns>
</member>
<member name="M:Asa.UserManagement.ManageForm(System.Windows.Forms.Form)">
<summary>
账户管理窗口
</summary>
<param name="parent"></param>
</member>
<member name="M:Asa.UserManagement.ManageForm">
<summary>
账户管理窗口
</summary>
</member>
</members>
</doc>
此文件类型无法预览
此文件的差异太大,无法显示。
此文件类型无法预览
此文件类型无法预览
此文件的差异太大,无法显示。
此文件类型无法预览
此文件类型无法预览
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!