From e90209beae6a4e822cecb18e6889f8bda23f630e Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 14 十二月 2020 11:16:06 +0800
Subject: [PATCH] 合并了晾衣架(非新云端)

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs |  420 ++++++++++++++++++++++++++---------------------------------
 1 files changed, 183 insertions(+), 237 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Common/Common/CommonClass.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
similarity index 84%
rename from ZigbeeApp/Shared/Phone/Common/Common/CommonClass.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
index b68ef1f..809030c 100644
--- a/ZigbeeApp/Shared/Phone/Common/Common/CommonClass.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
@@ -2,7 +2,7 @@
 using System;
 using System.Collections.Generic;
 
-namespace Shared.Phone
+namespace Shared.Phone.UserCenter
 {
     #region 鈻� 鍏遍�氱被______________________________
 
@@ -11,6 +11,10 @@
     /// </summary>
     public class IfacePraCommon
     {
+        /// <summary>
+        /// 鏄惁鏄瓙璐﹀彿杩涜鎿嶄綔
+        /// </summary>
+        public bool IsOtherAccountCtrl = Common.Config.Instance.Home.IsOthreShare;
     }
 
     #endregion
@@ -24,34 +28,70 @@
         /// <summary>
         /// 鐧婚檰璐﹀彿
         /// </summary>
-        public string Account = string.Empty;
+        public string Account = Common.Config.Instance.Account;
         /// <summary>
         /// 鐢ㄦ埛鏄电О
         /// </summary>
-        public string NickName = string.Empty;
-        /// <summary>
-        /// 閭
-        /// </summary>
-        public string UserEmail = string.Empty;
-        /// <summary>
-        /// 鎵嬫満鍙�
-        /// </summary>
-        public string UserPhone = string.Empty;
-        /// <summary>
-        /// 鍦板尯鐮�
-        /// </summary>
-        public string PhoneAreaCode = "86";
-
+        public string UserName = string.Empty;
         /// <summary>
         /// 璁板綍涓婁竴娆$殑鐢ㄦ埛鏄电О(缁欎釜浜轰腑蹇冧慨鏀规樀绉版椂鐢ㄧ殑)
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public string OldUserName = string.Empty;
         /// <summary>
+        /// DistributedMark
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public string DistributedMark = string.Empty;
+        /// <summary>
+        /// 閭
+        /// </summary>
+        public string Email = string.Empty;
+        /// <summary>
+        /// 鎵嬫満鍙�
+        /// </summary>
+        public string Phone = string.Empty;
+        /// <summary>
+        /// 鍦板尯鐮�
+        /// </summary>
+        public string AreaCode = "86";
+        /// <summary>
+        /// 鐧婚檰鏉冮檺缂栧彿-> 1:涓昏处鍙疯嚜宸�(鏈汉)  2:璧嬩簣绠$悊鍛樻潈闄愮殑鎴愬憳  3:鎴愬憳
+        /// </summary>
+        public int AuthorityNo = 0;
+        /// <summary>
+        /// 鐧婚檰鏉冮檺缂栧彿鐨勭炕璇戝悕锛�1:涓昏处鍙疯嚜宸�(鏈汉)  2:璧嬩簣绠$悊鍛樻潈闄愮殑鎴愬憳  3:鎴愬憳
+        /// </summary>
+        public string AuthorityText = string.Empty;
+        /// <summary>
+        /// 鐢ㄦ埛澶村儚鏁版嵁(涓存椂鐢�,浼氱疆绌�)
+        /// </summary>
+        public byte[] HeadImage = null;
+        /// <summary>
+        /// 鎵嬪娍瀵嗙爜(涓存椂鐢�,浼氱疆绌�)
+        /// </summary>
+        public string GesturePwd = string.Empty;
+        /// <summary>
+        /// 瀵嗙爜楠岃瘉(涓存椂鐢�,浼氱疆绌�)
+        /// </summary>
+        public string StringPwd = string.Empty;
+
+
+        /// <summary>
+        /// 鐢ㄦ埛鍥炬爣鏂囦欢
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public string UserIconFile = string.Empty;
+        /// <summary>
         /// 鐢ㄦ埛鍥炬爣鏂囦欢鏄惁鏀瑰彉
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public bool UserIconFileChanged = false;
+        /// <summary>
+        /// 鏄惁鍒濆鍖栫敤鎴蜂俊鎭垚鍔�
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public bool InitUserInfoSuccess = false;
     }
 
     /// <summary>
@@ -65,9 +105,42 @@
         public string Account = Common.Config.Instance.Account;
     }
 
+    /// <summary>
+    /// 淇敼鐢ㄦ埛鍚嶇殑鍚姩鍙傛暟
+    /// </summary>
+    public class SaveUserNamePra
+    {
+        /// <summary>
+        /// 鐢ㄦ埛鍚�
+        /// </summary>
+        public string UserName = string.Empty;
+    }
+
+    /// <summary>
+    /// 鏄电О淇℃伅
+    /// </summary>
+    public class NicknameInfo
+    {
+        /// <summary>
+        /// 鏄电О
+        /// </summary>
+        public string nickname = string.Empty;
+    }
+
     #endregion
 
     #region 鈻� 鎴愬憳淇℃伅绫籣_________________________
+
+    /// <summary>
+    /// 鑾峰彇鎴愬憳鍒楄〃鐨勫惎鍔ㄥ弬鏁�
+    /// </summary>
+    public class MemberListInfoPra : IfacePraCommon
+    {
+        /// <summary>
+        /// 浣忓畢鐨凣uid
+        /// </summary>
+        public string DistributedMark = Common.Config.Instance.Home.Id;
+    }
 
     /// <summary>
     /// 鑾峰彇鎴愬憳淇℃伅鐨勭粨鏋�
@@ -75,65 +148,29 @@
     public class MemberInfoRes
     {
         /// <summary>
-        /// 瀛愯处鍙风殑閭
+        /// 璐﹀彿
         /// </summary>
-        public string ChildAccountEmail = string.Empty;
+        public string Account = string.Empty;
         /// <summary>
-        /// 瀛愯处鍙风殑鎵嬫満鍙�
+        /// 璐﹀彿鏄电О
         /// </summary>
-        public string ChildAccountPhone = string.Empty;
+        public string UserName = string.Empty;
         /// <summary>
-        /// 瀛愯处鍙稩D(涔熷氨鏄富閿�)
+        /// SubAccountDistributedMark
         /// </summary>
-        public string ChildAccountId = string.Empty;
+        public string SubAccountDistributedMark = string.Empty;
         /// <summary>
-        /// 瀛愯处鍙疯韩浠� 0:鏅�氭垚鍛� 1:绠$悊鍛�
+        /// DistributedMark
+        /// </summary>
+        public string DistributedMark = string.Empty;
+        /// <summary>
+        /// AccountType
         /// </summary>
         public int AccountType = 0;
         /// <summary>
-        /// 璇风敤AccountType鏉ュ垽鏂�,涓嶈鐢ㄨ繖涓� ORDINARY:鏅�氭垚鍛�   DEBUG:璋冭瘯浜哄憳   ADMIN:绠$悊鍛�
-        /// </summary>
-        public string ChildAccountType = string.Empty;
-        /// <summary>
-        /// 瀛愯处鍙疯嚜宸辩殑鏄电О,娣诲姞瀛愯处鍙锋椂,鎺ュ彛骞朵笉杩斿洖杩欎簺涓滆タ,闇�瑕佹墜鍔ㄨ祴鍊�(璇蜂娇鐢⊿howName)
-        /// </summary>
-        public string ChildNickName = string.Empty;
-        /// <summary>
         /// 鏄惁鎷ユ湁杩滅▼鎺у埗鏉冮檺
         /// </summary>
-        public bool IsRemoteControl = false;
-        /// <summary>
-        /// 涓昏处鍙峰娉ㄥ瓙璐﹀彿鐨勬樀绉�(璇蜂娇鐢⊿howName)
-        /// </summary>
-        public string NickName = string.Empty;
-        /// <summary>
-        /// 鏄剧ず鍦ㄧ晫闈笂鐨勫悕瀛�
-        /// </summary>
-        public string ShowName
-        {
-            get
-            {
-                if (string.IsNullOrEmpty(NickName) == false) { return NickName; }
-                if (string.IsNullOrEmpty(ChildNickName) == false) { return ChildNickName; }
-                if (string.IsNullOrEmpty(ChildAccountPhone) == false) { return ChildAccountPhone; }
-
-                return ChildAccountEmail;
-            }
-        }
-        /// <summary>
-        /// 璐﹀彿(浼樺厛浣跨敤鎵嬫満鍙�)
-        /// </summary>
-        public string Account
-        {
-            get
-            {
-                if (string.IsNullOrEmpty(ChildAccountPhone) == false)
-                {
-                    return ChildAccountPhone;
-                }
-                return ChildAccountEmail;
-            }
-        }
+        public bool IsAllowRemoteCtrl = false;
     }
 
     /// <summary>
@@ -142,29 +179,25 @@
     public class AccountInfoResult
     {
         /// <summary>
-        /// 璐﹀彿(濡傛灉鏄暱搴︿负0鐨勫瓧绗︿覆,鍒欎唬琛ㄨ繖涓处鍙峰湪浜戠涓嶅瓨鍦�)
+        /// 璐﹀彿(杩欎釜涓滆タ鎺ュ彛涓嶄細杩斿洖,闇�鎵嬪姩璧嬪��)
         /// </summary>
         public string Account = string.Empty;
         /// <summary>
-        /// 璐﹀彿鐨刬d(搴旇鏄富閿�)
-        /// </summary>
-        public string MemberId = string.Empty;
-        /// <summary>
         /// 鐢ㄦ埛鏄电О
         /// </summary>
-        public string MemberName = string.Empty;
+        public string UserName = string.Empty;
         /// <summary>
-        /// 鍦板尯鐮�
+        /// DistributedMark
         /// </summary>
-        public string MemberPhonePrefix = string.Empty;
+        public string DistributedMark = string.Empty;
         /// <summary>
         /// 閭
         /// </summary>
-        public string MemberEmail = string.Empty;
+        public string Email = string.Empty;
         /// <summary>
         /// 鎵嬫満鍙�
         /// </summary>
-        public string MemberPhone = string.Empty;
+        public string Phone = string.Empty;
         /// <summary>
         /// 澶村儚鏁版嵁
         /// </summary>
@@ -250,30 +283,37 @@
     }
 
     /// <summary>
+    /// 浠庢帴鍙h幏鍙栫綉鍏冲垪琛ㄧ殑缁撴灉
+    /// </summary>
+    public class GetGatewayResult
+    {
+        /// <summary>
+        /// 缃戝叧鍒楄〃
+        /// </summary>
+        public List<GatewayResult> PageData = new List<GatewayResult>();
+    }
+
+    /// <summary>
     /// 缃戝叧ID缁撴灉
     /// </summary>
     public class GatewayResult
     {
         /// <summary>
-        /// 杩欎釜鏄綉鍏崇殑MacMark
+        /// 缃戝叧ID
         /// </summary>
-        public string Id = string.Empty;
+        public string GatewayUniqueId = string.Empty;
         /// <summary>
-        /// 杩欎釜鏄綉鍏矷D
-        /// </summary>
-        public string Mac = string.Empty;
-        /// <summary>
-        /// 浜戠杩滅▼鍦ㄧ嚎鐘舵�� //鈽嗐優銉笺偗鈽�
+        /// 浜戠杩滅▼鍦ㄧ嚎鐘舵��
         /// </summary>
         public bool MqttOnlineStatus = false;
         /// <summary>
         /// 涓庢缃戝叧鍦ㄤ簯绔疎mq閫氫俊鏃讹紝璐熻浇鍔犺В鐨�16浣岮es瀵嗛挜
         /// </summary>
-        public string AesKey = string.Empty;
+        public string AesKey;
         /// <summary>
-        /// 缃戝叧绫诲瀷(浜戠杩斿洖鐨勪笢瑗�,鍒ゆ柇鏃�,鍥哄畾浣跨敤 ZIGBEEGATEWAY)
+        /// 缃戝叧瀵瑰簲鐨勫敮涓�鐮�
         /// </summary>
-        public string GatewayType = string.Empty;
+        public string MacMark;
     }
 
     /// <summary>
@@ -354,7 +394,7 @@
         /// <summary>
         /// APP鐨勭櫥闄咺D
         /// </summary>
-        public string AppAccount = Config.Instance.Account;
+        public string AppAccount = Shared.Common.Config.Instance.Account;
         /// <summary>
         /// 椤垫暟
         /// </summary>
@@ -559,34 +599,60 @@
     }
 
     /// <summary>
+    /// 鑾峰彇澶囦唤鍒楄〃鍚嶇殑缁撴灉
+    /// </summary>
+    public class GetBackupListResult
+    {
+        /// <summary>
+        /// PageData
+        /// </summary>
+        public List<BackupListNameInfo> PageData = new List<BackupListNameInfo>();
+    }
+
+    /// <summary>
     /// 澶囦唤鍒楄〃鍚嶇殑淇℃伅
     /// </summary>
     public class BackupListNameInfo
     {
         /// <summary>
-        /// 澶囦唤鏁版嵁鍒嗙被 
-        /// 1.INTERACTIVE_ENGINEERING_BACKUP[浜や簰宸ョ▼澶囦唤] 
-        /// 2.CUSTOM_PROJECT_BACKUP[鑷畾涔夊伐绋嬪浠絔 
-        /// 3.AUTOMATIC_USER_BACKUP[鐢ㄦ埛鑷姩澶囦唤] 
-        /// 4.USER_DEFINED_BACKUP[鐢ㄦ埛鑷畾涔夊浠絔
+        /// BackupName
         /// </summary>
-        public string BackupClassify = string.Empty;
+        public string BackupName = string.Empty;
         /// <summary>
-        /// 澶囦唤鏁版嵁绫诲瀷 1.HDL_ON 2.ZIGBEE 3.ZIGBEE_HOME 4.HDL_ON_PRO 5.BUSPRO
+        /// ZigbeeUniqueId
         /// </summary>
-        public string BackupDataType = string.Empty;
-        /// <summary>
-        /// 澶囦唤鍚嶅瓧
-        /// </summary>
-        public string FolderName = string.Empty;
+        public string GatewayUniqueId = string.Empty;
         /// <summary>
         /// Id
         /// </summary>
-        public string Id = string.Empty;
+        public string Id = "";
         /// <summary>
-        /// 鏇存柊鏃堕棿(13浣嶇殑鏃堕棿鎴�)
+        /// CreatedOnUtc
         /// </summary>
-        public string ModifyTime = string.Empty;
+        public string CreatedOnUtc = string.Empty;
+        /// <summary>
+        /// 鏄惁鏄嚜鍔ㄥ浠�(闇�鎵嬪姩璧嬪��)  0:鎵嬪姩澶囦唤 1:鑷姩澶囦唤
+        /// </summary>
+        public int IsAutoBack = 0;
+    }
+
+    /// <summary>
+    /// 涓嬭浇澶囦唤鏂囦欢鐨勭粨鏋�
+    /// </summary>
+    public class LoadBackInfoResult
+    {
+        /// <summary>
+        /// PageData
+        /// </summary>
+        public List<LoadBackupFileNameInfo> PageData = new List<LoadBackupFileNameInfo>();
+        /// <summary>
+        /// TotalCount
+        /// </summary>
+        public int TotalCount = 0;
+        /// <summary>
+        /// TotalPages
+        /// </summary>
+        public int TotalPages = 0;
     }
 
     /// <summary>
@@ -595,17 +661,17 @@
     public class LoadBackupFileNameInfo
     {
         /// <summary>
-        /// 鏂囦欢鍚嶅瓧
+        /// BackupFileName
         /// </summary>
-        public string FileName = string.Empty;
+        public string BackupFileName = string.Empty;
         /// <summary>
         /// Id
         /// </summary>
-        public string Id = string.Empty;
+        public string Id = "";
         /// <summary>
-        /// 鏇存柊鏃堕棿,13浣嶇殑鏃堕棿鎴�
+        /// CreatedOnUtc
         /// </summary>
-        public string ModifyTime = string.Empty;
+        public string CreatedOnUtc = string.Empty;
     }
 
 
@@ -727,9 +793,9 @@
     public class AddBackupNameResult
     {
         /// <summary>
-        /// 澶囦唤涓婚敭
+        /// BackupClassId
         /// </summary>
-        public string Id = "";
+        public string BackupClassId = "";
     }
 
     /// <summary>
@@ -961,7 +1027,7 @@
         /// <summary>
         /// 瀛愯处鍙风殑涓婚敭
         /// </summary>
-        public string ChildAccountId = string.Empty;
+        public string SubAccountDistributedMark = string.Empty;
     }
 
     /// <summary>
@@ -1071,58 +1137,6 @@
         /// </summary>
         public double Latitude = 0;
     }
-
-    /// <summary>
-    /// 浣忓畢淇℃伅
-    /// </summary>
-    public class ResidenceInformation
-    {
-        /// <summary>
-        /// 浣忓畢ID
-        /// </summary>
-        public string Id = string.Empty;
-        /// <summary>
-        /// 浣忓畢鍚嶇О
-        /// </summary>
-        public string HomeName = string.Empty;
-        /// <summary>
-        /// 鍒涘缓鐨剈tc鏃堕棿
-        /// </summary>
-        public string CreateUtcTime = string.Empty;
-        /// <summary>
-        /// 鏄惁涓哄叾浠栦富鐢ㄦ埛鍒嗕韩杩囨潵鐨勪綇瀹�
-        /// </summary>
-        public bool IsOtherShare = false;
-        /// <summary>
-        /// 浠呭瓙璐﹀彿鐧婚檰鐨勬椂鍊欎娇鐢�,褰撱�怚sOthreShare銆戜负"true"锛屽苟涓斻�怉ccountType銆戜负銆怉DMIN銆戞椂锛岃璐﹀彿鎷ユ湁绠$悊鍛樻潈闄�
-        /// </summary>
-        public string AccountType = "ORDINARY";
-        /// <summary>
-        /// 缁忓害
-        /// </summary>
-        public double Longitude = 0;
-        /// <summary>
-        /// 绾害
-        /// </summary>
-        public double Latitude = 0;
-        /// <summary>
-        /// emq url
-        /// </summary>
-        public string EmqUrl = string.Empty;
-        /// <summary>
-        /// 浣忓畢绫诲瀷 鍙敤鍊�:ZIGBEE,BUSPRO,A,ALL
-        /// </summary>
-        public string HomeType = string.Empty;
-        /// <summary>
-        /// 鏄惁缁戝畾鏈夌綉鍏�
-        /// </summary>
-        public bool IsBindGateway = false;
-        /// <summary>
-        /// 鏄惁鎷ユ湁杩滅▼鎺у埗鏉冮檺
-        /// </summary>
-        public bool IsRemoteControl = false;
-    }
-
     #endregion
 
     #region 鈻� 娑堟伅绠$悊绫籣_________________________
@@ -1214,21 +1228,23 @@
         /// <summary>
         /// 涓婚
         /// </summary>
-        public string MessageTitle = string.Empty;
+        public string Topic = string.Empty;
         /// <summary>
         /// 缃戝叧涓婃姤鐨刯son
         /// </summary>
-        public string MessageExpand = string.Empty;
+        public string PayloadJson = string.Empty;
         /// <summary>
         /// 鏄惁宸茶
         /// </summary>
-        public bool IsRead = false;
+        public bool IsReading = false;
         /// <summary>
-        /// 鏃堕棿(13浣嶆暟)
+        /// 鏄惁宸茶(listMsg鍖归厤,瀵瑰簲涓�鏉℃暟鎹噷闈㈠寘鍚涓姤璀�)
         /// </summary>
-        public string CreateTime = string.Empty;
-
-
+        public List<bool> ListReading = new List<bool>();
+        /// <summary>
+        /// 鏃堕棿 2019-09-10T13:11:55
+        /// </summary>
+        public string CreatedOnUtc = string.Empty;
         /// <summary>
         /// 鍥剧墖鍦板潃
         /// </summary>
@@ -1237,10 +1253,6 @@
         /// 娑堟伅绫诲瀷
         /// </summary>
         public string MsgObjectText = string.Empty;
-        /// <summary>
-        /// 鏄惁宸茶(listMsg鍖归厤,瀵瑰簲涓�鏉℃暟鎹噷闈㈠寘鍚涓姤璀�)
-        /// </summary>
-        public List<bool> ListReading = new List<bool>();
         /// <summary>
         /// 娑堟伅鏂囨湰(瀵瑰簲涓�鏉℃暟鎹噷闈㈠寘鍚涓姤璀�)
         /// </summary>
@@ -1361,57 +1373,6 @@
 
     #endregion
 
-    #region 鈻� 闂ㄩ攣鐨勮褰曠粨鏋淿_____________________
-
-    /// <summary>
-    /// 闂ㄩ攣鍘嗗彶璁板綍鐨勭粨鏋�
-    /// </summary>
-    public class DoorHistoryLogInfo
-    {
-        /// <summary>
-        /// <para>寮�閿佹柟寮� 0:瀵嗙爜  15:鎸囩汗  3:IC鍗�</para> 
-        /// <para>9000:闂ㄩ攣鐩存帴鎺ㄧ粰App鐨勫父寮�妯″紡 9001:甯稿紑鎵撳紑 9002:甯稿紑鍙栨秷 9003:甯稿紑鎸佺画 9004:甯稿紑鑷姩鍖栨墜鍔ㄥ彇娑�</para>
-        /// </summary>
-        public int UnLockMode = -1;
-        /// <summary>
-        /// 寮�閿佹椂闂�(13浣嶆暟)
-        /// </summary>
-        public string UnlockTime = string.Empty;
-        /// <summary>
-        /// 寮�閿佹槸鍚︽垚鍔�
-        /// </summary>
-        public bool IsUnlockSuccess = false;
-        /// <summary>
-        /// 璐﹀彿鐨処D
-        /// </summary>
-        public string UserId = string.Empty;
-        /// <summary>
-        /// 甯稿紑鎸佺画鏃堕棿(1~72灏忔椂 OtherOpenLockMode=9003鐨勬椂鍊欐湁鏁�)
-        /// </summary>
-        public string NormallyOpenContinuedTime = string.Empty;
-
-        //浠ヤ笅鏄嚜宸辨墜鍔ㄥ~鍐�
-
-        /// <summary>
-        /// 褰撳紑閿佹柟寮忎负-1鏃朵娇鐢�,瀹冨睘浜庡叾浠栫被
-        /// </summary>
-        public string AlarmMsg = string.Empty;
-        /// <summary>
-        /// 褰撳紑閿佹柟寮忎负-1鏃朵娇鐢�,璁惧Mac
-        /// </summary>
-        public string DeviceMac = string.Empty;
-        /// <summary>
-        /// 褰撳紑閿佹柟寮忎负-1鏃朵娇鐢�,璁惧绔偣
-        /// </summary>
-        public int DeviceEpoint = 0;
-        /// <summary>
-        /// 褰撳紑閿佹柟寮忎负-1鏃朵娇鐢�,娑堟伅鐨勬暟鎹簱涓婚敭 
-        /// </summary>
-        public string MsgKeyId = string.Empty;
-    }
-
-    #endregion
-
     #region 鈻� 鑷姩鍖栨帹閫佺粨鏋淿_____________________
 
     /// <summary>
@@ -1489,21 +1450,6 @@
         /// 杩欎釜鏄綉鍏冲洖澶嶇殑鏁翠釜json鏁版嵁,涓暟涓巐istReceiptData涓�鑷�
         /// </summary>
         public string[] JsonData = null;
-    }
-
-    #endregion
-
-    #region 鈻� 涓�鑸被______________________________
-
-    /// <summary>
-    /// 鎺ユ敹ID鐨勪笢瑗�
-    /// </summary>
-    public class IdInfoClass
-    {
-        /// <summary>
-        /// ID
-        /// </summary>
-        public string Id = string.Empty;
     }
 
     #endregion

--
Gitblit v1.8.0