diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs
index 91da985f..c9125375 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/App.cs
@@ -46,7 +46,7 @@ namespace AxibugEmuOnline.Client.ClientCore
#else
public static string PersistentDataPath => Application.persistentDataPath;
#endif
- public static void Init(bool isTest = false, string testSrvIP = "")
+ public static void Init(bool isTest = false, string testSrvIP = "", bool bUseLocalWebApi = false, string mLocalWebApi = "")
{
log = new LogManager(OnLogOut);
@@ -64,6 +64,8 @@ namespace AxibugEmuOnline.Client.ClientCore
emu = new AppEmu();
//netgame = new AppNetGame();
httpAPI = new HttpAPI();
+ if (bUseLocalWebApi)
+ httpAPI.WebHost = mLocalWebApi;
nesRomLib = new RomLib(RomPlatformType.Nes);
CacheMgr = new CacheManager();
roomMgr = new AppRoom();
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs
index 7311c304..c58efede 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiHttp/AxiHttp.cs
@@ -170,7 +170,14 @@ public static class AxiHttp
if (!dictIP2Address.ContainsKey(str))
{
IPHostEntry host = Dns.GetHostEntry(str);
- IPAddress ip = host.AddressList[0];
+ IPAddress ip = null;
+ foreach (var item in host.AddressList)
+ {
+ if (item.AddressFamily == AddressFamily.InterNetwork)
+ {
+ ip = item; break;
+ }
+ }
dictIP2Address[str] = ip;
}
return dictIP2Address[str];
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs
index f4ab415a..b0834165 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Initer.cs
@@ -17,15 +17,17 @@ namespace AxibugEmuOnline.Client
#if UNITY_EDITOR
- public bool bTest = false;
+ public bool bTestSkipWebApiToConServer = false;
public string mTestSrvIP = "192.168.0.47";
+ public bool bUseLocalWebApi = false;
+ public string mLocalWebApi = "http://localhost:5051";
public bool bEditorUUID = false;
#endif
private void Awake()
{
#if UNITY_EDITOR
- App.Init(bTest, mTestSrvIP);
+ App.Init(bTestSkipWebApiToConServer, mTestSrvIP, bUseLocalWebApi,mLocalWebApi);
dev_UUID = SystemInfo.deviceUniqueIdentifier;
if (bEditorUUID)
{
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppLogin.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppLogin.cs
index 9fbd69c3..33c1932d 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppLogin.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppLogin.cs
@@ -73,7 +73,7 @@ namespace AxibugEmuOnline.Client.Manager
if (msg.Status == LoginResultStatus.Ok)
{
App.log.Info("登录成功");
- App.user.InitMainUserData(App.user.userdata.Account, msg.UID);
+ App.user.InitMainUserData(App.user.userdata.Account, msg.UID, msg.Token);
OverlayManager.PopTip("登录成功");
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppShare.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppShare.cs
index d690c246..0f8179df 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppShare.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppShare.cs
@@ -17,12 +17,12 @@ namespace AxibugEmuOnline.Client.Manager
/// 发送收藏
///
///
- /// [0]收藏[1]取消收藏
+ /// [0]取消收藏[1]收藏
public void SendGameStar(int RomID, int Motion)
{
Protobuf_Game_Mark req = new Protobuf_Game_Mark()
{
- State = Motion,
+ Motion = Motion,
RomID = RomID,
};
App.log.Info($"LeavnRoom");
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs
index 6a59e5d4..7c009252 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs
@@ -14,16 +14,15 @@ namespace AxibugEmuOnline.Client
public delegate void GetRomListAPI(Action callback, AxibugProtobuf.RomPlatformType Platform, int page, int pageSize = 10);
public delegate void SearchRomListAPI(Action callback, AxibugProtobuf.RomPlatformType Platform, string searchKey, int page, int pageSize = 10);
- public void GetNesRomList(Action callback, AxibugProtobuf.RomPlatformType platform, int page, int pageSize = 10)
+ public void GetRomList(Action callback, AxibugProtobuf.RomPlatformType platform, int page, int pageSize = 10)
{
App.StartCoroutine(GetRomListFlow(platform, page, pageSize, callback));
}
-
- public void SearchNesRomList(Action callback, AxibugProtobuf.RomPlatformType platform, string searchKey, int page, int pageSize = 10)
+ public void SearchRomList(Action callback, AxibugProtobuf.RomPlatformType platform, string searchKey, int page, int pageSize = 10)
{
- App.StartCoroutine(SearchNesRomListFlow(platform, searchKey, page, pageSize, callback));
+ App.StartCoroutine(SearchRomListFlow(platform, searchKey, page, pageSize, callback));
}
- private IEnumerator SearchNesRomListFlow(AxibugProtobuf.RomPlatformType platform, string searchKey, int page, int pageSize, Action callback)
+ private IEnumerator SearchRomListFlow(AxibugProtobuf.RomPlatformType platform, string searchKey, int page, int pageSize, Action callback)
{
if (!string.IsNullOrEmpty(searchKey))
{
@@ -40,7 +39,7 @@ namespace AxibugEmuOnline.Client
//string utf8String = Encoding.UTF8.GetString(utf8Bytes);
//searchKey = UrlEncode(utf8String);
//App.log.Info($"search->{utf8String} ->{searchKey}");
- string url = $"{WebSiteApi}/NesRomList?Page={page}&PageSize={pageSize}&SearchKey={searchKey}";
+ string url = $"{WebSiteApi}/RomList?Page={page}&PageSize={pageSize}&SearchKey={searchKey}&Token={App.user.Token}";
App.log.Info($"GetRomList=>{url}");
AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get(url);
yield return request.SendWebRequest;
@@ -73,7 +72,97 @@ namespace AxibugEmuOnline.Client
}
private IEnumerator GetRomListFlow(AxibugProtobuf.RomPlatformType platform, int page, int pageSize, Action callback)
{
- string url = $"{WebSiteApi}/RomList?Page={page}&PageSize={pageSize}&PType={(int)platform}";
+ string url = $"{WebSiteApi}/RomList?Page={page}&PageSize={pageSize}&PType={(int)platform}&Token={App.user.Token}";
+ App.log.Info($"GetRomList=>{url}");
+ AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get(url);
+ yield return request.SendWebRequest;
+ if (!request.downloadHandler.isDone)
+ {
+ callback.Invoke(page, null);
+ yield break;
+ }
+
+ //请求成功
+ if (!request.downloadHandler.bHadErr)
+ {
+ var resp = JsonUtility.FromJson(request.downloadHandler.text);
+ callback.Invoke(page, resp);
+ yield break;
+ }
+
+ App.log.Error(request.downloadHandler.ErrInfo);
+ callback.Invoke(page, null);
+ /*
+ UnityWebRequest request = UnityWebRequest.Get($"{WebSiteApi}/NesRomList?Page={page}&PageSize={pageSize}");
+ yield return request.SendWebRequest();
+
+ if (request.result != UnityWebRequest.Result.Success)
+ {
+ callback.Invoke(null);
+ yield break;
+ }
+ */
+ }
+
+ public void GetMarkList(Action callback, AxibugProtobuf.RomPlatformType platform, int page, int pageSize = 10)
+ {
+ App.StartCoroutine(GetMarkListFlow(platform, page, pageSize, callback));
+ }
+ public void SearchMarkList(Action callback, AxibugProtobuf.RomPlatformType platform, string searchKey, int page, int pageSize = 10)
+ {
+ App.StartCoroutine(SearchMarkListFlow(platform, searchKey, page, pageSize, callback));
+ }
+ private IEnumerator SearchMarkListFlow(AxibugProtobuf.RomPlatformType platform, string searchKey, int page, int pageSize, Action callback)
+ {
+ if (!string.IsNullOrEmpty(searchKey))
+ {
+ string oldsearch = searchKey;
+ //searchKey = System.Net.WebUtility.UrlEncode(searchKey);
+ searchKey = AxiHttp.UrlEncode(searchKey);
+ App.log.Info($"search->{oldsearch} ->{searchKey}");
+ //searchKey = HttpUtility.UrlDecode(searchKey);
+ }
+ //避免特殊字符和个别文字编码问题
+ //byte[] gb2312Bytes = Encoding.Default.GetBytes(searchKey);
+ //byte[] utf8Bytes = Encoding.Convert(Encoding.Default, Encoding.UTF8, gb2312Bytes);
+ //// 将UTF-8编码的字节数组转换回字符串(此时是UTF-8编码的字符串)
+ //string utf8String = Encoding.UTF8.GetString(utf8Bytes);
+ //searchKey = UrlEncode(utf8String);
+ //App.log.Info($"search->{utf8String} ->{searchKey}");
+ string url = $"{WebSiteApi}/RomList?Page={page}&PageSize={pageSize}&SearchKey={searchKey}&Token={App.user.Token}";
+ App.log.Info($"GetRomList=>{url}");
+ AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get(url);
+ yield return request.SendWebRequest;
+ if (!request.downloadHandler.isDone)
+ {
+ callback.Invoke(page, null);
+ yield break;
+ }
+
+ if (!request.downloadHandler.bHadErr)
+ {
+ var resp = JsonUtility.FromJson(request.downloadHandler.text);
+ callback.Invoke(page, resp);
+ yield break;
+ }
+
+ App.log.Error(request.downloadHandler.ErrInfo);
+ callback.Invoke(page, null);
+
+ /*
+ UnityWebRequest request = UnityWebRequest.Get($"{WebSiteApi}/NesRomList?Page={page}&PageSize={pageSize}&SearchKey={searchKey}");
+ yield return request.SendWebRequest();
+
+ if (request.result != UnityWebRequest.Result.Success)
+ {
+ callback.Invoke(null);
+ yield break;
+ }*/
+
+ }
+ private IEnumerator GetMarkListFlow(AxibugProtobuf.RomPlatformType platform, int page, int pageSize, Action callback)
+ {
+ string url = $"{WebSiteApi}/RomList?Page={page}&PageSize={pageSize}&PType={(int)platform}&Token={App.user.Token}";
App.log.Info($"GetRomList=>{url}");
AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get(url);
yield return request.SendWebRequest;
@@ -105,10 +194,11 @@ namespace AxibugEmuOnline.Client
*/
}
+
public IEnumerator GetRomInfo(int RomID, Action callback)
{
- AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get($"{WebSiteApi}/RomInfo?RomID={RomID}");
+ AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get($"{WebSiteApi}/RomInfo?RomID={RomID}&Token={App.user.Token}");
yield return request.SendWebRequest;
if (!request.downloadHandler.isDone)
{
@@ -183,8 +273,15 @@ namespace AxibugEmuOnline.Client
public string url;
public string imgUrl;
public string hash;
- public int stars;
- public int isStar;//TODO 实现收藏标记
+ public int stars;
+ ///
+ /// 游玩计数
+ ///
+ public int playcount;
+ ///
+ /// 是否收藏
+ ///
+ public int isStar;
}
[Serializable]
public class Resp_CheckStandInfo
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs
index 1a499722..5a7c1c91 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs
@@ -31,8 +31,8 @@ namespace AxibugEmuOnline.Client
switch (platform)
{
case RomPlatformType.Nes:
- m_romGetFunc = App.httpAPI.GetNesRomList;
- m_romSearchFunc = App.httpAPI.SearchNesRomList;
+ m_romGetFunc = App.httpAPI.GetRomList;
+ m_romSearchFunc = App.httpAPI.SearchRomList;
break;
}
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/UserDataManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/UserDataManager.cs
index e25de19a..4c0ce88b 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/UserDataManager.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/UserDataManager.cs
@@ -17,7 +17,8 @@ namespace AxibugEmuOnline.Client.Manager
public class MainUserDataBase : UserDataBase
{
- public bool IsLoggedIn { get; set; } = false;
+ public bool IsLoggedIn { get; set; } = false;
+ public string Token { get; set; }
}
public class UserDataManager
@@ -39,15 +40,20 @@ namespace AxibugEmuOnline.Client.Manager
public MainUserDataBase userdata { get; private set; } = new MainUserDataBase();
public bool IsLoggedIn => userdata.IsLoggedIn;
+ public string Token => userdata.IsLoggedIn ? userdata.Token : string.Empty;
Dictionary DictUID2User = new Dictionary();
public int OnlinePlayerCount => DictUID2User.Count;
- public void InitMainUserData(string UName, long UID)
+ public void InitMainUserData(string UName, long UID, string token)
{
userdata.NickName = UName;
userdata.IsLoggedIn = true;
userdata.UID = UID;
- //以及其他数据初始化
- //...
+ userdata.Token = token;
+#if UNITY_EDITOR
+ App.log.Debug($"收到登录token:{token}");
+#endif
+ //以及其他数据初始化
+ //...
}
///
/// 登出
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs
index c6455ae4..49ccc8ce 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs
@@ -9,7 +9,6 @@ using UnityEditor;
using UnityEngine;
using VirtualNes.Core;
using VirtualNes.Core.Debug;
-using Debug = System.Diagnostics.Debug;
namespace AxibugEmuOnline.Client
{
@@ -196,7 +195,7 @@ namespace AxibugEmuOnline.Client
var xmlStr = File.ReadAllText("nes20db.xml");
var xml = XDocument.Parse(xmlStr);
var games = xml.Element("nes20db")?.Elements("game");
- Debug.Assert(games != null, nameof(games) + " != null");
+ System.Diagnostics.Debug.Assert(games != null, nameof(games) + " != null");
foreach (var game in games)
{
var crcStr = game.Element("rom")?.Attribute("crc32")?.Value;
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs
index 03dca7a1..22e17773 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Protobuf/ProtobufAxibugEmuOnline.cs
@@ -36,113 +36,115 @@ namespace AxibugProtobuf {
"aW5fUkVTUBIQCghOaWNrTmFtZRgBIAEoCRINCgVUb2tlbhgCIAEoCRIVCg1M",
"YXN0TG9naW5EYXRlGAMgASgJEg8KB1JlZ0RhdGUYBCABKAkSMQoGU3RhdHVz",
"GAUgASgOMiEuQXhpYnVnUHJvdG9idWYuTG9naW5SZXN1bHRTdGF0dXMSCwoD",
- "VUlEGAYgASgDIhMKEVByb3RvYnVmX1VzZXJMaXN0IlsKFlByb3RvYnVmX1Vz",
- "ZXJMaXN0X1JFU1ASEQoJVXNlckNvdW50GAEgASgFEi4KCFVzZXJMaXN0GAIg",
- "AygLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZvIkgKFlByb3RvYnVm",
- "X1VzZXJKb2luX1JFU1ASLgoIVXNlckluZm8YASABKAsyHC5BeGlidWdQcm90",
- "b2J1Zi5Vc2VyTWluaUluZm8iJgoXUHJvdG9idWZfVXNlckxlYXZlX1JFU1AS",
- "CwoDVUlEGAEgASgDIjUKF1Byb3RvYnVmX1VzZXJTdGF0ZV9SRVNQEgsKA1VJ",
- "RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSJdCgxVc2VyTWluaUluZm8SCwoDVUlE",
- "GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUYAyABKA4y",
- "Gi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlIiwKGFByb3RvYnVmX01vZGlm",
- "eV9OaWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2Rp",
- "ZnlfTmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9f",
- "UkVTUBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJN",
- "aW5pSW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQ",
- "EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv",
- "YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv",
- "dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo",
- "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iywIK",
- "FlByb3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdh",
- "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRI5ChBHYW1lUGxh",
- "dGZvcm1UeXBlGAQgASgOMh8uQXhpYnVnUHJvdG9idWYuUm9tUGxhdGZvcm1U",
- "eXBlEhUKDUhvc3RQbGF5ZXJVSUQYBSABKAMSMAoJR2FtZVN0YXRlGAYgASgO",
- "Mh0uQXhpYnVnUHJvdG9idWYuUm9vbUdhbWVTdGF0ZRIUCgxPYnNVc2VyQ291",
- "bnQYByABKAUSGQoRU2NyZWVuUHJvdmlkZXJVSUQYCCABKAMSRAoQR2FtZVBs",
- "YXlTbG90TGlzdBgJIAMoCzIqLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
- "b21fR2FtZVBsYXlTbG90ItEBChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv",
- "dBISCgpQbGF5ZXJfVUlEGAEgASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEo",
- "CRIuCgpkZXZpY2VUeXBlGAMgASgOMhouQXhpYnVnUHJvdG9idWYuRGV2aWNl",
- "VHlwZRIZChFQbGF5ZXJMb2NhbEpveUlkeBgEIAEoBRI7ChZQbGF5ZXJMb2Nh",
- "bEdhbWVQYWRUeXBlGAUgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5",
- "cGUibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBl",
- "GAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVm",
- "LlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0Zy",
- "YW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp",
- "dG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0",
- "RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSKAAQon",
- "UHJvdG9idWZfUm9vbV9TeW5fUm9vbUZyYW1lQWxsSW5wdXREYXRhEg8KB0Zy",
- "YW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIgASgEEhUKDVNlcnZlckZyYW1l",
- "SUQYAyABKA0SGgoSU2VydmVyRm9yd2FyZENvdW50GAQgASgNIj4KFFByb3Rv",
- "YnVmX1Jvb21fQ3JlYXRlEhEKCUdhbWVSb21JRBgBIAEoBRITCgtHYW1lUm9t",
- "SGFzaBgCIAEoCSJZChlQcm90b2J1Zl9Sb29tX0NyZWF0ZV9SRVNQEjwKDFJv",
- "b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
- "b21fTWluaUluZm8iJAoSUHJvdG9idWZfUm9vbV9Kb2luEg4KBlJvb21JRBgB",
- "IAEoBSJXChdQcm90b2J1Zl9Sb29tX0pvaW5fUkVTUBI8CgxSb29tTWluaUlu",
- "Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ",
- "bmZvIiUKE1Byb3RvYnVmX1Jvb21fTGVhdmUSDgoGUm9vbUlEGAEgASgFIioK",
- "GFByb3RvYnVmX1Jvb21fTGVhdmVfUkVTUBIOCgZSb29tSUQYASABKAUiYQoh",
- "UHJvdG9idWZfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlEjwKDFJvb21NaW5p",
- "SW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWlu",
- "aUluZm8iawokUHJvdG9idWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95",
- "EkMKC1Nsb3RXaXRoSm95GAEgAygLMi4uQXhpYnVnUHJvdG9idWYuUHJvdG9i",
- "dWZfUGxheVNsb3RJZHhXaXRoSm95SWR4Io8BCh5Qcm90b2J1Zl9QbGF5U2xv",
- "dElkeFdpdGhKb3lJZHgSFQoNUGxheWVyU2xvdElkeBgBIAEoBRIZChFQbGF5",
- "ZXJMb2NhbEpveUlkeBgCIAEoBRI7ChZQbGF5ZXJMb2NhbEdhbWVQYWRUeXBl",
- "GAMgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5cGUiKwopUHJvdG9i",
- "dWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9i",
- "dWZfUm9vbV9XYWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExv",
- "YWRTdGF0ZVJhdxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJf",
- "VXBkYXRlU3RhdGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3Rv",
- "YnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQ",
- "cm90b2J1Zl9Sb29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGlt",
- "ZVVzGAEgASgCEhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlk",
- "ZW9GcmFtZVNob3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5",
- "TmVlZFRpbWVVcxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4S",
- "DgoGUm9vbUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9S",
- "RVNQEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp",
- "dG1hcBgDIAEoDCIyChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASAB",
- "KAUSDQoFc3RhdGUYAiABKAUiKAoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1AS",
- "DQoFUm9tSUQYASABKAUqoQUKCUNvbW1hbmRJRBIOCgpDTURfREVGQVVMEAAS",
- "DAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9MT0dJThDRDxIY",
- "ChNDTURfVVNFUl9PTkxJTkVMSVNUELgXEhIKDUNNRF9VU0VSX0pPSU4Q1xcS",
- "EwoOQ01EX1VTRVJfTEVBVkUQ2BcSGgoVQ01EX1VTRVJfU1RBVEVfVVBEQVRF",
- "ENkXEhgKE0NNRF9Nb2RpZnlfTmlja05hbWUQnRgSHAoXQ01EX1VwZGF0ZV9T",
- "ZWxmVXNlckluZm8QphgSHQoYQ01EX1VwZGF0ZV9PdGhlclVzZXJJbmZvEKgY",
- "EhAKC0NNRF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01E",
- "X1Jvb21fTGlzdF9VcGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCT",
- "JxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxIT",
- "Cg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVf",
- "Q2hhbmdlZBD2JxIhChxDTURfUm9vbV9DaGFuZ2VQbGF5ZXJXaXRoSm95EIoo",
- "EhYKEUNNRF9Sb29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5",
- "ZXJfVXBkYXRlU3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5",
- "ENgoEiAKG0NNRF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURf",
- "Uk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNhISCg1D",
- "TURfR0FNRV9NQVJLEPVOKtABCglFcnJvckNvZGUSEAoMRVJST1JfREVGQVVM",
- "EAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAKEicK",
- "I0VSUk9SX1JPT01fU0xPVF9BTFJFQURMWV9IQURfUExBWUVSEAsSIQodRVJS",
- "T1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RBVEUQMhIfChpFUlJPUl9ST01fQUxS",
- "RUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCU",
- "AypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBAB",
- "EhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZp",
- "Y2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQ",
- "AxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoH",
- "WEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJv",
- "aWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1H",
- "bG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQ",
- "AxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFBy",
- "b0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJv",
- "bBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIK",
- "DldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5p",
- "bnRlbmRvM0RTQ29udHJvbBANKqIBCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52",
- "YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dl",
- "YXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29s",
- "ZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCAoDQWxs",
- "EOcHKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP",
- "bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ",
- "CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh",
- "dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ",
- "ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM="));
+ "VUlEGAYgASgDIkgKFVByb3RvYnVmX1Rva2VuX1N0cnVjdBILCgNVSUQYASAB",
+ "KAMSFAoMVG9rZW5HZW5EYXRlGAIgASgDEgwKBFNlZWQYAyABKAMiEwoRUHJv",
+ "dG9idWZfVXNlckxpc3QiWwoWUHJvdG9idWZfVXNlckxpc3RfUkVTUBIRCglV",
+ "c2VyQ291bnQYASABKAUSLgoIVXNlckxpc3QYAiADKAsyHC5BeGlidWdQcm90",
+ "b2J1Zi5Vc2VyTWluaUluZm8iSAoWUHJvdG9idWZfVXNlckpvaW5fUkVTUBIu",
+ "CghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJNaW5pSW5m",
+ "byImChdQcm90b2J1Zl9Vc2VyTGVhdmVfUkVTUBILCgNVSUQYASABKAMiNQoX",
+ "UHJvdG9idWZfVXNlclN0YXRlX1JFU1ASCwoDVUlEGAEgASgDEg0KBVN0YXRl",
+ "GAIgASgFIl0KDFVzZXJNaW5pSW5mbxILCgNVSUQYASABKAMSEAoITmlja05h",
+ "bWUYAiABKAkSLgoKZGV2aWNlVHlwZRgDIAEoDjIaLkF4aWJ1Z1Byb3RvYnVm",
+ "LkRldmljZVR5cGUiLAoYUHJvdG9idWZfTW9kaWZ5X05pY2tOYW1lEhAKCE5p",
+ "Y2tOYW1lGAEgASgJIh8KHVByb3RvYnVmX01vZGlmeV9OaWNrTmFtZV9SRVNQ",
+ "Ik8KHVByb3RvYnVmX1VwZGF0ZV9Vc2VySW5mb19SRVNQEi4KCFVzZXJJbmZv",
+ "GAEgASgLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZvImEKIlByb3Rv",
+ "YnVmX1VwZGF0ZV9PdGhlclVzZXJJbmZvX1JFU1ASCwoDVUlEGAEgASgDEi4K",
+ "CFVzZXJJbmZvGAIgASgLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZv",
+ "IhQKElByb3RvYnVmX1Jvb21fTGlzdCJbChdQcm90b2J1Zl9Sb29tX0xpc3Rf",
+ "UkVTUBJAChBSb29tTWluaUluZm9MaXN0GAEgAygLMiYuQXhpYnVnUHJvdG9i",
+ "dWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyLLAgoWUHJvdG9idWZfUm9vbV9N",
+ "aW5pSW5mbxIOCgZSb29tSUQYASABKAUSEQoJR2FtZVJvbUlEGAIgASgFEhMK",
+ "C0dhbWVSb21IYXNoGAMgASgJEjkKEEdhbWVQbGF0Zm9ybVR5cGUYBCABKA4y",
+ "Hy5BeGlidWdQcm90b2J1Zi5Sb21QbGF0Zm9ybVR5cGUSFQoNSG9zdFBsYXll",
+ "clVJRBgFIAEoAxIwCglHYW1lU3RhdGUYBiABKA4yHS5BeGlidWdQcm90b2J1",
+ "Zi5Sb29tR2FtZVN0YXRlEhQKDE9ic1VzZXJDb3VudBgHIAEoBRIZChFTY3Jl",
+ "ZW5Qcm92aWRlclVJRBgIIAEoAxJEChBHYW1lUGxheVNsb3RMaXN0GAkgAygL",
+ "MiouQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9HYW1lUGxheVNsb3Qi",
+ "0QEKGlByb3RvYnVmX1Jvb21fR2FtZVBsYXlTbG90EhIKClBsYXllcl9VSUQY",
+ "ASABKAMSFwoPUGxheWVyX05pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUY",
+ "AyABKA4yGi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlEhkKEVBsYXllckxv",
+ "Y2FsSm95SWR4GAQgASgFEjsKFlBsYXllckxvY2FsR2FtZVBhZFR5cGUYBSAB",
+ "KA4yGy5BeGlidWdQcm90b2J1Zi5HYW1lUGFkVHlwZSJtChlQcm90b2J1Zl9S",
+ "b29tX1VwZGF0ZV9SRVNQEhIKClVwZGF0ZVR5cGUYASABKAUSPAoMUm9vbU1p",
+ "bmlJbmZvGAIgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9N",
+ "aW5pSW5mbyJLChVQcm90b2J1Zl9TY3Jlbm5fRnJhbWUSDgoGUm9vbUlEGAEg",
+ "ASgFEg8KB0ZyYW1lSUQYAiABKAUSEQoJUmF3Qml0bWFwGAMgASgMIkkKI1By",
+ "b3RvYnVmX1Jvb21fU2luZ2xlUGxheWVySW5wdXREYXRhEg8KB0ZyYW1lSUQY",
+ "ASABKA0SEQoJSW5wdXREYXRhGAIgASgNIoABCidQcm90b2J1Zl9Sb29tX1N5",
+ "bl9Sb29tRnJhbWVBbGxJbnB1dERhdGESDwoHRnJhbWVJRBgBIAEoDRIRCglJ",
+ "bnB1dERhdGEYAiABKAQSFQoNU2VydmVyRnJhbWVJRBgDIAEoDRIaChJTZXJ2",
+ "ZXJGb3J3YXJkQ291bnQYBCABKA0iPgoUUHJvdG9idWZfUm9vbV9DcmVhdGUS",
+ "EQoJR2FtZVJvbUlEGAEgASgFEhMKC0dhbWVSb21IYXNoGAIgASgJIlkKGVBy",
+ "b3RvYnVmX1Jvb21fQ3JlYXRlX1JFU1ASPAoMUm9vbU1pbmlJbmZvGAEgASgL",
+ "MiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyIkChJQ",
+ "cm90b2J1Zl9Sb29tX0pvaW4SDgoGUm9vbUlEGAEgASgFIlcKF1Byb3RvYnVm",
+ "X1Jvb21fSm9pbl9SRVNQEjwKDFJvb21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1",
+ "Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iJQoTUHJvdG9idWZf",
+ "Um9vbV9MZWF2ZRIOCgZSb29tSUQYASABKAUiKgoYUHJvdG9idWZfUm9vbV9M",
+ "ZWF2ZV9SRVNQEg4KBlJvb21JRBgBIAEoBSJhCiFQcm90b2J1Zl9Sb29tX015",
+ "Um9vbV9TdGF0ZV9DaGFuZ2USPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp",
+ "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJrCiRQcm90b2J1",
+ "Zl9Sb29tX0NoYW5nZV9QbGF5U2xvdFdpdGhKb3kSQwoLU2xvdFdpdGhKb3kY",
+ "ASADKAsyLi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9QbGF5U2xvdElkeFdp",
+ "dGhKb3lJZHgijwEKHlByb3RvYnVmX1BsYXlTbG90SWR4V2l0aEpveUlkeBIV",
+ "Cg1QbGF5ZXJTbG90SWR4GAEgASgFEhkKEVBsYXllckxvY2FsSm95SWR4GAIg",
+ "ASgFEjsKFlBsYXllckxvY2FsR2FtZVBhZFR5cGUYAyABKA4yGy5BeGlidWdQ",
+ "cm90b2J1Zi5HYW1lUGFkVHlwZSIrCilQcm90b2J1Zl9Sb29tX0NoYW5nZV9Q",
+ "bGF5U2xvdFdpdGhKb3lfUkVTUCJFChtQcm90b2J1Zl9Sb29tX1dhaXRTdGVw",
+ "X1JFU1ASEAoIV2FpdFN0ZXAYASABKAUSFAoMTG9hZFN0YXRlUmF3GAIgASgM",
+ "Ij8KJ1Byb3RvYnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhdxIU",
+ "CgxMb2FkU3RhdGVSYXcYASABKAwiLgosUHJvdG9idWZfUm9vbV9Ib3N0UGxh",
+ "eWVyX1VwZGF0ZVN0YXRlUmF3X1JFU1AimgEKGlByb3RvYnVmX1Jvb21fUGxh",
+ "eWVyX1JlYWR5EhsKE1B1c2hGcmFtZU5lZWRUaW1lVXMYASABKAISGwoTTG9h",
+ "ZFN0YXRlTmVlZFRpbWVVcxgCIAEoAhIgChhWaWRlb0ZyYW1lU2hvd05lZWRU",
+ "aW1lVXMYAyABKAISIAoYQXVkaW9GcmFtZVBsYXlOZWVkVGltZVVzGAQgASgC",
+ "IioKGFByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbhIOCgZSb29tSUQYASABKAUi",
+ "UwodUHJvdG9idWZfUm9vbV9HZXRfU2NyZWVuX1JFU1ASDgoGUm9vbUlEGAEg",
+ "ASgFEg8KB0ZyYW1lSUQYAiABKAUSEQoJUmF3Qml0bWFwGAMgASgMIjMKElBy",
+ "b3RvYnVmX0dhbWVfTWFyaxINCgVSb21JRBgBIAEoBRIOCgZtb3Rpb24YAiAB",
+ "KAUiRwoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1ASDQoFUm9tSUQYASABKAUS",
+ "DgoGSXNTdGFyGAIgASgFEg0KBXN0YXJzGAMgASgFKqEFCglDb21tYW5kSUQS",
+ "DgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAESDAoIQ01EX1BPTkcQAhIO",
+ "CglDTURfTE9HSU4Q0Q8SGAoTQ01EX1VTRVJfT05MSU5FTElTVBC4FxISCg1D",
+ "TURfVVNFUl9KT0lOENcXEhMKDkNNRF9VU0VSX0xFQVZFENgXEhoKFUNNRF9V",
+ "U0VSX1NUQVRFX1VQREFURRDZFxIYChNDTURfTW9kaWZ5X05pY2tOYW1lEJ0Y",
+ "EhwKF0NNRF9VcGRhdGVfU2VsZlVzZXJJbmZvEKYYEh0KGENNRF9VcGRhdGVf",
+ "T3RoZXJVc2VySW5mbxCoGBIQCgtDTURfQ0hBVE1TRxChHxISCg1DTURfUm9v",
+ "bV9MaXN0EIknEhkKFENNRF9Sb29tX0xpc3RfVXBkYXRlEIonEhgKE0NNRF9S",
+ "b29tX0dldF9TY3JlZW4QkycSFAoPQ01EX1Jvb21fQ3JlYXRlEO0nEhIKDUNN",
+ "RF9Sb29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVhdmUQ8icSIgodQ01EX1Jv",
+ "b21fTXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSIQocQ01EX1Jvb21fQ2hhbmdl",
+ "UGxheWVyV2l0aEpveRCKKBIWChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJD",
+ "TURfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9S",
+ "b29tX1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVy",
+ "SW5wdXQQ+i4SHQoYQ01EX1JPT01fU1lOX1BsYXllcklucHV0EP8uEg8KCkNN",
+ "RF9TY3JlZW4Q2TYSEgoNQ01EX0dBTUVfTUFSSxD1TirQAQoJRXJyb3JDb2Rl",
+ "EhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1JfUk9P",
+ "TV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlfSEFE",
+ "X1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRFEDIS",
+ "HwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9N",
+ "X0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAA",
+ "Eg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRl",
+ "dmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdB",
+ "bmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYS",
+ "CwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVu",
+ "ZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwK",
+ "CEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQ",
+ "AhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRy",
+ "b2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcS",
+ "EgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBT",
+ "Vml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90",
+ "ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqiAQoPUm9tUGxh",
+ "dGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lz",
+ "dGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0Jv",
+ "eV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoH",
+ "U0dfMTAwMBAIEggKA0FsbBDnBypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVf",
+ "R2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAIS",
+ "DQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpO",
+ "ChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNl",
+ "RGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -152,6 +154,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Pong), global::AxibugProtobuf.Protobuf_Pong.Parser, new[]{ "Seed" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login), global::AxibugProtobuf.Protobuf_Login.Parser, new[]{ "LoginType", "DeviceType", "DeviceStr", "Account", "Password" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "NickName", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Token_Struct), global::AxibugProtobuf.Protobuf_Token_Struct.Parser, new[]{ "UID", "TokenGenDate", "Seed" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserList), global::AxibugProtobuf.Protobuf_UserList.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserList_RESP), global::AxibugProtobuf.Protobuf_UserList_RESP.Parser, new[]{ "UserCount", "UserList" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserJoin_RESP), global::AxibugProtobuf.Protobuf_UserJoin_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
@@ -186,8 +189,8 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, new[]{ "PushFrameNeedTimeUs", "LoadStateNeedTimeUs", "VideoFrameShowNeedTimeUs", "AudioFramePlayNeedTimeUs" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID" }, null, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "Motion" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID", "IsStar", "Stars" }, null, null, null, null)
}));
}
#endregion
@@ -1956,6 +1959,253 @@ namespace AxibugProtobuf {
}
+ ///
+ ///Token结构,但用于逻辑里配置加密密钥,放置于服务端加密后,发放token
+ ///
+ public sealed partial class Protobuf_Token_Struct : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_Token_Struct());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[6]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct(Protobuf_Token_Struct other) : this() {
+ uID_ = other.uID_;
+ tokenGenDate_ = other.tokenGenDate_;
+ seed_ = other.seed_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct Clone() {
+ return new Protobuf_Token_Struct(this);
+ }
+
+ /// Field number for the "UID" field.
+ public const int UIDFieldNumber = 1;
+ private long uID_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long UID {
+ get { return uID_; }
+ set {
+ uID_ = value;
+ }
+ }
+
+ /// Field number for the "TokenGenDate" field.
+ public const int TokenGenDateFieldNumber = 2;
+ private long tokenGenDate_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long TokenGenDate {
+ get { return tokenGenDate_; }
+ set {
+ tokenGenDate_ = value;
+ }
+ }
+
+ /// Field number for the "Seed" field.
+ public const int SeedFieldNumber = 3;
+ private long seed_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long Seed {
+ get { return seed_; }
+ set {
+ seed_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as Protobuf_Token_Struct);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(Protobuf_Token_Struct other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (UID != other.UID) return false;
+ if (TokenGenDate != other.TokenGenDate) return false;
+ if (Seed != other.Seed) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (UID != 0L) hash ^= UID.GetHashCode();
+ if (TokenGenDate != 0L) hash ^= TokenGenDate.GetHashCode();
+ if (Seed != 0L) hash ^= Seed.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (UID != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UID);
+ }
+ if (TokenGenDate != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(Seed);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (UID != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UID);
+ }
+ if (TokenGenDate != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(Seed);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (UID != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(UID);
+ }
+ if (TokenGenDate != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Seed);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(Protobuf_Token_Struct other) {
+ if (other == null) {
+ return;
+ }
+ if (other.UID != 0L) {
+ UID = other.UID;
+ }
+ if (other.TokenGenDate != 0L) {
+ TokenGenDate = other.TokenGenDate;
+ }
+ if (other.Seed != 0L) {
+ Seed = other.Seed;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ UID = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ TokenGenDate = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ Seed = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ UID = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ TokenGenDate = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ Seed = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
///
///获取在线用户列表 上行
///
@@ -1971,7 +2221,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[6]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[7]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2110,7 +2360,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[7]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[8]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2316,7 +2566,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[8]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[9]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2503,7 +2753,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[9]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[10]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2681,7 +2931,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[10]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[11]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2895,7 +3145,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[11]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[12]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3151,7 +3401,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[12]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[13]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3329,7 +3579,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[13]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[14]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3468,7 +3718,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[14]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[15]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3655,7 +3905,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[15]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[16]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3878,7 +4128,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[16]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[17]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4014,7 +4264,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[17]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[18]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4178,7 +4428,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[18]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[19]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4648,7 +4898,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[19]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[20]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4979,7 +5229,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[20]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[21]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5202,7 +5452,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[21]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5455,7 +5705,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5669,7 +5919,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5961,7 +6211,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6169,7 +6419,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[26]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6353,7 +6603,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[26]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[27]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6528,7 +6778,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[27]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[28]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6712,7 +6962,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[28]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[29]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6887,7 +7137,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[29]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[30]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7062,7 +7312,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[30]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[31]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7246,7 +7496,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[31]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[32]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7410,7 +7660,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[32]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[33]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7663,7 +7913,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[33]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[34]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7799,7 +8049,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[34]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[35]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8013,7 +8263,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[35]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[36]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8188,7 +8438,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[36]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[37]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8324,7 +8574,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[37]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[38]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8616,7 +8866,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[38]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[39]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8791,7 +9041,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[39]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[40]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9044,7 +9294,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[40]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[41]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9062,7 +9312,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark(Protobuf_Game_Mark other) : this() {
romID_ = other.romID_;
- state_ = other.state_;
+ motion_ = other.motion_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -9085,17 +9335,17 @@ namespace AxibugProtobuf {
}
}
- /// Field number for the "state" field.
- public const int StateFieldNumber = 2;
- private int state_;
+ /// Field number for the "motion" field.
+ public const int MotionFieldNumber = 2;
+ private int motion_;
///
- ///[0]收藏 [1]取消收藏
+ ///[0]取消收藏[1]收藏
///
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int State {
- get { return state_; }
+ public int Motion {
+ get { return motion_; }
set {
- state_ = value;
+ motion_ = value;
}
}
@@ -9113,7 +9363,7 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
- if (State != other.State) return false;
+ if (Motion != other.Motion) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -9121,7 +9371,7 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
- if (State != 0) hash ^= State.GetHashCode();
+ if (Motion != 0) hash ^= Motion.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -9142,9 +9392,9 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
- if (State != 0) {
+ if (Motion != 0) {
output.WriteRawTag(16);
- output.WriteInt32(State);
+ output.WriteInt32(Motion);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
@@ -9159,9 +9409,9 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
- if (State != 0) {
+ if (Motion != 0) {
output.WriteRawTag(16);
- output.WriteInt32(State);
+ output.WriteInt32(Motion);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
@@ -9175,8 +9425,8 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
- if (State != 0) {
- size += 1 + pb::CodedOutputStream.ComputeInt32Size(State);
+ if (Motion != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Motion);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
@@ -9192,8 +9442,8 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
- if (other.State != 0) {
- State = other.State;
+ if (other.Motion != 0) {
+ Motion = other.Motion;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -9214,7 +9464,7 @@ namespace AxibugProtobuf {
break;
}
case 16: {
- State = input.ReadInt32();
+ Motion = input.ReadInt32();
break;
}
}
@@ -9236,7 +9486,7 @@ namespace AxibugProtobuf {
break;
}
case 16: {
- State = input.ReadInt32();
+ Motion = input.ReadInt32();
break;
}
}
@@ -9258,7 +9508,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[41]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[42]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9276,6 +9526,8 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark_RESP(Protobuf_Game_Mark_RESP other) : this() {
romID_ = other.romID_;
+ isStar_ = other.isStar_;
+ stars_ = other.stars_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -9298,6 +9550,34 @@ namespace AxibugProtobuf {
}
}
+ /// Field number for the "IsStar" field.
+ public const int IsStarFieldNumber = 2;
+ private int isStar_;
+ ///
+ ///当前状态 [0]未收藏[1]已收藏
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int IsStar {
+ get { return isStar_; }
+ set {
+ isStar_ = value;
+ }
+ }
+
+ /// Field number for the "stars" field.
+ public const int StarsFieldNumber = 3;
+ private int stars_;
+ ///
+ ///当前收藏计数
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Stars {
+ get { return stars_; }
+ set {
+ stars_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark_RESP);
@@ -9312,6 +9592,8 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
+ if (IsStar != other.IsStar) return false;
+ if (Stars != other.Stars) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -9319,6 +9601,8 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
+ if (IsStar != 0) hash ^= IsStar.GetHashCode();
+ if (Stars != 0) hash ^= Stars.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -9339,6 +9623,14 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
+ if (IsStar != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(IsStar);
+ }
+ if (Stars != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Stars);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -9352,6 +9644,14 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
+ if (IsStar != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(IsStar);
+ }
+ if (Stars != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Stars);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -9364,6 +9664,12 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
+ if (IsStar != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(IsStar);
+ }
+ if (Stars != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Stars);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -9378,6 +9684,12 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
+ if (other.IsStar != 0) {
+ IsStar = other.IsStar;
+ }
+ if (other.Stars != 0) {
+ Stars = other.Stars;
+ }
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -9396,6 +9708,14 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
+ case 16: {
+ IsStar = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ Stars = input.ReadInt32();
+ break;
+ }
}
}
#endif
@@ -9414,6 +9734,14 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
+ case 16: {
+ IsStar = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ Stars = input.ReadInt32();
+ break;
+ }
}
}
}
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs
index 79d49980..91e9e1e2 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs
@@ -128,9 +128,9 @@ namespace AxibugEmuOnline.Client
{
var romItem = m_currentSelect;
if (!romItem.IsStar)
- App.share.SendGameStar(romItem.RomID, 0);
- else
App.share.SendGameStar(romItem.RomID, 1);
+ else
+ App.share.SendGameStar(romItem.RomID, 0);
}
}
}
diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomListMenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomListMenuItem.cs
index a893cb59..a6c728e2 100644
--- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomListMenuItem.cs
+++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomListMenuItem.cs
@@ -1,5 +1,6 @@
using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Event;
+using UnityEngine;
namespace AxibugEmuOnline.Client
{
diff --git a/AxibugEmuOnline.Server/AxibugEmuOnline.Server.csproj b/AxibugEmuOnline.Server/AxibugEmuOnline.Server.csproj
index 1eb4b5c5..4af34fdb 100644
--- a/AxibugEmuOnline.Server/AxibugEmuOnline.Server.csproj
+++ b/AxibugEmuOnline.Server/AxibugEmuOnline.Server.csproj
@@ -8,6 +8,7 @@
+
@@ -20,4 +21,10 @@
+
+
+ Never
+
+
+
diff --git a/AxibugEmuOnline.Server/Common/AESHelper.cs b/AxibugEmuOnline.Server/Common/AESHelper.cs
new file mode 100644
index 00000000..9421b035
--- /dev/null
+++ b/AxibugEmuOnline.Server/Common/AESHelper.cs
@@ -0,0 +1,147 @@
+using System.Security.Cryptography;
+using System.Text;
+
+namespace AxibugEmuOnline.Server.Common
+{
+ public static class AESHelper
+ {
+ static byte[] currKey;
+ static byte[] currIV;
+
+ public static void LoadKeyIVCfg(string key, string vi)
+ {
+ try
+ {
+ currKey = CommaSeparatedStringToByteArray(key);
+ currIV = CommaSeparatedStringToByteArray(key);
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("aeskeyvi 配置错误"+ex.Message);
+ }
+ }
+
+ public static void LoadKeyIVCfg(byte[] key, byte[] vi)
+ {
+ currKey = key;
+ currIV = key;
+ }
+
+ public static void GenAesKeyIV()
+ {
+ Aes aes = Aes.Create();
+ aes.KeySize = 128;
+ aes.Mode = CipherMode.CBC;
+ aes.Padding = PaddingMode.PKCS7;
+ aes.GenerateKey();
+ aes.GenerateIV();
+
+ string key = ByteArrayToCommaSeparatedString(aes.Key);
+ Console.WriteLine("key:");
+ Console.WriteLine(key);
+ string vi = ByteArrayToCommaSeparatedString(aes.IV);
+ Console.WriteLine("iv:");
+ Console.WriteLine(vi);
+
+ byte[] temp = new byte[255];
+ for (byte i = 0; i < temp.Length; i++)
+ temp[i] = i;
+ byte[] EncodeData = Encrypt(temp, aes.Key, aes.IV);
+ byte[] DecodeData = Decrypt(EncodeData, aes.Key, aes.IV);
+
+ bool bOk = true;
+ if (temp.Length != DecodeData.Length)
+ {
+ bOk = false;
+ }
+ else
+ {
+ for (int i = 0; i < temp.Length; i++)
+ {
+ if (temp[i] != DecodeData[i])
+ {
+ bOk = false;
+ break;
+ }
+ }
+ }
+
+ Console.WriteLine($"密钥和填充加解密验证:{bOk}");
+ }
+
+ public static string ByteArrayToCommaSeparatedString(byte[] byteArray)
+ {
+ if (byteArray == null)
+ throw new ArgumentNullException(nameof(byteArray));
+
+ StringBuilder sb = new StringBuilder();
+
+ for (int i = 0; i < byteArray.Length; i++)
+ {
+ sb.Append(byteArray[i]);
+
+ // 不是最后一个元素时,添加逗号
+ if (i < byteArray.Length - 1)
+ {
+ sb.Append(",");
+ }
+ }
+
+ return sb.ToString();
+ }
+
+ public static byte[] CommaSeparatedStringToByteArray(string commaSeparatedString)
+ {
+ if (string.IsNullOrEmpty(commaSeparatedString))
+ throw new ArgumentNullException(nameof(commaSeparatedString));
+
+ // 去除字符串两端的空格,并按逗号分割
+ string[] byteStrings = commaSeparatedString.Trim().Split(',');
+
+ // 将每个字符串转换成byte,并存储到数组中
+ byte[] byteArray = byteStrings.Select(byteString =>
+ {
+ if (!byte.TryParse(byteString, out byte result))
+ throw new FormatException($"无法将字符串 '{byteString}' 解析为字节。");
+ return result;
+ }).ToArray();
+
+ return byteArray;
+ }
+
+ public static byte[] Encrypt(byte[] toEncryptArray)
+ {
+ return Encrypt(toEncryptArray, currKey, currIV);
+ }
+
+ public static byte[] Encrypt(byte[] toEncryptArray, byte[] keyArray, byte[] ivArray)
+ {
+ Aes rDel = Aes.Create();
+ rDel.Key = keyArray;
+ rDel.IV = ivArray;
+ rDel.Mode = CipherMode.CBC;
+ rDel.Padding = PaddingMode.PKCS7;
+ ICryptoTransform cTransform = rDel.CreateEncryptor();
+ byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+ return resultArray;
+ }
+
+ public static byte[] Decrypt(byte[] toDecrypt)
+ {
+ return Decrypt(toDecrypt, currKey, currIV);
+ }
+
+ public static byte[] Decrypt(byte[] toDecrypt, byte[] keyArray, byte[] ivArray)
+ {
+ Aes rDel = Aes.Create();
+ rDel.Key = keyArray;
+ rDel.IV = ivArray;
+ rDel.Mode = CipherMode.CBC;
+ rDel.Padding = PaddingMode.PKCS7;
+ ICryptoTransform cTransform = rDel.CreateDecryptor();
+ byte[] resultArray = cTransform.TransformFinalBlock(toDecrypt, 0, toDecrypt.Length);
+ return resultArray;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Server/Common/Config.cs b/AxibugEmuOnline.Server/Common/Config.cs
index 86c08347..6a3c992b 100644
--- a/AxibugEmuOnline.Server/Common/Config.cs
+++ b/AxibugEmuOnline.Server/Common/Config.cs
@@ -19,6 +19,8 @@ namespace AxibugEmuOnline.Server.Common
public string ServerIp { get; set; }
public ushort ServerPort { get; set; }
public string ClientVersion { get; set; }
+ public string AesKey { get; set; }
+ public string AesIv { get; set; }
}
diff --git a/AxibugEmuOnline.Server/Common/Haoyue_SQLPoolManager.cs b/AxibugEmuOnline.Server/Common/SQLPool.cs
similarity index 81%
rename from AxibugEmuOnline.Server/Common/Haoyue_SQLPoolManager.cs
rename to AxibugEmuOnline.Server/Common/SQLPool.cs
index 1274dc0e..12f153d6 100644
--- a/AxibugEmuOnline.Server/Common/Haoyue_SQLPoolManager.cs
+++ b/AxibugEmuOnline.Server/Common/SQLPool.cs
@@ -2,18 +2,16 @@
namespace AxibugEmuOnline.Server.Common
{
- public static class Haoyue_SQLPoolManager
+ public static class SQLPool
{
- private static Queue SQLPool = new Queue();
- private static Dictionary _OutOfSQLPool = new Dictionary();
- private static Dictionary _DicSqlRunFunNum = new Dictionary();
- private static Dictionary _DicTimeOutSqlRunFunNum = new Dictionary();
- private const int DefaultCount = 1;
- private const int MaxLimit = 5;
- private static readonly object _sync = new object();
-
-
- private static MySqlConnectionStringBuilder connBuilder;
+ static Queue _ConQueue = new Queue();
+ static Dictionary _OutOfSQLPool = new Dictionary();
+ static Dictionary _DicSqlRunFunNum = new Dictionary();
+ static Dictionary _DicTimeOutSqlRunFunNum = new Dictionary();
+ const int DefaultCount = 1;
+ const int MaxLimit = 5;
+ static readonly object _sync = new object();
+ static MySqlConnectionStringBuilder connBuilder;
public static void InitConnMgr()
{
@@ -33,9 +31,9 @@ namespace AxibugEmuOnline.Server.Common
{
MySqlConnection _conn = conn();
_conn.Open();
- SQLPool.Enqueue(_conn);
+ _ConQueue.Enqueue(_conn);
}
- Console.WriteLine("SQLPool初始化完毕,连接数" + SQLPool.Count);
+ Console.WriteLine("SQLPool初始化完毕,连接数" + _ConQueue.Count);
}
public static MySqlConnection conn()
{
@@ -55,22 +53,22 @@ namespace AxibugEmuOnline.Server.Common
_DicSqlRunFunNum[FuncStr] = 1L;
}
MySqlConnection _conn = null;
- if (SQLPool.Count < 1)
+ if (_ConQueue.Count < 1)
{
- Console.WriteLine("[DequeueSQLConn]创建新的SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("[DequeueSQLConn]创建新的SQLPool.Count>" + _ConQueue.Count);
_conn = conn();
_conn.Open();
}
else
{
MySqlConnection temp = null;
- while (SQLPool.Count > 0)
+ while (_ConQueue.Count > 0)
{
- Console.WriteLine("[DequeueSQLConn]取出一个SQLCount.Count>" + SQLPool.Count);
- temp = SQLPool.Dequeue();
+ Console.WriteLine("[DequeueSQLConn]取出一个SQLCount.Count>" + _ConQueue.Count);
+ temp = _ConQueue.Dequeue();
if (temp.State == System.Data.ConnectionState.Closed)
{
- Console.WriteLine("[DequeueSQLConn]已经断开SQLCount.Count>" + SQLPool.Count);
+ Console.WriteLine("[DequeueSQLConn]已经断开SQLCount.Count>" + _ConQueue.Count);
temp.Dispose();
temp = null;
continue;
@@ -110,17 +108,17 @@ namespace AxibugEmuOnline.Server.Common
{
Console.WriteLine("出队遗漏的数据出现了!");
}
- if (SQLPool.Count > MaxLimit)
+ if (_ConQueue.Count > MaxLimit)
{
- Console.WriteLine("已经不需要回收了,多余了,SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("已经不需要回收了,多余了,SQLPool.Count>" + _ConQueue.Count);
BackConn.Close();
BackConn.Dispose();
BackConn = null;
}
else
{
- SQLPool.Enqueue(BackConn);
- Console.WriteLine("回收SQLPool.Count>" + SQLPool.Count);
+ _ConQueue.Enqueue(BackConn);
+ Console.WriteLine("回收SQLPool.Count>" + _ConQueue.Count);
}
}
}
@@ -143,15 +141,15 @@ namespace AxibugEmuOnline.Server.Common
{
_DicTimeOutSqlRunFunNum[o2.Value.FuncStr] = 1L;
}
- if (SQLPool.Count > MaxLimit)
+ if (_ConQueue.Count > MaxLimit)
{
- Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "已经不需要回收了,多余了,SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "已经不需要回收了,多余了,SQLPool.Count>" + _ConQueue.Count);
o2.Key.Close();
}
else
{
- Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "回收SQLPool.Count>" + SQLPool.Count);
- SQLPool.Enqueue(o2.Key);
+ Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "回收SQLPool.Count>" + _ConQueue.Count);
+ _ConQueue.Enqueue(o2.Key);
}
removeTemp.Add(o2.Key);
}
@@ -172,7 +170,7 @@ namespace AxibugEmuOnline.Server.Common
Console.WriteLine("[超时回收]_OutOfSQLPool清理异常???????");
}
}
- Console.WriteLine("[超时回收]处理结束SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("[超时回收]处理结束SQLPool.Count>" + _ConQueue.Count);
}
}
public static long time()
diff --git a/AxibugEmuOnline.Server/Manager/AppSrv.cs b/AxibugEmuOnline.Server/Manager/AppSrv.cs
index 5581c5ed..197dfdb9 100644
--- a/AxibugEmuOnline.Server/Manager/AppSrv.cs
+++ b/AxibugEmuOnline.Server/Manager/AppSrv.cs
@@ -22,7 +22,8 @@ namespace AxibugEmuOnline.Server
{
g_Log = new LogManager();
Config.LoadConfig();
- Haoyue_SQLPoolManager.InitConnMgr();
+ AESHelper.LoadKeyIVCfg(Config.cfg.AesKey, Config.cfg.AesIv);
+ SQLPool.InitConnMgr();
g_Tick = new TickManager();
g_ClientMgr = new ClientManager();
g_ClientMgr.Init(45000, 120);
diff --git a/AxibugEmuOnline.Server/Manager/GameShareManager.cs b/AxibugEmuOnline.Server/Manager/GameShareManager.cs
index 030cbe39..0361451d 100644
--- a/AxibugEmuOnline.Server/Manager/GameShareManager.cs
+++ b/AxibugEmuOnline.Server/Manager/GameShareManager.cs
@@ -3,7 +3,6 @@ using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using MySql.Data.MySqlClient;
using System.Net.Sockets;
-using System.Security.Policy;
namespace AxibugEmuOnline.Server.Manager
{
@@ -21,28 +20,27 @@ namespace AxibugEmuOnline.Server.Manager
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(_socket);
Protobuf_Game_Mark_RESP respData = new Protobuf_Game_Mark_RESP();
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("RecvGameMark");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("RecvGameMark");
try
{
- string query = "SELECT id from rom_stars where uid = ?uid and romid = ?platform and platform = ?romid";
+ string query = "SELECT id from rom_stars where uid = ?uid and romid = ?romid";
bool bHad = false;
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", _c.UID);
- command.Parameters.AddWithValue("?platform", 1);
command.Parameters.AddWithValue("?romid", msg.RomID);
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
- if (reader.GetInt32(0) > 0)
- bHad = true;
+ reader.GetInt32(0);
}
}
}
- if (msg.State == 0)
+ //收藏
+ if (msg.Motion == 1)
{
if (bHad)
{
@@ -92,18 +90,81 @@ namespace AxibugEmuOnline.Server.Manager
catch (Exception e)
{
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+
+ respData.Stars = GetRomStart(msg.RomID);
+ respData.IsStar = CheckIsRomStar(msg.RomID, _c.UID) ? 1 : 0;
+
+ SQLPool.EnqueueSQLConn(conn);
respData.RomID = msg.RomID;
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGameMark, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData));
}
+ public int GetRomStart(int RomId)
+ {
+ int stars = 0;
+ MySqlConnection conn = SQLPool.DequeueSQLConn("GetStart");
+ try
+ {
+ string query = $"SELECT `stars` FROM romlist where id = ?romid;";
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // 设置参数值
+ command.Parameters.AddWithValue("?RomID", RomId);
+ // 执行查询并处理结果
+ using (var reader = command.ExecuteReader())
+ {
+ while (reader.Read())
+ {
+ stars = reader.GetInt32(0);
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ AppSrv.g_Log.Error(e);
+ }
+ SQLPool.EnqueueSQLConn(conn);
+ return stars;
+ }
+
+ public bool CheckIsRomStar(int RomId, long uid)
+ {
+ bool bhad = false;
+ MySqlConnection conn = SQLPool.DequeueSQLConn("CheckIsRomStart");
+ try
+ {
+ string query = $"SELECT count(0) from rom_stars where uid = ?uid and = ?romid";
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // 设置参数值
+ command.Parameters.AddWithValue("?RomID", RomId);
+ command.Parameters.AddWithValue("?uid", uid);
+ // 执行查询并处理结果
+ using (var reader = command.ExecuteReader())
+ {
+ while (reader.Read())
+ {
+ bhad = reader.GetInt32(0) > 0;
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ AppSrv.g_Log.Error(e);
+ }
+ SQLPool.EnqueueSQLConn(conn);
+ return bhad;
+ }
+
public RomPlatformType GetRomPlatformType(int RomID)
{
if (mDictRomID2Platform.TryGetValue(RomID, out RomPlatformType ptype))
return ptype;
ptype = RomPlatformType.Invalid;
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("GetRomPlatformType");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("GetRomPlatformType");
try
{
string query = "SELECT PlatformType from romlist where Id = ?RomID ";
@@ -129,7 +190,7 @@ namespace AxibugEmuOnline.Server.Manager
if (ptype == RomPlatformType.Invalid)
AppSrv.g_Log.Error($"RomID {RomID} 没找到平台配置");
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
return ptype;
}
diff --git a/AxibugEmuOnline.Server/Manager/LoginManager.cs b/AxibugEmuOnline.Server/Manager/LoginManager.cs
index 141baa91..6bbc9f6a 100644
--- a/AxibugEmuOnline.Server/Manager/LoginManager.cs
+++ b/AxibugEmuOnline.Server/Manager/LoginManager.cs
@@ -3,19 +3,29 @@ using AxibugEmuOnline.Server.Event;
using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using MySql.Data.MySqlClient;
+using Mysqlx;
+using Org.BouncyCastle.Asn1.X9;
using Org.BouncyCastle.Ocsp;
+using System.Collections;
using System.Net.Sockets;
namespace AxibugEmuOnline.Server.Manager
{
public class LoginManager
{
+ static long tokenSeed = 1;
+
public LoginManager()
{
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdLogin, UserLogin);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdModifyNickName, OnCmdModifyNickName);
}
+ static long GetNextTokenSeed()
+ {
+ return tokenSeed++;
+ }
+
void UserLogin(Socket _socket, byte[] reqData)
{
AppSrv.g_Log.DebugCmd("UserLogin");
@@ -47,7 +57,9 @@ namespace AxibugEmuOnline.Server.Manager
ClientInfo _c = AppSrv.g_ClientMgr.JoinNewClient(_uid, _socket);
- UpdateUserData(_uid, _c,msg.DeviceType);
+ UpdateUserData(_uid, _c, msg.DeviceType);
+
+ string tokenstr = GenToken(_c);
EventSystem.Instance.PostEvent(EEvent.OnUserOnline, _c.UID);
@@ -56,10 +68,11 @@ namespace AxibugEmuOnline.Server.Manager
Status = LoginResultStatus.Ok,
RegDate = _c.RegisterDT.ToString("yyyy-MM-dd HH:mm:ss"),
LastLoginDate = _c.LastLogInDT.ToString("yyyy-MM-dd HH:mm:ss"),
- Token = "",
+ Token = tokenstr,
NickName = _c.NickName,
UID = _c.UID
});
+
AppSrv.g_Log.Info($"玩家登录成功 UID->{_c.UID} NikeName->{_c.NickName}");
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdLogin, (int)ErrorCode.ErrorOk, respData);
}
@@ -70,7 +83,7 @@ namespace AxibugEmuOnline.Server.Manager
bool bDone = false;
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(socket);
Protobuf_Modify_NickName msg = ProtoBufHelper.DeSerizlize(reqData);
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("ModifyNikeName");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("ModifyNikeName");
try
{
string query = "update users set nikename = ?nikename where uid = ?uid ";
@@ -88,7 +101,7 @@ namespace AxibugEmuOnline.Server.Manager
catch (Exception e)
{
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
if (bDone)
{
@@ -123,7 +136,7 @@ namespace AxibugEmuOnline.Server.Manager
{
uid = 0;
bool bDone = true;
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("GetUidByDevice");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("GetUidByDevice");
try
{
string query = "SELECT uid from user_devices where device = ?deviceStr ";
@@ -193,7 +206,7 @@ namespace AxibugEmuOnline.Server.Manager
AppSrv.g_Log.Error($"ex=>{e.ToString()}");
bDone = false;
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
if (uid <= 0)
bDone = false;
@@ -202,7 +215,7 @@ namespace AxibugEmuOnline.Server.Manager
public void UpdateUserData(long uid, ClientInfo _c, DeviceType deviceType)
{
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("UpdateUserData");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("UpdateUserData");
try
{
string query = "SELECT account,nikename,regdate,lastlogindate from users where uid = ?uid ";
@@ -236,7 +249,30 @@ namespace AxibugEmuOnline.Server.Manager
{
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
+ }
+
+ static string GenToken(ClientInfo _c)
+ {
+ long timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
+ Protobuf_Token_Struct _resp = new Protobuf_Token_Struct()
+ {
+ UID = _c.UID,
+ TokenGenDate = timestamp,
+ Seed = GetNextTokenSeed()
+ };
+ byte[] protobufData = ProtoBufHelper.Serizlize(_resp);
+ ProtoBufHelper.DeSerizlize(protobufData);
+ byte[] encryptData = AESHelper.Encrypt(protobufData);
+ string tobase64 = Convert.ToBase64String(encryptData);
+ return tobase64;
+ }
+
+ static Protobuf_Token_Struct DecrypToken(string tokenStr)
+ {
+ byte[] encryptData = Convert.FromBase64String(tokenStr);
+ byte[] decryptData = AESHelper.Decrypt(encryptData);
+ return ProtoBufHelper.DeSerizlize(decryptData);
}
public string GetRandomNickName(long uid)
@@ -450,5 +486,7 @@ namespace AxibugEmuOnline.Server.Manager
"红白机战士之魂",
"超级时间探险家"
];
+
+
}
}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Server/Manager/RoomManager.cs b/AxibugEmuOnline.Server/Manager/RoomManager.cs
index d7b49d3d..528632a0 100644
--- a/AxibugEmuOnline.Server/Manager/RoomManager.cs
+++ b/AxibugEmuOnline.Server/Manager/RoomManager.cs
@@ -109,7 +109,7 @@ namespace AxibugEmuOnline.Server
}
public void RoomLog(long uid, int platform, int RoomID, int RomID, RoomLogType state)
{
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("RoomLog");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("RoomLog");
try
{
string query = "INSERT INTO `haoyue_emu`.`room_log` (`uid`, `platform`, `romid`,`roomid`, `state`) VALUES ( ?uid, ?platform, ?romid, ?roomid, ?state);";
@@ -137,7 +137,7 @@ namespace AxibugEmuOnline.Server
catch (Exception e)
{
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
}
#endregion
diff --git a/AxibugEmuOnline.Server/Program.cs b/AxibugEmuOnline.Server/Program.cs
index cc963728..a92f448c 100644
--- a/AxibugEmuOnline.Server/Program.cs
+++ b/AxibugEmuOnline.Server/Program.cs
@@ -77,6 +77,11 @@ namespace AxibugEmuOnline.Server
UpdateRomHash();
}
break;
+ case "aesgen":
+ {
+ AESHelper.GenAesKeyIV();
+ }
+ break;
default:
Console.WriteLine("未知命令" + CommandStr);
break;
@@ -88,7 +93,7 @@ namespace AxibugEmuOnline.Server
static void UpdateRomHash()
{
AppSrv.g_Log.Info("UpdateRomHash");
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("UpdateRomHash");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("UpdateRomHash");
try
{
List<(int id, string romurl, string name)> list = new List<(int id, string romurl, string name)>();
@@ -139,7 +144,7 @@ namespace AxibugEmuOnline.Server
{
AppSrv.g_Log.Info($"err:{e.ToString()}");
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
}
}
}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs b/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs
index 03dca7a1..22e17773 100644
--- a/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs
+++ b/AxibugEmuOnline.Server/Protobuf/ProtobufAxibugEmuOnline.cs
@@ -36,113 +36,115 @@ namespace AxibugProtobuf {
"aW5fUkVTUBIQCghOaWNrTmFtZRgBIAEoCRINCgVUb2tlbhgCIAEoCRIVCg1M",
"YXN0TG9naW5EYXRlGAMgASgJEg8KB1JlZ0RhdGUYBCABKAkSMQoGU3RhdHVz",
"GAUgASgOMiEuQXhpYnVnUHJvdG9idWYuTG9naW5SZXN1bHRTdGF0dXMSCwoD",
- "VUlEGAYgASgDIhMKEVByb3RvYnVmX1VzZXJMaXN0IlsKFlByb3RvYnVmX1Vz",
- "ZXJMaXN0X1JFU1ASEQoJVXNlckNvdW50GAEgASgFEi4KCFVzZXJMaXN0GAIg",
- "AygLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZvIkgKFlByb3RvYnVm",
- "X1VzZXJKb2luX1JFU1ASLgoIVXNlckluZm8YASABKAsyHC5BeGlidWdQcm90",
- "b2J1Zi5Vc2VyTWluaUluZm8iJgoXUHJvdG9idWZfVXNlckxlYXZlX1JFU1AS",
- "CwoDVUlEGAEgASgDIjUKF1Byb3RvYnVmX1VzZXJTdGF0ZV9SRVNQEgsKA1VJ",
- "RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSJdCgxVc2VyTWluaUluZm8SCwoDVUlE",
- "GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUYAyABKA4y",
- "Gi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlIiwKGFByb3RvYnVmX01vZGlm",
- "eV9OaWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2Rp",
- "ZnlfTmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9f",
- "UkVTUBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJN",
- "aW5pSW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQ",
- "EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv",
- "YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv",
- "dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo",
- "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iywIK",
- "FlByb3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdh",
- "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRI5ChBHYW1lUGxh",
- "dGZvcm1UeXBlGAQgASgOMh8uQXhpYnVnUHJvdG9idWYuUm9tUGxhdGZvcm1U",
- "eXBlEhUKDUhvc3RQbGF5ZXJVSUQYBSABKAMSMAoJR2FtZVN0YXRlGAYgASgO",
- "Mh0uQXhpYnVnUHJvdG9idWYuUm9vbUdhbWVTdGF0ZRIUCgxPYnNVc2VyQ291",
- "bnQYByABKAUSGQoRU2NyZWVuUHJvdmlkZXJVSUQYCCABKAMSRAoQR2FtZVBs",
- "YXlTbG90TGlzdBgJIAMoCzIqLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
- "b21fR2FtZVBsYXlTbG90ItEBChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv",
- "dBISCgpQbGF5ZXJfVUlEGAEgASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEo",
- "CRIuCgpkZXZpY2VUeXBlGAMgASgOMhouQXhpYnVnUHJvdG9idWYuRGV2aWNl",
- "VHlwZRIZChFQbGF5ZXJMb2NhbEpveUlkeBgEIAEoBRI7ChZQbGF5ZXJMb2Nh",
- "bEdhbWVQYWRUeXBlGAUgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5",
- "cGUibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBl",
- "GAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVm",
- "LlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0Zy",
- "YW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp",
- "dG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0",
- "RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSKAAQon",
- "UHJvdG9idWZfUm9vbV9TeW5fUm9vbUZyYW1lQWxsSW5wdXREYXRhEg8KB0Zy",
- "YW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIgASgEEhUKDVNlcnZlckZyYW1l",
- "SUQYAyABKA0SGgoSU2VydmVyRm9yd2FyZENvdW50GAQgASgNIj4KFFByb3Rv",
- "YnVmX1Jvb21fQ3JlYXRlEhEKCUdhbWVSb21JRBgBIAEoBRITCgtHYW1lUm9t",
- "SGFzaBgCIAEoCSJZChlQcm90b2J1Zl9Sb29tX0NyZWF0ZV9SRVNQEjwKDFJv",
- "b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
- "b21fTWluaUluZm8iJAoSUHJvdG9idWZfUm9vbV9Kb2luEg4KBlJvb21JRBgB",
- "IAEoBSJXChdQcm90b2J1Zl9Sb29tX0pvaW5fUkVTUBI8CgxSb29tTWluaUlu",
- "Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ",
- "bmZvIiUKE1Byb3RvYnVmX1Jvb21fTGVhdmUSDgoGUm9vbUlEGAEgASgFIioK",
- "GFByb3RvYnVmX1Jvb21fTGVhdmVfUkVTUBIOCgZSb29tSUQYASABKAUiYQoh",
- "UHJvdG9idWZfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlEjwKDFJvb21NaW5p",
- "SW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWlu",
- "aUluZm8iawokUHJvdG9idWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95",
- "EkMKC1Nsb3RXaXRoSm95GAEgAygLMi4uQXhpYnVnUHJvdG9idWYuUHJvdG9i",
- "dWZfUGxheVNsb3RJZHhXaXRoSm95SWR4Io8BCh5Qcm90b2J1Zl9QbGF5U2xv",
- "dElkeFdpdGhKb3lJZHgSFQoNUGxheWVyU2xvdElkeBgBIAEoBRIZChFQbGF5",
- "ZXJMb2NhbEpveUlkeBgCIAEoBRI7ChZQbGF5ZXJMb2NhbEdhbWVQYWRUeXBl",
- "GAMgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5cGUiKwopUHJvdG9i",
- "dWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9i",
- "dWZfUm9vbV9XYWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExv",
- "YWRTdGF0ZVJhdxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJf",
- "VXBkYXRlU3RhdGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3Rv",
- "YnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQ",
- "cm90b2J1Zl9Sb29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGlt",
- "ZVVzGAEgASgCEhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlk",
- "ZW9GcmFtZVNob3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5",
- "TmVlZFRpbWVVcxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4S",
- "DgoGUm9vbUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9S",
- "RVNQEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp",
- "dG1hcBgDIAEoDCIyChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASAB",
- "KAUSDQoFc3RhdGUYAiABKAUiKAoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1AS",
- "DQoFUm9tSUQYASABKAUqoQUKCUNvbW1hbmRJRBIOCgpDTURfREVGQVVMEAAS",
- "DAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9MT0dJThDRDxIY",
- "ChNDTURfVVNFUl9PTkxJTkVMSVNUELgXEhIKDUNNRF9VU0VSX0pPSU4Q1xcS",
- "EwoOQ01EX1VTRVJfTEVBVkUQ2BcSGgoVQ01EX1VTRVJfU1RBVEVfVVBEQVRF",
- "ENkXEhgKE0NNRF9Nb2RpZnlfTmlja05hbWUQnRgSHAoXQ01EX1VwZGF0ZV9T",
- "ZWxmVXNlckluZm8QphgSHQoYQ01EX1VwZGF0ZV9PdGhlclVzZXJJbmZvEKgY",
- "EhAKC0NNRF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01E",
- "X1Jvb21fTGlzdF9VcGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCT",
- "JxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxIT",
- "Cg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVf",
- "Q2hhbmdlZBD2JxIhChxDTURfUm9vbV9DaGFuZ2VQbGF5ZXJXaXRoSm95EIoo",
- "EhYKEUNNRF9Sb29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5",
- "ZXJfVXBkYXRlU3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5",
- "ENgoEiAKG0NNRF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURf",
- "Uk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNhISCg1D",
- "TURfR0FNRV9NQVJLEPVOKtABCglFcnJvckNvZGUSEAoMRVJST1JfREVGQVVM",
- "EAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAKEicK",
- "I0VSUk9SX1JPT01fU0xPVF9BTFJFQURMWV9IQURfUExBWUVSEAsSIQodRVJS",
- "T1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RBVEUQMhIfChpFUlJPUl9ST01fQUxS",
- "RUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCU",
- "AypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBAB",
- "EhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZp",
- "Y2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQ",
- "AxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoH",
- "WEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJv",
- "aWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1H",
- "bG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQ",
- "AxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFBy",
- "b0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJv",
- "bBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIK",
- "DldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5p",
- "bnRlbmRvM0RTQ29udHJvbBANKqIBCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52",
- "YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dl",
- "YXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29s",
- "ZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCAoDQWxs",
- "EOcHKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP",
- "bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ",
- "CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh",
- "dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ",
- "ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM="));
+ "VUlEGAYgASgDIkgKFVByb3RvYnVmX1Rva2VuX1N0cnVjdBILCgNVSUQYASAB",
+ "KAMSFAoMVG9rZW5HZW5EYXRlGAIgASgDEgwKBFNlZWQYAyABKAMiEwoRUHJv",
+ "dG9idWZfVXNlckxpc3QiWwoWUHJvdG9idWZfVXNlckxpc3RfUkVTUBIRCglV",
+ "c2VyQ291bnQYASABKAUSLgoIVXNlckxpc3QYAiADKAsyHC5BeGlidWdQcm90",
+ "b2J1Zi5Vc2VyTWluaUluZm8iSAoWUHJvdG9idWZfVXNlckpvaW5fUkVTUBIu",
+ "CghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJNaW5pSW5m",
+ "byImChdQcm90b2J1Zl9Vc2VyTGVhdmVfUkVTUBILCgNVSUQYASABKAMiNQoX",
+ "UHJvdG9idWZfVXNlclN0YXRlX1JFU1ASCwoDVUlEGAEgASgDEg0KBVN0YXRl",
+ "GAIgASgFIl0KDFVzZXJNaW5pSW5mbxILCgNVSUQYASABKAMSEAoITmlja05h",
+ "bWUYAiABKAkSLgoKZGV2aWNlVHlwZRgDIAEoDjIaLkF4aWJ1Z1Byb3RvYnVm",
+ "LkRldmljZVR5cGUiLAoYUHJvdG9idWZfTW9kaWZ5X05pY2tOYW1lEhAKCE5p",
+ "Y2tOYW1lGAEgASgJIh8KHVByb3RvYnVmX01vZGlmeV9OaWNrTmFtZV9SRVNQ",
+ "Ik8KHVByb3RvYnVmX1VwZGF0ZV9Vc2VySW5mb19SRVNQEi4KCFVzZXJJbmZv",
+ "GAEgASgLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZvImEKIlByb3Rv",
+ "YnVmX1VwZGF0ZV9PdGhlclVzZXJJbmZvX1JFU1ASCwoDVUlEGAEgASgDEi4K",
+ "CFVzZXJJbmZvGAIgASgLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZv",
+ "IhQKElByb3RvYnVmX1Jvb21fTGlzdCJbChdQcm90b2J1Zl9Sb29tX0xpc3Rf",
+ "UkVTUBJAChBSb29tTWluaUluZm9MaXN0GAEgAygLMiYuQXhpYnVnUHJvdG9i",
+ "dWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyLLAgoWUHJvdG9idWZfUm9vbV9N",
+ "aW5pSW5mbxIOCgZSb29tSUQYASABKAUSEQoJR2FtZVJvbUlEGAIgASgFEhMK",
+ "C0dhbWVSb21IYXNoGAMgASgJEjkKEEdhbWVQbGF0Zm9ybVR5cGUYBCABKA4y",
+ "Hy5BeGlidWdQcm90b2J1Zi5Sb21QbGF0Zm9ybVR5cGUSFQoNSG9zdFBsYXll",
+ "clVJRBgFIAEoAxIwCglHYW1lU3RhdGUYBiABKA4yHS5BeGlidWdQcm90b2J1",
+ "Zi5Sb29tR2FtZVN0YXRlEhQKDE9ic1VzZXJDb3VudBgHIAEoBRIZChFTY3Jl",
+ "ZW5Qcm92aWRlclVJRBgIIAEoAxJEChBHYW1lUGxheVNsb3RMaXN0GAkgAygL",
+ "MiouQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9HYW1lUGxheVNsb3Qi",
+ "0QEKGlByb3RvYnVmX1Jvb21fR2FtZVBsYXlTbG90EhIKClBsYXllcl9VSUQY",
+ "ASABKAMSFwoPUGxheWVyX05pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUY",
+ "AyABKA4yGi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlEhkKEVBsYXllckxv",
+ "Y2FsSm95SWR4GAQgASgFEjsKFlBsYXllckxvY2FsR2FtZVBhZFR5cGUYBSAB",
+ "KA4yGy5BeGlidWdQcm90b2J1Zi5HYW1lUGFkVHlwZSJtChlQcm90b2J1Zl9S",
+ "b29tX1VwZGF0ZV9SRVNQEhIKClVwZGF0ZVR5cGUYASABKAUSPAoMUm9vbU1p",
+ "bmlJbmZvGAIgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9N",
+ "aW5pSW5mbyJLChVQcm90b2J1Zl9TY3Jlbm5fRnJhbWUSDgoGUm9vbUlEGAEg",
+ "ASgFEg8KB0ZyYW1lSUQYAiABKAUSEQoJUmF3Qml0bWFwGAMgASgMIkkKI1By",
+ "b3RvYnVmX1Jvb21fU2luZ2xlUGxheWVySW5wdXREYXRhEg8KB0ZyYW1lSUQY",
+ "ASABKA0SEQoJSW5wdXREYXRhGAIgASgNIoABCidQcm90b2J1Zl9Sb29tX1N5",
+ "bl9Sb29tRnJhbWVBbGxJbnB1dERhdGESDwoHRnJhbWVJRBgBIAEoDRIRCglJ",
+ "bnB1dERhdGEYAiABKAQSFQoNU2VydmVyRnJhbWVJRBgDIAEoDRIaChJTZXJ2",
+ "ZXJGb3J3YXJkQ291bnQYBCABKA0iPgoUUHJvdG9idWZfUm9vbV9DcmVhdGUS",
+ "EQoJR2FtZVJvbUlEGAEgASgFEhMKC0dhbWVSb21IYXNoGAIgASgJIlkKGVBy",
+ "b3RvYnVmX1Jvb21fQ3JlYXRlX1JFU1ASPAoMUm9vbU1pbmlJbmZvGAEgASgL",
+ "MiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyIkChJQ",
+ "cm90b2J1Zl9Sb29tX0pvaW4SDgoGUm9vbUlEGAEgASgFIlcKF1Byb3RvYnVm",
+ "X1Jvb21fSm9pbl9SRVNQEjwKDFJvb21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1",
+ "Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iJQoTUHJvdG9idWZf",
+ "Um9vbV9MZWF2ZRIOCgZSb29tSUQYASABKAUiKgoYUHJvdG9idWZfUm9vbV9M",
+ "ZWF2ZV9SRVNQEg4KBlJvb21JRBgBIAEoBSJhCiFQcm90b2J1Zl9Sb29tX015",
+ "Um9vbV9TdGF0ZV9DaGFuZ2USPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp",
+ "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJrCiRQcm90b2J1",
+ "Zl9Sb29tX0NoYW5nZV9QbGF5U2xvdFdpdGhKb3kSQwoLU2xvdFdpdGhKb3kY",
+ "ASADKAsyLi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9QbGF5U2xvdElkeFdp",
+ "dGhKb3lJZHgijwEKHlByb3RvYnVmX1BsYXlTbG90SWR4V2l0aEpveUlkeBIV",
+ "Cg1QbGF5ZXJTbG90SWR4GAEgASgFEhkKEVBsYXllckxvY2FsSm95SWR4GAIg",
+ "ASgFEjsKFlBsYXllckxvY2FsR2FtZVBhZFR5cGUYAyABKA4yGy5BeGlidWdQ",
+ "cm90b2J1Zi5HYW1lUGFkVHlwZSIrCilQcm90b2J1Zl9Sb29tX0NoYW5nZV9Q",
+ "bGF5U2xvdFdpdGhKb3lfUkVTUCJFChtQcm90b2J1Zl9Sb29tX1dhaXRTdGVw",
+ "X1JFU1ASEAoIV2FpdFN0ZXAYASABKAUSFAoMTG9hZFN0YXRlUmF3GAIgASgM",
+ "Ij8KJ1Byb3RvYnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhdxIU",
+ "CgxMb2FkU3RhdGVSYXcYASABKAwiLgosUHJvdG9idWZfUm9vbV9Ib3N0UGxh",
+ "eWVyX1VwZGF0ZVN0YXRlUmF3X1JFU1AimgEKGlByb3RvYnVmX1Jvb21fUGxh",
+ "eWVyX1JlYWR5EhsKE1B1c2hGcmFtZU5lZWRUaW1lVXMYASABKAISGwoTTG9h",
+ "ZFN0YXRlTmVlZFRpbWVVcxgCIAEoAhIgChhWaWRlb0ZyYW1lU2hvd05lZWRU",
+ "aW1lVXMYAyABKAISIAoYQXVkaW9GcmFtZVBsYXlOZWVkVGltZVVzGAQgASgC",
+ "IioKGFByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbhIOCgZSb29tSUQYASABKAUi",
+ "UwodUHJvdG9idWZfUm9vbV9HZXRfU2NyZWVuX1JFU1ASDgoGUm9vbUlEGAEg",
+ "ASgFEg8KB0ZyYW1lSUQYAiABKAUSEQoJUmF3Qml0bWFwGAMgASgMIjMKElBy",
+ "b3RvYnVmX0dhbWVfTWFyaxINCgVSb21JRBgBIAEoBRIOCgZtb3Rpb24YAiAB",
+ "KAUiRwoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1ASDQoFUm9tSUQYASABKAUS",
+ "DgoGSXNTdGFyGAIgASgFEg0KBXN0YXJzGAMgASgFKqEFCglDb21tYW5kSUQS",
+ "DgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAESDAoIQ01EX1BPTkcQAhIO",
+ "CglDTURfTE9HSU4Q0Q8SGAoTQ01EX1VTRVJfT05MSU5FTElTVBC4FxISCg1D",
+ "TURfVVNFUl9KT0lOENcXEhMKDkNNRF9VU0VSX0xFQVZFENgXEhoKFUNNRF9V",
+ "U0VSX1NUQVRFX1VQREFURRDZFxIYChNDTURfTW9kaWZ5X05pY2tOYW1lEJ0Y",
+ "EhwKF0NNRF9VcGRhdGVfU2VsZlVzZXJJbmZvEKYYEh0KGENNRF9VcGRhdGVf",
+ "T3RoZXJVc2VySW5mbxCoGBIQCgtDTURfQ0hBVE1TRxChHxISCg1DTURfUm9v",
+ "bV9MaXN0EIknEhkKFENNRF9Sb29tX0xpc3RfVXBkYXRlEIonEhgKE0NNRF9S",
+ "b29tX0dldF9TY3JlZW4QkycSFAoPQ01EX1Jvb21fQ3JlYXRlEO0nEhIKDUNN",
+ "RF9Sb29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVhdmUQ8icSIgodQ01EX1Jv",
+ "b21fTXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSIQocQ01EX1Jvb21fQ2hhbmdl",
+ "UGxheWVyV2l0aEpveRCKKBIWChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJD",
+ "TURfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9S",
+ "b29tX1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVy",
+ "SW5wdXQQ+i4SHQoYQ01EX1JPT01fU1lOX1BsYXllcklucHV0EP8uEg8KCkNN",
+ "RF9TY3JlZW4Q2TYSEgoNQ01EX0dBTUVfTUFSSxD1TirQAQoJRXJyb3JDb2Rl",
+ "EhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1JfUk9P",
+ "TV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlfSEFE",
+ "X1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRFEDIS",
+ "HwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9N",
+ "X0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAA",
+ "Eg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRl",
+ "dmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdB",
+ "bmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYS",
+ "CwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVu",
+ "ZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwK",
+ "CEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQ",
+ "AhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRy",
+ "b2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcS",
+ "EgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBT",
+ "Vml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90",
+ "ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqiAQoPUm9tUGxh",
+ "dGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lz",
+ "dGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0Jv",
+ "eV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoH",
+ "U0dfMTAwMBAIEggKA0FsbBDnBypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVf",
+ "R2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAIS",
+ "DQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpO",
+ "ChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNl",
+ "RGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -152,6 +154,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Pong), global::AxibugProtobuf.Protobuf_Pong.Parser, new[]{ "Seed" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login), global::AxibugProtobuf.Protobuf_Login.Parser, new[]{ "LoginType", "DeviceType", "DeviceStr", "Account", "Password" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "NickName", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Token_Struct), global::AxibugProtobuf.Protobuf_Token_Struct.Parser, new[]{ "UID", "TokenGenDate", "Seed" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserList), global::AxibugProtobuf.Protobuf_UserList.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserList_RESP), global::AxibugProtobuf.Protobuf_UserList_RESP.Parser, new[]{ "UserCount", "UserList" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserJoin_RESP), global::AxibugProtobuf.Protobuf_UserJoin_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
@@ -186,8 +189,8 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, new[]{ "PushFrameNeedTimeUs", "LoadStateNeedTimeUs", "VideoFrameShowNeedTimeUs", "AudioFramePlayNeedTimeUs" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID" }, null, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "Motion" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID", "IsStar", "Stars" }, null, null, null, null)
}));
}
#endregion
@@ -1956,6 +1959,253 @@ namespace AxibugProtobuf {
}
+ ///
+ ///Token结构,但用于逻辑里配置加密密钥,放置于服务端加密后,发放token
+ ///
+ public sealed partial class Protobuf_Token_Struct : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_Token_Struct());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[6]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct(Protobuf_Token_Struct other) : this() {
+ uID_ = other.uID_;
+ tokenGenDate_ = other.tokenGenDate_;
+ seed_ = other.seed_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct Clone() {
+ return new Protobuf_Token_Struct(this);
+ }
+
+ /// Field number for the "UID" field.
+ public const int UIDFieldNumber = 1;
+ private long uID_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long UID {
+ get { return uID_; }
+ set {
+ uID_ = value;
+ }
+ }
+
+ /// Field number for the "TokenGenDate" field.
+ public const int TokenGenDateFieldNumber = 2;
+ private long tokenGenDate_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long TokenGenDate {
+ get { return tokenGenDate_; }
+ set {
+ tokenGenDate_ = value;
+ }
+ }
+
+ /// Field number for the "Seed" field.
+ public const int SeedFieldNumber = 3;
+ private long seed_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long Seed {
+ get { return seed_; }
+ set {
+ seed_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as Protobuf_Token_Struct);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(Protobuf_Token_Struct other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (UID != other.UID) return false;
+ if (TokenGenDate != other.TokenGenDate) return false;
+ if (Seed != other.Seed) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (UID != 0L) hash ^= UID.GetHashCode();
+ if (TokenGenDate != 0L) hash ^= TokenGenDate.GetHashCode();
+ if (Seed != 0L) hash ^= Seed.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (UID != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UID);
+ }
+ if (TokenGenDate != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(Seed);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (UID != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UID);
+ }
+ if (TokenGenDate != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(Seed);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (UID != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(UID);
+ }
+ if (TokenGenDate != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Seed);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(Protobuf_Token_Struct other) {
+ if (other == null) {
+ return;
+ }
+ if (other.UID != 0L) {
+ UID = other.UID;
+ }
+ if (other.TokenGenDate != 0L) {
+ TokenGenDate = other.TokenGenDate;
+ }
+ if (other.Seed != 0L) {
+ Seed = other.Seed;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ UID = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ TokenGenDate = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ Seed = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ UID = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ TokenGenDate = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ Seed = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
///
///获取在线用户列表 上行
///
@@ -1971,7 +2221,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[6]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[7]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2110,7 +2360,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[7]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[8]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2316,7 +2566,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[8]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[9]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2503,7 +2753,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[9]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[10]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2681,7 +2931,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[10]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[11]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2895,7 +3145,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[11]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[12]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3151,7 +3401,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[12]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[13]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3329,7 +3579,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[13]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[14]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3468,7 +3718,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[14]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[15]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3655,7 +3905,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[15]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[16]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3878,7 +4128,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[16]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[17]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4014,7 +4264,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[17]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[18]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4178,7 +4428,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[18]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[19]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4648,7 +4898,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[19]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[20]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4979,7 +5229,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[20]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[21]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5202,7 +5452,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[21]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5455,7 +5705,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5669,7 +5919,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5961,7 +6211,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6169,7 +6419,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[26]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6353,7 +6603,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[26]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[27]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6528,7 +6778,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[27]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[28]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6712,7 +6962,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[28]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[29]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6887,7 +7137,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[29]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[30]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7062,7 +7312,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[30]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[31]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7246,7 +7496,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[31]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[32]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7410,7 +7660,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[32]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[33]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7663,7 +7913,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[33]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[34]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7799,7 +8049,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[34]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[35]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8013,7 +8263,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[35]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[36]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8188,7 +8438,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[36]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[37]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8324,7 +8574,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[37]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[38]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8616,7 +8866,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[38]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[39]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8791,7 +9041,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[39]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[40]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9044,7 +9294,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[40]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[41]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9062,7 +9312,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark(Protobuf_Game_Mark other) : this() {
romID_ = other.romID_;
- state_ = other.state_;
+ motion_ = other.motion_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -9085,17 +9335,17 @@ namespace AxibugProtobuf {
}
}
- /// Field number for the "state" field.
- public const int StateFieldNumber = 2;
- private int state_;
+ /// Field number for the "motion" field.
+ public const int MotionFieldNumber = 2;
+ private int motion_;
///
- ///[0]收藏 [1]取消收藏
+ ///[0]取消收藏[1]收藏
///
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int State {
- get { return state_; }
+ public int Motion {
+ get { return motion_; }
set {
- state_ = value;
+ motion_ = value;
}
}
@@ -9113,7 +9363,7 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
- if (State != other.State) return false;
+ if (Motion != other.Motion) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -9121,7 +9371,7 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
- if (State != 0) hash ^= State.GetHashCode();
+ if (Motion != 0) hash ^= Motion.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -9142,9 +9392,9 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
- if (State != 0) {
+ if (Motion != 0) {
output.WriteRawTag(16);
- output.WriteInt32(State);
+ output.WriteInt32(Motion);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
@@ -9159,9 +9409,9 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
- if (State != 0) {
+ if (Motion != 0) {
output.WriteRawTag(16);
- output.WriteInt32(State);
+ output.WriteInt32(Motion);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
@@ -9175,8 +9425,8 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
- if (State != 0) {
- size += 1 + pb::CodedOutputStream.ComputeInt32Size(State);
+ if (Motion != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Motion);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
@@ -9192,8 +9442,8 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
- if (other.State != 0) {
- State = other.State;
+ if (other.Motion != 0) {
+ Motion = other.Motion;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -9214,7 +9464,7 @@ namespace AxibugProtobuf {
break;
}
case 16: {
- State = input.ReadInt32();
+ Motion = input.ReadInt32();
break;
}
}
@@ -9236,7 +9486,7 @@ namespace AxibugProtobuf {
break;
}
case 16: {
- State = input.ReadInt32();
+ Motion = input.ReadInt32();
break;
}
}
@@ -9258,7 +9508,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[41]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[42]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9276,6 +9526,8 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark_RESP(Protobuf_Game_Mark_RESP other) : this() {
romID_ = other.romID_;
+ isStar_ = other.isStar_;
+ stars_ = other.stars_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -9298,6 +9550,34 @@ namespace AxibugProtobuf {
}
}
+ /// Field number for the "IsStar" field.
+ public const int IsStarFieldNumber = 2;
+ private int isStar_;
+ ///
+ ///当前状态 [0]未收藏[1]已收藏
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int IsStar {
+ get { return isStar_; }
+ set {
+ isStar_ = value;
+ }
+ }
+
+ /// Field number for the "stars" field.
+ public const int StarsFieldNumber = 3;
+ private int stars_;
+ ///
+ ///当前收藏计数
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Stars {
+ get { return stars_; }
+ set {
+ stars_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark_RESP);
@@ -9312,6 +9592,8 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
+ if (IsStar != other.IsStar) return false;
+ if (Stars != other.Stars) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -9319,6 +9601,8 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
+ if (IsStar != 0) hash ^= IsStar.GetHashCode();
+ if (Stars != 0) hash ^= Stars.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -9339,6 +9623,14 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
+ if (IsStar != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(IsStar);
+ }
+ if (Stars != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Stars);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -9352,6 +9644,14 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
+ if (IsStar != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(IsStar);
+ }
+ if (Stars != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Stars);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -9364,6 +9664,12 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
+ if (IsStar != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(IsStar);
+ }
+ if (Stars != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Stars);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -9378,6 +9684,12 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
+ if (other.IsStar != 0) {
+ IsStar = other.IsStar;
+ }
+ if (other.Stars != 0) {
+ Stars = other.Stars;
+ }
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -9396,6 +9708,14 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
+ case 16: {
+ IsStar = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ Stars = input.ReadInt32();
+ break;
+ }
}
}
#endif
@@ -9414,6 +9734,14 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
+ case 16: {
+ IsStar = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ Stars = input.ReadInt32();
+ break;
+ }
}
}
}
diff --git a/AxibugEmuOnline.Web/AxibugEmuOnline.Web.csproj b/AxibugEmuOnline.Web/AxibugEmuOnline.Web.csproj
index e21bb7ea..0f3128a5 100644
--- a/AxibugEmuOnline.Web/AxibugEmuOnline.Web.csproj
+++ b/AxibugEmuOnline.Web/AxibugEmuOnline.Web.csproj
@@ -7,6 +7,7 @@
+
diff --git a/AxibugEmuOnline.Web/Common/AESHelper.cs b/AxibugEmuOnline.Web/Common/AESHelper.cs
new file mode 100644
index 00000000..3d3bfeb1
--- /dev/null
+++ b/AxibugEmuOnline.Web/Common/AESHelper.cs
@@ -0,0 +1,147 @@
+using System.Security.Cryptography;
+using System.Text;
+
+namespace AxibugEmuOnline.Web.Common
+{
+ public static class AESHelper
+ {
+ static byte[] currKey;
+ static byte[] currIV;
+
+ public static void LoadKeyIVCfg(string key, string vi)
+ {
+ try
+ {
+ currKey = CommaSeparatedStringToByteArray(key);
+ currIV = CommaSeparatedStringToByteArray(key);
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("aeskeyvi 配置错误"+ex.Message);
+ }
+ }
+
+ public static void LoadKeyIVCfg(byte[] key, byte[] vi)
+ {
+ currKey = key;
+ currIV = key;
+ }
+
+ public static void GenAesKeyIV()
+ {
+ Aes aes = Aes.Create();
+ aes.KeySize = 128;
+ aes.Mode = CipherMode.CBC;
+ aes.Padding = PaddingMode.PKCS7;
+ aes.GenerateKey();
+ aes.GenerateIV();
+
+ string key = ByteArrayToCommaSeparatedString(aes.Key);
+ Console.WriteLine("key:");
+ Console.WriteLine(key);
+ string vi = ByteArrayToCommaSeparatedString(aes.IV);
+ Console.WriteLine("iv:");
+ Console.WriteLine(vi);
+
+ byte[] temp = new byte[255];
+ for (byte i = 0; i < temp.Length; i++)
+ temp[i] = i;
+ byte[] EncodeData = Encrypt(temp, aes.Key, aes.IV);
+ byte[] DecodeData = Decrypt(EncodeData, aes.Key, aes.IV);
+
+ bool bOk = true;
+ if (temp.Length != DecodeData.Length)
+ {
+ bOk = false;
+ }
+ else
+ {
+ for (int i = 0; i < temp.Length; i++)
+ {
+ if (temp[i] != DecodeData[i])
+ {
+ bOk = false;
+ break;
+ }
+ }
+ }
+
+ Console.WriteLine($"密钥和填充加解密验证:{bOk}");
+ }
+
+ public static string ByteArrayToCommaSeparatedString(byte[] byteArray)
+ {
+ if (byteArray == null)
+ throw new ArgumentNullException(nameof(byteArray));
+
+ StringBuilder sb = new StringBuilder();
+
+ for (int i = 0; i < byteArray.Length; i++)
+ {
+ sb.Append(byteArray[i]);
+
+ // 不是最后一个元素时,添加逗号
+ if (i < byteArray.Length - 1)
+ {
+ sb.Append(",");
+ }
+ }
+
+ return sb.ToString();
+ }
+
+ public static byte[] CommaSeparatedStringToByteArray(string commaSeparatedString)
+ {
+ if (string.IsNullOrEmpty(commaSeparatedString))
+ throw new ArgumentNullException(nameof(commaSeparatedString));
+
+ // 去除字符串两端的空格,并按逗号分割
+ string[] byteStrings = commaSeparatedString.Trim().Split(',');
+
+ // 将每个字符串转换成byte,并存储到数组中
+ byte[] byteArray = byteStrings.Select(byteString =>
+ {
+ if (!byte.TryParse(byteString, out byte result))
+ throw new FormatException($"无法将字符串 '{byteString}' 解析为字节。");
+ return result;
+ }).ToArray();
+
+ return byteArray;
+ }
+
+ public static byte[] Encrypt(byte[] toEncryptArray)
+ {
+ return Encrypt(toEncryptArray, currKey, currIV);
+ }
+
+ public static byte[] Encrypt(byte[] toEncryptArray, byte[] keyArray, byte[] ivArray)
+ {
+ Aes rDel = Aes.Create();
+ rDel.Key = keyArray;
+ rDel.IV = ivArray;
+ rDel.Mode = CipherMode.CBC;
+ rDel.Padding = PaddingMode.PKCS7;
+ ICryptoTransform cTransform = rDel.CreateEncryptor();
+ byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
+ return resultArray;
+ }
+
+ public static byte[] Decrypt(byte[] toDecrypt)
+ {
+ return Decrypt(toDecrypt, currKey, currIV);
+ }
+
+ public static byte[] Decrypt(byte[] toDecrypt, byte[] keyArray, byte[] ivArray)
+ {
+ Aes rDel = Aes.Create();
+ rDel.Key = keyArray;
+ rDel.IV = ivArray;
+ rDel.Mode = CipherMode.CBC;
+ rDel.Padding = PaddingMode.PKCS7;
+ ICryptoTransform cTransform = rDel.CreateDecryptor();
+ byte[] resultArray = cTransform.TransformFinalBlock(toDecrypt, 0, toDecrypt.Length);
+ return resultArray;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/AxibugEmuOnline.Web/Common/Config.cs b/AxibugEmuOnline.Web/Common/Config.cs
index 9c6caae3..139d4041 100644
--- a/AxibugEmuOnline.Web/Common/Config.cs
+++ b/AxibugEmuOnline.Web/Common/Config.cs
@@ -19,6 +19,8 @@ namespace AxibugEmuOnline.Web.Common
public string ServerIp { get; set; }
public ushort ServerPort { get; set; }
public string ClientVersion { get; set; }
+ public string AesKey { get; set; }
+ public string AesIv { get; set; }
}
diff --git a/AxibugEmuOnline.Web/Common/ProtoBufHelper.cs b/AxibugEmuOnline.Web/Common/ProtoBufHelper.cs
new file mode 100644
index 00000000..b4451fc2
--- /dev/null
+++ b/AxibugEmuOnline.Web/Common/ProtoBufHelper.cs
@@ -0,0 +1,22 @@
+using Google.Protobuf;
+
+namespace AxibugEmuOnline.Web.Common
+{
+ public static class ProtoBufHelper
+ {
+
+ public static byte[] Serizlize(IMessage msg)
+ {
+ return msg.ToByteArray();
+ }
+
+ public static T DeSerizlize(byte[] bytes)
+ {
+ var msgType = typeof(T);
+ object msg = Activator.CreateInstance(msgType);
+ ((IMessage)msg).MergeFrom(bytes);
+ return (T)msg;
+ }
+ }
+
+}
diff --git a/AxibugEmuOnline.Web/Common/Haoyue_SQLPoolManager.cs b/AxibugEmuOnline.Web/Common/SQLPool.cs
similarity index 69%
rename from AxibugEmuOnline.Web/Common/Haoyue_SQLPoolManager.cs
rename to AxibugEmuOnline.Web/Common/SQLPool.cs
index 329f2b8e..3dae9816 100644
--- a/AxibugEmuOnline.Web/Common/Haoyue_SQLPoolManager.cs
+++ b/AxibugEmuOnline.Web/Common/SQLPool.cs
@@ -3,18 +3,16 @@ using MySql.Data.MySqlClient;
namespace AxibugEmuOnline.Web.Common
{
- public static class Haoyue_SQLPoolManager
+ public static class SQLPool
{
- private static Queue SQLPool = new Queue();
- private static Dictionary _OutOfSQLPool = new Dictionary();
- private static Dictionary _DicSqlRunFunNum = new Dictionary();
- private static Dictionary _DicTimeOutSqlRunFunNum = new Dictionary();
- private const int DefaultCount = 1;
- private const int MaxLimit = 5;
- private static readonly object _sync = new object();
-
-
- private static MySqlConnectionStringBuilder connBuilder;
+ static Queue _ConQueue = new Queue();
+ static Dictionary _OutOfSQLPool = new Dictionary();
+ static Dictionary _DicSqlRunFunNum = new Dictionary();
+ static Dictionary _DicTimeOutSqlRunFunNum = new Dictionary();
+ const int DefaultCount = 1;
+ const int MaxLimit = 5;
+ static readonly object _sync = new object();
+ static MySqlConnectionStringBuilder connBuilder;
public static void InitConnMgr()
{
@@ -34,9 +32,9 @@ namespace AxibugEmuOnline.Web.Common
{
MySqlConnection _conn = conn();
_conn.Open();
- SQLPool.Enqueue(_conn);
+ _ConQueue.Enqueue(_conn);
}
- Console.WriteLine("SQLPool初始化完毕,连接数" + SQLPool.Count);
+ Console.WriteLine("SQLPool初始化完毕,连接数" + _ConQueue.Count);
}
public static MySqlConnection conn()
{
@@ -55,23 +53,47 @@ namespace AxibugEmuOnline.Web.Common
{
_DicSqlRunFunNum[FuncStr] = 1L;
}
- MySqlConnection _conn;
- if (SQLPool.Count < 1)
+ MySqlConnection _conn = null;
+ if (_ConQueue.Count < 1)
{
- Console.WriteLine("[DequeueSQLConn]创建新的SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("[DequeueSQLConn]创建新的SQLPool.Count>" + _ConQueue.Count);
_conn = conn();
_conn.Open();
}
else
{
- Console.WriteLine("[DequeueSQLConn]取出一个SQLCount.Count>" + SQLPool.Count);
- _conn = SQLPool.Dequeue();
+ MySqlConnection temp = null;
+ while (_ConQueue.Count > 0)
+ {
+ Console.WriteLine("[DequeueSQLConn]取出一个SQLCount.Count>" + _ConQueue.Count);
+ temp = _ConQueue.Dequeue();
+ if (temp.State == System.Data.ConnectionState.Closed)
+ {
+ Console.WriteLine("[DequeueSQLConn]已经断开SQLCount.Count>" + _ConQueue.Count);
+ temp.Dispose();
+ temp = null;
+ continue;
+ }
+ }
+
+ if (temp != null)
+ {
+ _conn = temp;
+ }
+ else
+ {
+ Console.WriteLine("[DequeueSQLConn]连接池全部已断开,重新创建连接");
+ _conn = conn();
+ _conn.Open();
+ }
}
+
_OutOfSQLPool.Add(_conn, new Haoyue_PoolTime
{
time = time(),
FuncStr = FuncStr
});
+
return _conn;
}
}
@@ -87,16 +109,17 @@ namespace AxibugEmuOnline.Web.Common
{
Console.WriteLine("出队遗漏的数据出现了!");
}
- if (SQLPool.Count > MaxLimit)
+ if (_ConQueue.Count > MaxLimit)
{
- Console.WriteLine("已经不需要回收了,多余了,SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("已经不需要回收了,多余了,SQLPool.Count>" + _ConQueue.Count);
BackConn.Close();
+ BackConn.Dispose();
BackConn = null;
}
else
{
- SQLPool.Enqueue(BackConn);
- Console.WriteLine("回收SQLPool.Count>" + SQLPool.Count);
+ _ConQueue.Enqueue(BackConn);
+ Console.WriteLine("回收SQLPool.Count>" + _ConQueue.Count);
}
}
}
@@ -119,15 +142,15 @@ namespace AxibugEmuOnline.Web.Common
{
_DicTimeOutSqlRunFunNum[o2.Value.FuncStr] = 1L;
}
- if (SQLPool.Count > MaxLimit)
+ if (_ConQueue.Count > MaxLimit)
{
- Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "已经不需要回收了,多余了,SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "已经不需要回收了,多余了,SQLPool.Count>" + _ConQueue.Count);
o2.Key.Close();
}
else
{
- Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "回收SQLPool.Count>" + SQLPool.Count);
- SQLPool.Enqueue(o2.Key);
+ Console.WriteLine("[超时回收]" + o2.Value.FuncStr + "回收SQLPool.Count>" + _ConQueue.Count);
+ _ConQueue.Enqueue(o2.Key);
}
removeTemp.Add(o2.Key);
}
@@ -148,7 +171,7 @@ namespace AxibugEmuOnline.Web.Common
Console.WriteLine("[超时回收]_OutOfSQLPool清理异常???????");
}
}
- Console.WriteLine("[超时回收]处理结束SQLPool.Count>" + SQLPool.Count);
+ Console.WriteLine("[超时回收]处理结束SQLPool.Count>" + _ConQueue.Count);
}
}
public static long time()
diff --git a/AxibugEmuOnline.Web/Controllers/ApiController.cs b/AxibugEmuOnline.Web/Controllers/ApiController.cs
index dc4c17be..5b8306de 100644
--- a/AxibugEmuOnline.Web/Controllers/ApiController.cs
+++ b/AxibugEmuOnline.Web/Controllers/ApiController.cs
@@ -1,7 +1,9 @@
using AxibugEmuOnline.Web.Common;
+using AxibugProtobuf;
using Microsoft.AspNetCore.Mvc;
using MySql.Data.MySqlClient;
using Mysqlx.Crud;
+using System.Reflection.PortableExecutable;
namespace AxibugEmuOnline.Web.Controllers
{
@@ -14,6 +16,27 @@ namespace AxibugEmuOnline.Web.Controllers
_logger = logger;
}
+ static bool TryDecrypToken(string tokenStr,out Protobuf_Token_Struct tokenData)
+ {
+ if (string.IsNullOrEmpty(tokenStr) || string.IsNullOrEmpty(tokenStr.Trim()))
+ {
+ tokenData = null;
+ return false;
+ }
+ try
+ {
+ byte[] encryptData = Convert.FromBase64String(tokenStr.Trim());
+ byte[] decryptData = AESHelper.Decrypt(encryptData);
+ tokenData = ProtoBufHelper.DeSerizlize(decryptData);
+ return true;
+ }
+ catch
+ {
+ tokenData = null;
+ return false;
+ }
+ }
+
[HttpGet]
public JsonResult CheckStandInfo(int platform, string version)
{
@@ -29,15 +52,21 @@ namespace AxibugEmuOnline.Web.Controllers
}
[HttpGet]
- public JsonResult RomList(string SearchKey, int Ptype, int GType, int Page, int PageSize)
+ public JsonResult RomList(string SearchKey, int Ptype, int GType, int Page, int PageSize,string Token)
{
+ long UID = 0;
+ if (TryDecrypToken(Token, out Protobuf_Token_Struct tokenData))
+ {
+ UID = tokenData.UID;
+ }
+
string searchPattern = $"%{SearchKey}%";
Resp_GameList resp = new Resp_GameList();
resp.gameList = new List();
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("RomList");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("RomList");
{
string platformCond = "";
- if (GType > 0)
+ if (GType > (int)RomPlatformType.Invalid && GType < (int)RomPlatformType.All)
{
platformCond = $" and PlatformType = '{Ptype}' ";
}
@@ -90,7 +119,7 @@ namespace AxibugEmuOnline.Web.Controllers
int orderIndex = Page * PageSize;
while (reader.Read())
{
- resp.gameList.Add(new Resp_RomInfo()
+ Resp_RomInfo data = new Resp_RomInfo()
{
orderid = orderIndex++,
id = reader.GetInt32(0),
@@ -103,21 +132,133 @@ namespace AxibugEmuOnline.Web.Controllers
playcount = reader.GetInt32(7),
stars = reader.GetInt32(8),
ptype = reader.GetInt32(9),
- });
+ };
+
+ if (UID > 0)
+ {
+ if (CheckIsRomStar(data.id, UID))
+ data.isStar = 1;
+ }
+
+ resp.gameList.Add(data);
}
}
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
+ }
+ return new JsonResult(resp);
+ }
+
+
+ [HttpGet]
+ public JsonResult MarkList(string SearchKey, int Ptype, int GType, int Page, int PageSize, string Token)
+ {
+ long UID = 0;
+ if (TryDecrypToken(Token, out Protobuf_Token_Struct tokenData))
+ {
+ UID = tokenData.UID;
+ }
+
+ string searchPattern = $"%{SearchKey}%";
+ Resp_GameList resp = new Resp_GameList();
+ resp.gameList = new List();
+ MySqlConnection conn = SQLPool.DequeueSQLConn("MarkList");
+ {
+ string platformCond = "";
+ if (GType > (int)RomPlatformType.Invalid && GType < (int)RomPlatformType.All)
+ {
+ platformCond = $" and romlist.PlatformType = '{Ptype}' ";
+ }
+
+ GameType SearchGType = (GameType)GType;
+ string GameTypeCond = "";
+ switch (SearchGType)
+ {
+ case GameType.NONE:
+ GameTypeCond = string.Empty;
+ break;
+ case GameType.ALLINONE:
+ GameTypeCond = $" and romlist.GameType = 'Ͽ' ";
+ break;
+ default:
+ GameTypeCond = $" and romlist.GameType = '{SearchGType.ToString()}' ";
+ break;
+ }
+
+ string query = "SELECT count(romlist.id) from rom_stars LEFT JOIN romlist on romlist.Id = rom_stars.id where rom_stars.uid = ?uid and romlist.`Name` like ?searchPattern " + platformCond + GameTypeCond;
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // òֵ
+ command.Parameters.AddWithValue("?uid", UID);
+ command.Parameters.AddWithValue("?searchPattern", searchPattern);
+ // ִвѯ
+ using (var reader = command.ExecuteReader())
+ {
+ while (reader.Read())
+ {
+ resp.resultAllCount = reader.GetInt32(0);
+ resp.page = Page;
+ resp.maxPage = (int)Math.Ceiling((float)resp.resultAllCount / PageSize);
+ }
+ }
+ }
+
+
+ string HotOrderBy = "ORDER BY playcount DESC, id ASC";
+
+ query = $"SELECT romlist.id,romlist.`Name`,romlist.GameType,romlist.Note,romlist.RomUrl,romlist.ImgUrl,romlist.`Hash`,romlist.`playcount`,romlist.`stars`,romlist.`PlatformType` from rom_stars LEFT JOIN romlist on romlist.Id = rom_stars.id where rom_stars.uid = ?uid and romlist.`Name` like ?searchPattern {platformCond} {GameTypeCond} {HotOrderBy} LIMIT ?offset, ?pageSize;";
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // òֵ
+ command.Parameters.AddWithValue("?uid", UID);
+ command.Parameters.AddWithValue("?searchPattern", searchPattern);
+ command.Parameters.AddWithValue("?offset", Page * PageSize);
+ command.Parameters.AddWithValue("?pageSize", PageSize);
+ // ִвѯ
+ using (var reader = command.ExecuteReader())
+ {
+ int orderIndex = Page * PageSize;
+ while (reader.Read())
+ {
+ Resp_RomInfo data = new Resp_RomInfo()
+ {
+ orderid = orderIndex++,
+ id = reader.GetInt32(0),
+ romName = !reader.IsDBNull(1) ? reader.GetString(1) : string.Empty,
+ gType = !reader.IsDBNull(2) ? reader.GetString(2) : string.Empty,
+ desc = !reader.IsDBNull(3) ? reader.GetString(3) : string.Empty,
+ url = !reader.IsDBNull(4) ? reader.GetString(4) : string.Empty,
+ imgUrl = !reader.IsDBNull(5) ? reader.GetString(5) : string.Empty,
+ hash = !reader.IsDBNull(6) ? reader.GetString(6) : string.Empty,
+ playcount = reader.GetInt32(7),
+ stars = reader.GetInt32(8),
+ ptype = reader.GetInt32(9),
+ };
+
+ //ϾѾղ˵
+ data.isStar = 1;
+
+ resp.gameList.Add(data);
+ }
+ }
+ }
+ SQLPool.EnqueueSQLConn(conn);
}
return new JsonResult(resp);
}
[HttpGet]
- public JsonResult RomInfo(int Ptype, int RomID)
+ public JsonResult RomInfo(int Ptype, int RomID, string Token)
{
+ long UID = 0;
+ if (TryDecrypToken(Token, out Protobuf_Token_Struct tokenData))
+ {
+ UID = tokenData.UID;
+ }
+
string searchPattern = $"%{RomInfo}%";
Resp_RomInfo resp = new Resp_RomInfo();
- MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("NesRomList");
+ MySqlConnection conn = SQLPool.DequeueSQLConn("NesRomList");
{
string query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash`,`playcount`,`stars`,`PlatformType` FROM romlist where id = ?romid;";
using (var command = new MySqlCommand(query, conn))
@@ -142,8 +283,15 @@ namespace AxibugEmuOnline.Web.Controllers
}
}
}
- Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
+ SQLPool.EnqueueSQLConn(conn);
}
+
+ if (UID > 0)
+ {
+ if (CheckIsRomStar(resp.id, UID))
+ resp.isStar = 1;
+ }
+
return new JsonResult(resp);
}
@@ -170,6 +318,37 @@ namespace AxibugEmuOnline.Web.Controllers
ALLINONE,
}
+
+ public bool CheckIsRomStar(int RomId, long uid)
+ {
+ bool bhad = false;
+ MySqlConnection conn = SQLPool.DequeueSQLConn("CheckIsRomStart");
+ try
+ {
+ string query = $"SELECT count(0) from rom_stars where uid = ?uid and = ?romid";
+ using (var command = new MySqlCommand(query, conn))
+ {
+ // òֵ
+ command.Parameters.AddWithValue("?RomID", RomId);
+ command.Parameters.AddWithValue("?uid", uid);
+ // ִвѯ
+ using (var reader = command.ExecuteReader())
+ {
+ while (reader.Read())
+ {
+ bhad = reader.GetInt32(0) > 0;
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ //AppSrv.g_Log.Error(e);
+ }
+ SQLPool.EnqueueSQLConn(conn);
+ return bhad;
+ }
+
class Resp_CheckStandInfo
{
public int needUpdateClient { get; set; }
@@ -201,6 +380,8 @@ namespace AxibugEmuOnline.Web.Controllers
public string hash { get; set; }
public int stars { get; set; }
public int playcount { get; set; }
+ public int isStar { get; set; }
+
}
}
}
diff --git a/AxibugEmuOnline.Web/Program.cs b/AxibugEmuOnline.Web/Program.cs
index 2118500d..fe01bed1 100644
--- a/AxibugEmuOnline.Web/Program.cs
+++ b/AxibugEmuOnline.Web/Program.cs
@@ -7,7 +7,8 @@ namespace AxibugEmuOnline.Web
public static void Main(string[] args)
{
Config.LoadConfig();
- Haoyue_SQLPoolManager.InitConnMgr();
+ AESHelper.LoadKeyIVCfg(Config.cfg.AesKey, Config.cfg.AesIv);
+ SQLPool.InitConnMgr();
var builder = WebApplication.CreateBuilder(args);
diff --git a/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs b/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs
index 03dca7a1..22e17773 100644
--- a/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs
+++ b/ProtobufCore/out/CS/ProtobufAxibugEmuOnline.cs
@@ -36,113 +36,115 @@ namespace AxibugProtobuf {
"aW5fUkVTUBIQCghOaWNrTmFtZRgBIAEoCRINCgVUb2tlbhgCIAEoCRIVCg1M",
"YXN0TG9naW5EYXRlGAMgASgJEg8KB1JlZ0RhdGUYBCABKAkSMQoGU3RhdHVz",
"GAUgASgOMiEuQXhpYnVnUHJvdG9idWYuTG9naW5SZXN1bHRTdGF0dXMSCwoD",
- "VUlEGAYgASgDIhMKEVByb3RvYnVmX1VzZXJMaXN0IlsKFlByb3RvYnVmX1Vz",
- "ZXJMaXN0X1JFU1ASEQoJVXNlckNvdW50GAEgASgFEi4KCFVzZXJMaXN0GAIg",
- "AygLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZvIkgKFlByb3RvYnVm",
- "X1VzZXJKb2luX1JFU1ASLgoIVXNlckluZm8YASABKAsyHC5BeGlidWdQcm90",
- "b2J1Zi5Vc2VyTWluaUluZm8iJgoXUHJvdG9idWZfVXNlckxlYXZlX1JFU1AS",
- "CwoDVUlEGAEgASgDIjUKF1Byb3RvYnVmX1VzZXJTdGF0ZV9SRVNQEgsKA1VJ",
- "RBgBIAEoAxINCgVTdGF0ZRgCIAEoBSJdCgxVc2VyTWluaUluZm8SCwoDVUlE",
- "GAEgASgDEhAKCE5pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUYAyABKA4y",
- "Gi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlIiwKGFByb3RvYnVmX01vZGlm",
- "eV9OaWNrTmFtZRIQCghOaWNrTmFtZRgBIAEoCSIfCh1Qcm90b2J1Zl9Nb2Rp",
- "ZnlfTmlja05hbWVfUkVTUCJPCh1Qcm90b2J1Zl9VcGRhdGVfVXNlckluZm9f",
- "UkVTUBIuCghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJN",
- "aW5pSW5mbyJhCiJQcm90b2J1Zl9VcGRhdGVfT3RoZXJVc2VySW5mb19SRVNQ",
- "EgsKA1VJRBgBIAEoAxIuCghVc2VySW5mbxgCIAEoCzIcLkF4aWJ1Z1Byb3Rv",
- "YnVmLlVzZXJNaW5pSW5mbyIUChJQcm90b2J1Zl9Sb29tX0xpc3QiWwoXUHJv",
- "dG9idWZfUm9vbV9MaXN0X1JFU1ASQAoQUm9vbU1pbmlJbmZvTGlzdBgBIAMo",
- "CzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iywIK",
- "FlByb3RvYnVmX1Jvb21fTWluaUluZm8SDgoGUm9vbUlEGAEgASgFEhEKCUdh",
- "bWVSb21JRBgCIAEoBRITCgtHYW1lUm9tSGFzaBgDIAEoCRI5ChBHYW1lUGxh",
- "dGZvcm1UeXBlGAQgASgOMh8uQXhpYnVnUHJvdG9idWYuUm9tUGxhdGZvcm1U",
- "eXBlEhUKDUhvc3RQbGF5ZXJVSUQYBSABKAMSMAoJR2FtZVN0YXRlGAYgASgO",
- "Mh0uQXhpYnVnUHJvdG9idWYuUm9vbUdhbWVTdGF0ZRIUCgxPYnNVc2VyQ291",
- "bnQYByABKAUSGQoRU2NyZWVuUHJvdmlkZXJVSUQYCCABKAMSRAoQR2FtZVBs",
- "YXlTbG90TGlzdBgJIAMoCzIqLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
- "b21fR2FtZVBsYXlTbG90ItEBChpQcm90b2J1Zl9Sb29tX0dhbWVQbGF5U2xv",
- "dBISCgpQbGF5ZXJfVUlEGAEgASgDEhcKD1BsYXllcl9OaWNrTmFtZRgCIAEo",
- "CRIuCgpkZXZpY2VUeXBlGAMgASgOMhouQXhpYnVnUHJvdG9idWYuRGV2aWNl",
- "VHlwZRIZChFQbGF5ZXJMb2NhbEpveUlkeBgEIAEoBRI7ChZQbGF5ZXJMb2Nh",
- "bEdhbWVQYWRUeXBlGAUgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5",
- "cGUibQoZUHJvdG9idWZfUm9vbV9VcGRhdGVfUkVTUBISCgpVcGRhdGVUeXBl",
- "GAEgASgFEjwKDFJvb21NaW5pSW5mbxgCIAEoCzImLkF4aWJ1Z1Byb3RvYnVm",
- "LlByb3RvYnVmX1Jvb21fTWluaUluZm8iSwoVUHJvdG9idWZfU2NyZW5uX0Zy",
- "YW1lEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp",
- "dG1hcBgDIAEoDCJJCiNQcm90b2J1Zl9Sb29tX1NpbmdsZVBsYXllcklucHV0",
- "RGF0YRIPCgdGcmFtZUlEGAEgASgNEhEKCUlucHV0RGF0YRgCIAEoDSKAAQon",
- "UHJvdG9idWZfUm9vbV9TeW5fUm9vbUZyYW1lQWxsSW5wdXREYXRhEg8KB0Zy",
- "YW1lSUQYASABKA0SEQoJSW5wdXREYXRhGAIgASgEEhUKDVNlcnZlckZyYW1l",
- "SUQYAyABKA0SGgoSU2VydmVyRm9yd2FyZENvdW50GAQgASgNIj4KFFByb3Rv",
- "YnVmX1Jvb21fQ3JlYXRlEhEKCUdhbWVSb21JRBgBIAEoBRITCgtHYW1lUm9t",
- "SGFzaBgCIAEoCSJZChlQcm90b2J1Zl9Sb29tX0NyZWF0ZV9SRVNQEjwKDFJv",
- "b21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jv",
- "b21fTWluaUluZm8iJAoSUHJvdG9idWZfUm9vbV9Kb2luEg4KBlJvb21JRBgB",
- "IAEoBSJXChdQcm90b2J1Zl9Sb29tX0pvaW5fUkVTUBI8CgxSb29tTWluaUlu",
- "Zm8YASABKAsyJi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9Sb29tX01pbmlJ",
- "bmZvIiUKE1Byb3RvYnVmX1Jvb21fTGVhdmUSDgoGUm9vbUlEGAEgASgFIioK",
- "GFByb3RvYnVmX1Jvb21fTGVhdmVfUkVTUBIOCgZSb29tSUQYASABKAUiYQoh",
- "UHJvdG9idWZfUm9vbV9NeVJvb21fU3RhdGVfQ2hhbmdlEjwKDFJvb21NaW5p",
- "SW5mbxgBIAEoCzImLkF4aWJ1Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWlu",
- "aUluZm8iawokUHJvdG9idWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95",
- "EkMKC1Nsb3RXaXRoSm95GAEgAygLMi4uQXhpYnVnUHJvdG9idWYuUHJvdG9i",
- "dWZfUGxheVNsb3RJZHhXaXRoSm95SWR4Io8BCh5Qcm90b2J1Zl9QbGF5U2xv",
- "dElkeFdpdGhKb3lJZHgSFQoNUGxheWVyU2xvdElkeBgBIAEoBRIZChFQbGF5",
- "ZXJMb2NhbEpveUlkeBgCIAEoBRI7ChZQbGF5ZXJMb2NhbEdhbWVQYWRUeXBl",
- "GAMgASgOMhsuQXhpYnVnUHJvdG9idWYuR2FtZVBhZFR5cGUiKwopUHJvdG9i",
- "dWZfUm9vbV9DaGFuZ2VfUGxheVNsb3RXaXRoSm95X1JFU1AiRQobUHJvdG9i",
- "dWZfUm9vbV9XYWl0U3RlcF9SRVNQEhAKCFdhaXRTdGVwGAEgASgFEhQKDExv",
- "YWRTdGF0ZVJhdxgCIAEoDCI/CidQcm90b2J1Zl9Sb29tX0hvc3RQbGF5ZXJf",
- "VXBkYXRlU3RhdGVSYXcSFAoMTG9hZFN0YXRlUmF3GAEgASgMIi4KLFByb3Rv",
- "YnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhd19SRVNQIpoBChpQ",
- "cm90b2J1Zl9Sb29tX1BsYXllcl9SZWFkeRIbChNQdXNoRnJhbWVOZWVkVGlt",
- "ZVVzGAEgASgCEhsKE0xvYWRTdGF0ZU5lZWRUaW1lVXMYAiABKAISIAoYVmlk",
- "ZW9GcmFtZVNob3dOZWVkVGltZVVzGAMgASgCEiAKGEF1ZGlvRnJhbWVQbGF5",
- "TmVlZFRpbWVVcxgEIAEoAiIqChhQcm90b2J1Zl9Sb29tX0dldF9TY3JlZW4S",
- "DgoGUm9vbUlEGAEgASgFIlMKHVByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbl9S",
- "RVNQEg4KBlJvb21JRBgBIAEoBRIPCgdGcmFtZUlEGAIgASgFEhEKCVJhd0Jp",
- "dG1hcBgDIAEoDCIyChJQcm90b2J1Zl9HYW1lX01hcmsSDQoFUm9tSUQYASAB",
- "KAUSDQoFc3RhdGUYAiABKAUiKAoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1AS",
- "DQoFUm9tSUQYASABKAUqoQUKCUNvbW1hbmRJRBIOCgpDTURfREVGQVVMEAAS",
- "DAoIQ01EX1BJTkcQARIMCghDTURfUE9ORxACEg4KCUNNRF9MT0dJThDRDxIY",
- "ChNDTURfVVNFUl9PTkxJTkVMSVNUELgXEhIKDUNNRF9VU0VSX0pPSU4Q1xcS",
- "EwoOQ01EX1VTRVJfTEVBVkUQ2BcSGgoVQ01EX1VTRVJfU1RBVEVfVVBEQVRF",
- "ENkXEhgKE0NNRF9Nb2RpZnlfTmlja05hbWUQnRgSHAoXQ01EX1VwZGF0ZV9T",
- "ZWxmVXNlckluZm8QphgSHQoYQ01EX1VwZGF0ZV9PdGhlclVzZXJJbmZvEKgY",
- "EhAKC0NNRF9DSEFUTVNHEKEfEhIKDUNNRF9Sb29tX0xpc3QQiScSGQoUQ01E",
- "X1Jvb21fTGlzdF9VcGRhdGUQiicSGAoTQ01EX1Jvb21fR2V0X1NjcmVlbhCT",
- "JxIUCg9DTURfUm9vbV9DcmVhdGUQ7ScSEgoNQ01EX1Jvb21fSm9pbhDxJxIT",
- "Cg5DTURfUm9vbV9MZWF2ZRDyJxIiCh1DTURfUm9vbV9NeVJvb21fU3RhdGVf",
- "Q2hhbmdlZBD2JxIhChxDTURfUm9vbV9DaGFuZ2VQbGF5ZXJXaXRoSm95EIoo",
- "EhYKEUNNRF9Sb29tX1dhaXRTdGVwENEoEicKIkNNRF9Sb29tX0hvc3RQbGF5",
- "ZXJfVXBkYXRlU3RhdGVSYXcQ1CgSGgoVQ01EX1Jvb21fUGxheWVyX1JlYWR5",
- "ENgoEiAKG0NNRF9Sb29tX1NpbmdlbF9QbGF5ZXJJbnB1dBD6LhIdChhDTURf",
- "Uk9PTV9TWU5fUGxheWVySW5wdXQQ/y4SDwoKQ01EX1NjcmVlbhDZNhISCg1D",
- "TURfR0FNRV9NQVJLEPVOKtABCglFcnJvckNvZGUSEAoMRVJST1JfREVGQVVM",
- "EAASDAoIRVJST1JfT0sQARIYChRFUlJPUl9ST09NX05PVF9GT1VORBAKEicK",
- "I0VSUk9SX1JPT01fU0xPVF9BTFJFQURMWV9IQURfUExBWUVSEAsSIQodRVJS",
- "T1JfUk9PTV9DQU5UX0RPX0NVUlJfU1RBVEUQMhIfChpFUlJPUl9ST01fQUxS",
- "RUFEWV9IQURfU1RBUhCTAxIcChdFUlJPUl9ST01fRE9OVF9IQURfU1RBUhCU",
- "AypACglMb2dpblR5cGUSDQoJVXNlRGV2aWNlEAASDgoKVXNlQWNjb3VudBAB",
- "EhQKEFVzZUhhb1l1ZUFjY291bnQQAiqlAQoKRGV2aWNlVHlwZRIWChJEZXZp",
- "Y2VUeXBlX0RlZmF1bHQQABIGCgJQQxABEgsKB0FuZHJvaWQQAhIHCgNJT1MQ",
- "AxIHCgNQU1YQBBIHCgNQUzMQBRIHCgNQUzQQBhILCgdYQk9YMzYwEAcSCwoH",
- "WEJPWE9ORRAIEggKBFdpaVUQCRIPCgtOaW50ZW5kbzNEUxAKEhEKDUFuZHJv",
- "aWRDYXJBcHAQCyqTAgoLR2FtZVBhZFR5cGUSDAoIS2V5Ym9hcmQQABIRCg1H",
- "bG9iYWxHYW1lUGFkEAESDgoKVG91Y2hQYW5lbBACEg4KCkRTM0NvbnRyb2wQ",
- "AxIOCgpEUzRDb250cm9sEAQSDgoKRFM1Q29udHJvbBAFEhQKEFN3aXRjaFBy",
- "b0NvbnRyb2wQBhIQCgxTd2l0Y2hKb3lDb24QBxISCg5YQk9YMzYwQ29udHJv",
- "bBAIEhIKDlhCT1hPTkVDb250cm9sEAkSEQoNUFNWaXRhQ29udHJvbBAKEhIK",
- "DldpaVVQYWRDb250cm9sEAsSFAoQV2lpUmVtb3RlQ29udHJvbBAMEhYKEk5p",
- "bnRlbmRvM0RTQ29udHJvbBANKqIBCg9Sb21QbGF0Zm9ybVR5cGUSCwoHSW52",
- "YWxpZBAAEgcKA05lcxABEhEKDU1hc3Rlcl9TeXN0ZW0QAhINCglHYW1lX0dl",
- "YXIQAxIMCghHYW1lX0JveRAEEhIKDkdhbWVfQm95X0NvbG9yEAUSEQoNQ29s",
- "ZWNvX1Zpc2lvbhAGEgsKB1NDXzMwMDAQBxILCgdTR18xMDAwEAgSCAoDQWxs",
- "EOcHKnAKDVJvb21HYW1lU3RhdGUSEgoOTm9uZV9HYW1lU3RhdGUQABIMCghP",
- "bmx5SG9zdBABEhEKDVdhaXRSYXdVcGRhdGUQAhINCglXYWl0UmVhZHkQAxIJ",
- "CgVQYXVzZRAEEhAKDEluT25saW5lR2FtZRAFKk4KEUxvZ2luUmVzdWx0U3Rh",
- "dHVzEiEKHUxvZ2luUmVzdWx0U3RhdHVzX0Jhc2VEZWZhdWx0EAASBgoCT0sQ",
- "ARIOCgpBY2NvdW50RXJyEAJCAkgBYgZwcm90bzM="));
+ "VUlEGAYgASgDIkgKFVByb3RvYnVmX1Rva2VuX1N0cnVjdBILCgNVSUQYASAB",
+ "KAMSFAoMVG9rZW5HZW5EYXRlGAIgASgDEgwKBFNlZWQYAyABKAMiEwoRUHJv",
+ "dG9idWZfVXNlckxpc3QiWwoWUHJvdG9idWZfVXNlckxpc3RfUkVTUBIRCglV",
+ "c2VyQ291bnQYASABKAUSLgoIVXNlckxpc3QYAiADKAsyHC5BeGlidWdQcm90",
+ "b2J1Zi5Vc2VyTWluaUluZm8iSAoWUHJvdG9idWZfVXNlckpvaW5fUkVTUBIu",
+ "CghVc2VySW5mbxgBIAEoCzIcLkF4aWJ1Z1Byb3RvYnVmLlVzZXJNaW5pSW5m",
+ "byImChdQcm90b2J1Zl9Vc2VyTGVhdmVfUkVTUBILCgNVSUQYASABKAMiNQoX",
+ "UHJvdG9idWZfVXNlclN0YXRlX1JFU1ASCwoDVUlEGAEgASgDEg0KBVN0YXRl",
+ "GAIgASgFIl0KDFVzZXJNaW5pSW5mbxILCgNVSUQYASABKAMSEAoITmlja05h",
+ "bWUYAiABKAkSLgoKZGV2aWNlVHlwZRgDIAEoDjIaLkF4aWJ1Z1Byb3RvYnVm",
+ "LkRldmljZVR5cGUiLAoYUHJvdG9idWZfTW9kaWZ5X05pY2tOYW1lEhAKCE5p",
+ "Y2tOYW1lGAEgASgJIh8KHVByb3RvYnVmX01vZGlmeV9OaWNrTmFtZV9SRVNQ",
+ "Ik8KHVByb3RvYnVmX1VwZGF0ZV9Vc2VySW5mb19SRVNQEi4KCFVzZXJJbmZv",
+ "GAEgASgLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZvImEKIlByb3Rv",
+ "YnVmX1VwZGF0ZV9PdGhlclVzZXJJbmZvX1JFU1ASCwoDVUlEGAEgASgDEi4K",
+ "CFVzZXJJbmZvGAIgASgLMhwuQXhpYnVnUHJvdG9idWYuVXNlck1pbmlJbmZv",
+ "IhQKElByb3RvYnVmX1Jvb21fTGlzdCJbChdQcm90b2J1Zl9Sb29tX0xpc3Rf",
+ "UkVTUBJAChBSb29tTWluaUluZm9MaXN0GAEgAygLMiYuQXhpYnVnUHJvdG9i",
+ "dWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyLLAgoWUHJvdG9idWZfUm9vbV9N",
+ "aW5pSW5mbxIOCgZSb29tSUQYASABKAUSEQoJR2FtZVJvbUlEGAIgASgFEhMK",
+ "C0dhbWVSb21IYXNoGAMgASgJEjkKEEdhbWVQbGF0Zm9ybVR5cGUYBCABKA4y",
+ "Hy5BeGlidWdQcm90b2J1Zi5Sb21QbGF0Zm9ybVR5cGUSFQoNSG9zdFBsYXll",
+ "clVJRBgFIAEoAxIwCglHYW1lU3RhdGUYBiABKA4yHS5BeGlidWdQcm90b2J1",
+ "Zi5Sb29tR2FtZVN0YXRlEhQKDE9ic1VzZXJDb3VudBgHIAEoBRIZChFTY3Jl",
+ "ZW5Qcm92aWRlclVJRBgIIAEoAxJEChBHYW1lUGxheVNsb3RMaXN0GAkgAygL",
+ "MiouQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9HYW1lUGxheVNsb3Qi",
+ "0QEKGlByb3RvYnVmX1Jvb21fR2FtZVBsYXlTbG90EhIKClBsYXllcl9VSUQY",
+ "ASABKAMSFwoPUGxheWVyX05pY2tOYW1lGAIgASgJEi4KCmRldmljZVR5cGUY",
+ "AyABKA4yGi5BeGlidWdQcm90b2J1Zi5EZXZpY2VUeXBlEhkKEVBsYXllckxv",
+ "Y2FsSm95SWR4GAQgASgFEjsKFlBsYXllckxvY2FsR2FtZVBhZFR5cGUYBSAB",
+ "KA4yGy5BeGlidWdQcm90b2J1Zi5HYW1lUGFkVHlwZSJtChlQcm90b2J1Zl9S",
+ "b29tX1VwZGF0ZV9SRVNQEhIKClVwZGF0ZVR5cGUYASABKAUSPAoMUm9vbU1p",
+ "bmlJbmZvGAIgASgLMiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9N",
+ "aW5pSW5mbyJLChVQcm90b2J1Zl9TY3Jlbm5fRnJhbWUSDgoGUm9vbUlEGAEg",
+ "ASgFEg8KB0ZyYW1lSUQYAiABKAUSEQoJUmF3Qml0bWFwGAMgASgMIkkKI1By",
+ "b3RvYnVmX1Jvb21fU2luZ2xlUGxheWVySW5wdXREYXRhEg8KB0ZyYW1lSUQY",
+ "ASABKA0SEQoJSW5wdXREYXRhGAIgASgNIoABCidQcm90b2J1Zl9Sb29tX1N5",
+ "bl9Sb29tRnJhbWVBbGxJbnB1dERhdGESDwoHRnJhbWVJRBgBIAEoDRIRCglJ",
+ "bnB1dERhdGEYAiABKAQSFQoNU2VydmVyRnJhbWVJRBgDIAEoDRIaChJTZXJ2",
+ "ZXJGb3J3YXJkQ291bnQYBCABKA0iPgoUUHJvdG9idWZfUm9vbV9DcmVhdGUS",
+ "EQoJR2FtZVJvbUlEGAEgASgFEhMKC0dhbWVSb21IYXNoGAIgASgJIlkKGVBy",
+ "b3RvYnVmX1Jvb21fQ3JlYXRlX1JFU1ASPAoMUm9vbU1pbmlJbmZvGAEgASgL",
+ "MiYuQXhpYnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyIkChJQ",
+ "cm90b2J1Zl9Sb29tX0pvaW4SDgoGUm9vbUlEGAEgASgFIlcKF1Byb3RvYnVm",
+ "X1Jvb21fSm9pbl9SRVNQEjwKDFJvb21NaW5pSW5mbxgBIAEoCzImLkF4aWJ1",
+ "Z1Byb3RvYnVmLlByb3RvYnVmX1Jvb21fTWluaUluZm8iJQoTUHJvdG9idWZf",
+ "Um9vbV9MZWF2ZRIOCgZSb29tSUQYASABKAUiKgoYUHJvdG9idWZfUm9vbV9M",
+ "ZWF2ZV9SRVNQEg4KBlJvb21JRBgBIAEoBSJhCiFQcm90b2J1Zl9Sb29tX015",
+ "Um9vbV9TdGF0ZV9DaGFuZ2USPAoMUm9vbU1pbmlJbmZvGAEgASgLMiYuQXhp",
+ "YnVnUHJvdG9idWYuUHJvdG9idWZfUm9vbV9NaW5pSW5mbyJrCiRQcm90b2J1",
+ "Zl9Sb29tX0NoYW5nZV9QbGF5U2xvdFdpdGhKb3kSQwoLU2xvdFdpdGhKb3kY",
+ "ASADKAsyLi5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9QbGF5U2xvdElkeFdp",
+ "dGhKb3lJZHgijwEKHlByb3RvYnVmX1BsYXlTbG90SWR4V2l0aEpveUlkeBIV",
+ "Cg1QbGF5ZXJTbG90SWR4GAEgASgFEhkKEVBsYXllckxvY2FsSm95SWR4GAIg",
+ "ASgFEjsKFlBsYXllckxvY2FsR2FtZVBhZFR5cGUYAyABKA4yGy5BeGlidWdQ",
+ "cm90b2J1Zi5HYW1lUGFkVHlwZSIrCilQcm90b2J1Zl9Sb29tX0NoYW5nZV9Q",
+ "bGF5U2xvdFdpdGhKb3lfUkVTUCJFChtQcm90b2J1Zl9Sb29tX1dhaXRTdGVw",
+ "X1JFU1ASEAoIV2FpdFN0ZXAYASABKAUSFAoMTG9hZFN0YXRlUmF3GAIgASgM",
+ "Ij8KJ1Byb3RvYnVmX1Jvb21fSG9zdFBsYXllcl9VcGRhdGVTdGF0ZVJhdxIU",
+ "CgxMb2FkU3RhdGVSYXcYASABKAwiLgosUHJvdG9idWZfUm9vbV9Ib3N0UGxh",
+ "eWVyX1VwZGF0ZVN0YXRlUmF3X1JFU1AimgEKGlByb3RvYnVmX1Jvb21fUGxh",
+ "eWVyX1JlYWR5EhsKE1B1c2hGcmFtZU5lZWRUaW1lVXMYASABKAISGwoTTG9h",
+ "ZFN0YXRlTmVlZFRpbWVVcxgCIAEoAhIgChhWaWRlb0ZyYW1lU2hvd05lZWRU",
+ "aW1lVXMYAyABKAISIAoYQXVkaW9GcmFtZVBsYXlOZWVkVGltZVVzGAQgASgC",
+ "IioKGFByb3RvYnVmX1Jvb21fR2V0X1NjcmVlbhIOCgZSb29tSUQYASABKAUi",
+ "UwodUHJvdG9idWZfUm9vbV9HZXRfU2NyZWVuX1JFU1ASDgoGUm9vbUlEGAEg",
+ "ASgFEg8KB0ZyYW1lSUQYAiABKAUSEQoJUmF3Qml0bWFwGAMgASgMIjMKElBy",
+ "b3RvYnVmX0dhbWVfTWFyaxINCgVSb21JRBgBIAEoBRIOCgZtb3Rpb24YAiAB",
+ "KAUiRwoXUHJvdG9idWZfR2FtZV9NYXJrX1JFU1ASDQoFUm9tSUQYASABKAUS",
+ "DgoGSXNTdGFyGAIgASgFEg0KBXN0YXJzGAMgASgFKqEFCglDb21tYW5kSUQS",
+ "DgoKQ01EX0RFRkFVTBAAEgwKCENNRF9QSU5HEAESDAoIQ01EX1BPTkcQAhIO",
+ "CglDTURfTE9HSU4Q0Q8SGAoTQ01EX1VTRVJfT05MSU5FTElTVBC4FxISCg1D",
+ "TURfVVNFUl9KT0lOENcXEhMKDkNNRF9VU0VSX0xFQVZFENgXEhoKFUNNRF9V",
+ "U0VSX1NUQVRFX1VQREFURRDZFxIYChNDTURfTW9kaWZ5X05pY2tOYW1lEJ0Y",
+ "EhwKF0NNRF9VcGRhdGVfU2VsZlVzZXJJbmZvEKYYEh0KGENNRF9VcGRhdGVf",
+ "T3RoZXJVc2VySW5mbxCoGBIQCgtDTURfQ0hBVE1TRxChHxISCg1DTURfUm9v",
+ "bV9MaXN0EIknEhkKFENNRF9Sb29tX0xpc3RfVXBkYXRlEIonEhgKE0NNRF9S",
+ "b29tX0dldF9TY3JlZW4QkycSFAoPQ01EX1Jvb21fQ3JlYXRlEO0nEhIKDUNN",
+ "RF9Sb29tX0pvaW4Q8ScSEwoOQ01EX1Jvb21fTGVhdmUQ8icSIgodQ01EX1Jv",
+ "b21fTXlSb29tX1N0YXRlX0NoYW5nZWQQ9icSIQocQ01EX1Jvb21fQ2hhbmdl",
+ "UGxheWVyV2l0aEpveRCKKBIWChFDTURfUm9vbV9XYWl0U3RlcBDRKBInCiJD",
+ "TURfUm9vbV9Ib3N0UGxheWVyX1VwZGF0ZVN0YXRlUmF3ENQoEhoKFUNNRF9S",
+ "b29tX1BsYXllcl9SZWFkeRDYKBIgChtDTURfUm9vbV9TaW5nZWxfUGxheWVy",
+ "SW5wdXQQ+i4SHQoYQ01EX1JPT01fU1lOX1BsYXllcklucHV0EP8uEg8KCkNN",
+ "RF9TY3JlZW4Q2TYSEgoNQ01EX0dBTUVfTUFSSxD1TirQAQoJRXJyb3JDb2Rl",
+ "EhAKDEVSUk9SX0RFRkFVTBAAEgwKCEVSUk9SX09LEAESGAoURVJST1JfUk9P",
+ "TV9OT1RfRk9VTkQQChInCiNFUlJPUl9ST09NX1NMT1RfQUxSRUFETFlfSEFE",
+ "X1BMQVlFUhALEiEKHUVSUk9SX1JPT01fQ0FOVF9ET19DVVJSX1NUQVRFEDIS",
+ "HwoaRVJST1JfUk9NX0FMUkVBRFlfSEFEX1NUQVIQkwMSHAoXRVJST1JfUk9N",
+ "X0RPTlRfSEFEX1NUQVIQlAMqQAoJTG9naW5UeXBlEg0KCVVzZURldmljZRAA",
+ "Eg4KClVzZUFjY291bnQQARIUChBVc2VIYW9ZdWVBY2NvdW50EAIqpQEKCkRl",
+ "dmljZVR5cGUSFgoSRGV2aWNlVHlwZV9EZWZhdWx0EAASBgoCUEMQARILCgdB",
+ "bmRyb2lkEAISBwoDSU9TEAMSBwoDUFNWEAQSBwoDUFMzEAUSBwoDUFM0EAYS",
+ "CwoHWEJPWDM2MBAHEgsKB1hCT1hPTkUQCBIICgRXaWlVEAkSDwoLTmludGVu",
+ "ZG8zRFMQChIRCg1BbmRyb2lkQ2FyQXBwEAsqkwIKC0dhbWVQYWRUeXBlEgwK",
+ "CEtleWJvYXJkEAASEQoNR2xvYmFsR2FtZVBhZBABEg4KClRvdWNoUGFuZWwQ",
+ "AhIOCgpEUzNDb250cm9sEAMSDgoKRFM0Q29udHJvbBAEEg4KCkRTNUNvbnRy",
+ "b2wQBRIUChBTd2l0Y2hQcm9Db250cm9sEAYSEAoMU3dpdGNoSm95Q29uEAcS",
+ "EgoOWEJPWDM2MENvbnRyb2wQCBISCg5YQk9YT05FQ29udHJvbBAJEhEKDVBT",
+ "Vml0YUNvbnRyb2wQChISCg5XaWlVUGFkQ29udHJvbBALEhQKEFdpaVJlbW90",
+ "ZUNvbnRyb2wQDBIWChJOaW50ZW5kbzNEU0NvbnRyb2wQDSqiAQoPUm9tUGxh",
+ "dGZvcm1UeXBlEgsKB0ludmFsaWQQABIHCgNOZXMQARIRCg1NYXN0ZXJfU3lz",
+ "dGVtEAISDQoJR2FtZV9HZWFyEAMSDAoIR2FtZV9Cb3kQBBISCg5HYW1lX0Jv",
+ "eV9Db2xvchAFEhEKDUNvbGVjb19WaXNpb24QBhILCgdTQ18zMDAwEAcSCwoH",
+ "U0dfMTAwMBAIEggKA0FsbBDnBypwCg1Sb29tR2FtZVN0YXRlEhIKDk5vbmVf",
+ "R2FtZVN0YXRlEAASDAoIT25seUhvc3QQARIRCg1XYWl0UmF3VXBkYXRlEAIS",
+ "DQoJV2FpdFJlYWR5EAMSCQoFUGF1c2UQBBIQCgxJbk9ubGluZUdhbWUQBSpO",
+ "ChFMb2dpblJlc3VsdFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNl",
+ "RGVmYXVsdBAAEgYKAk9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.GamePadType), typeof(global::AxibugProtobuf.RomPlatformType), typeof(global::AxibugProtobuf.RoomGameState), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -152,6 +154,7 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Pong), global::AxibugProtobuf.Protobuf_Pong.Parser, new[]{ "Seed" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login), global::AxibugProtobuf.Protobuf_Login.Parser, new[]{ "LoginType", "DeviceType", "DeviceStr", "Account", "Password" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "NickName", "Token", "LastLoginDate", "RegDate", "Status", "UID" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Token_Struct), global::AxibugProtobuf.Protobuf_Token_Struct.Parser, new[]{ "UID", "TokenGenDate", "Seed" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserList), global::AxibugProtobuf.Protobuf_UserList.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserList_RESP), global::AxibugProtobuf.Protobuf_UserList_RESP.Parser, new[]{ "UserCount", "UserList" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_UserJoin_RESP), global::AxibugProtobuf.Protobuf_UserJoin_RESP.Parser, new[]{ "UserInfo" }, null, null, null, null),
@@ -186,8 +189,8 @@ namespace AxibugProtobuf {
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Player_Ready), global::AxibugProtobuf.Protobuf_Room_Player_Ready.Parser, new[]{ "PushFrameNeedTimeUs", "LoadStateNeedTimeUs", "VideoFrameShowNeedTimeUs", "AudioFramePlayNeedTimeUs" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen), global::AxibugProtobuf.Protobuf_Room_Get_Screen.Parser, new[]{ "RoomID" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP), global::AxibugProtobuf.Protobuf_Room_Get_Screen_RESP.Parser, new[]{ "RoomID", "FrameID", "RawBitmap" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "State" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID" }, null, null, null, null)
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark), global::AxibugProtobuf.Protobuf_Game_Mark.Parser, new[]{ "RomID", "Motion" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Game_Mark_RESP), global::AxibugProtobuf.Protobuf_Game_Mark_RESP.Parser, new[]{ "RomID", "IsStar", "Stars" }, null, null, null, null)
}));
}
#endregion
@@ -1956,6 +1959,253 @@ namespace AxibugProtobuf {
}
+ ///
+ ///Token结构,但用于逻辑里配置加密密钥,放置于服务端加密后,发放token
+ ///
+ public sealed partial class Protobuf_Token_Struct : pb::IMessage
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ , pb::IBufferMessage
+ #endif
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_Token_Struct());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor {
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[6]; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor {
+ get { return Descriptor; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct() {
+ OnConstruction();
+ }
+
+ partial void OnConstruction();
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct(Protobuf_Token_Struct other) : this() {
+ uID_ = other.uID_;
+ tokenGenDate_ = other.tokenGenDate_;
+ seed_ = other.seed_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public Protobuf_Token_Struct Clone() {
+ return new Protobuf_Token_Struct(this);
+ }
+
+ /// Field number for the "UID" field.
+ public const int UIDFieldNumber = 1;
+ private long uID_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long UID {
+ get { return uID_; }
+ set {
+ uID_ = value;
+ }
+ }
+
+ /// Field number for the "TokenGenDate" field.
+ public const int TokenGenDateFieldNumber = 2;
+ private long tokenGenDate_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long TokenGenDate {
+ get { return tokenGenDate_; }
+ set {
+ tokenGenDate_ = value;
+ }
+ }
+
+ /// Field number for the "Seed" field.
+ public const int SeedFieldNumber = 3;
+ private long seed_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long Seed {
+ get { return seed_; }
+ set {
+ seed_ = value;
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other) {
+ return Equals(other as Protobuf_Token_Struct);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(Protobuf_Token_Struct other) {
+ if (ReferenceEquals(other, null)) {
+ return false;
+ }
+ if (ReferenceEquals(other, this)) {
+ return true;
+ }
+ if (UID != other.UID) return false;
+ if (TokenGenDate != other.TokenGenDate) return false;
+ if (Seed != other.Seed) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode() {
+ int hash = 1;
+ if (UID != 0L) hash ^= UID.GetHashCode();
+ if (TokenGenDate != 0L) hash ^= TokenGenDate.GetHashCode();
+ if (Seed != 0L) hash ^= Seed.GetHashCode();
+ if (_unknownFields != null) {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString() {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ output.WriteRawMessage(this);
+ #else
+ if (UID != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UID);
+ }
+ if (TokenGenDate != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(Seed);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(output);
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
+ if (UID != 0L) {
+ output.WriteRawTag(8);
+ output.WriteInt64(UID);
+ }
+ if (TokenGenDate != 0L) {
+ output.WriteRawTag(16);
+ output.WriteInt64(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ output.WriteRawTag(24);
+ output.WriteInt64(Seed);
+ }
+ if (_unknownFields != null) {
+ _unknownFields.WriteTo(ref output);
+ }
+ }
+ #endif
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize() {
+ int size = 0;
+ if (UID != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(UID);
+ }
+ if (TokenGenDate != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(TokenGenDate);
+ }
+ if (Seed != 0L) {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(Seed);
+ }
+ if (_unknownFields != null) {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(Protobuf_Token_Struct other) {
+ if (other == null) {
+ return;
+ }
+ if (other.UID != 0L) {
+ UID = other.UID;
+ }
+ if (other.TokenGenDate != 0L) {
+ TokenGenDate = other.TokenGenDate;
+ }
+ if (other.Seed != 0L) {
+ Seed = other.Seed;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input) {
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ input.ReadRawMessage(this);
+ #else
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 8: {
+ UID = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ TokenGenDate = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ Seed = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ #endif
+ }
+
+ #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0) {
+ switch(tag) {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
+ break;
+ case 8: {
+ UID = input.ReadInt64();
+ break;
+ }
+ case 16: {
+ TokenGenDate = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ Seed = input.ReadInt64();
+ break;
+ }
+ }
+ }
+ }
+ #endif
+
+ }
+
///
///获取在线用户列表 上行
///
@@ -1971,7 +2221,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[6]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[7]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2110,7 +2360,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[7]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[8]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2316,7 +2566,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[8]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[9]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2503,7 +2753,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[9]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[10]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2681,7 +2931,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[10]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[11]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -2895,7 +3145,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[11]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[12]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3151,7 +3401,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[12]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[13]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3329,7 +3579,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[13]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[14]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3468,7 +3718,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[14]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[15]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3655,7 +3905,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[15]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[16]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3878,7 +4128,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[16]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[17]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4014,7 +4264,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[17]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[18]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4178,7 +4428,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[18]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[19]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4648,7 +4898,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[19]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[20]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4979,7 +5229,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[20]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[21]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5202,7 +5452,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[21]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5455,7 +5705,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[22]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5669,7 +5919,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[23]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -5961,7 +6211,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[24]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6169,7 +6419,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[25]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[26]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6353,7 +6603,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[26]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[27]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6528,7 +6778,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[27]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[28]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6712,7 +6962,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[28]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[29]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -6887,7 +7137,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[29]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[30]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7062,7 +7312,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[30]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[31]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7246,7 +7496,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[31]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[32]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7410,7 +7660,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[32]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[33]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7663,7 +7913,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[33]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[34]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -7799,7 +8049,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[34]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[35]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8013,7 +8263,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[35]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[36]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8188,7 +8438,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[36]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[37]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8324,7 +8574,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[37]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[38]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8616,7 +8866,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[38]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[39]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -8791,7 +9041,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[39]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[40]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9044,7 +9294,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[40]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[41]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9062,7 +9312,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark(Protobuf_Game_Mark other) : this() {
romID_ = other.romID_;
- state_ = other.state_;
+ motion_ = other.motion_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -9085,17 +9335,17 @@ namespace AxibugProtobuf {
}
}
- /// Field number for the "state" field.
- public const int StateFieldNumber = 2;
- private int state_;
+ /// Field number for the "motion" field.
+ public const int MotionFieldNumber = 2;
+ private int motion_;
///
- ///[0]收藏 [1]取消收藏
+ ///[0]取消收藏[1]收藏
///
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int State {
- get { return state_; }
+ public int Motion {
+ get { return motion_; }
set {
- state_ = value;
+ motion_ = value;
}
}
@@ -9113,7 +9363,7 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
- if (State != other.State) return false;
+ if (Motion != other.Motion) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -9121,7 +9371,7 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
- if (State != 0) hash ^= State.GetHashCode();
+ if (Motion != 0) hash ^= Motion.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -9142,9 +9392,9 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
- if (State != 0) {
+ if (Motion != 0) {
output.WriteRawTag(16);
- output.WriteInt32(State);
+ output.WriteInt32(Motion);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
@@ -9159,9 +9409,9 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
- if (State != 0) {
+ if (Motion != 0) {
output.WriteRawTag(16);
- output.WriteInt32(State);
+ output.WriteInt32(Motion);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
@@ -9175,8 +9425,8 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
- if (State != 0) {
- size += 1 + pb::CodedOutputStream.ComputeInt32Size(State);
+ if (Motion != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Motion);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
@@ -9192,8 +9442,8 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
- if (other.State != 0) {
- State = other.State;
+ if (other.Motion != 0) {
+ Motion = other.Motion;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -9214,7 +9464,7 @@ namespace AxibugProtobuf {
break;
}
case 16: {
- State = input.ReadInt32();
+ Motion = input.ReadInt32();
break;
}
}
@@ -9236,7 +9486,7 @@ namespace AxibugProtobuf {
break;
}
case 16: {
- State = input.ReadInt32();
+ Motion = input.ReadInt32();
break;
}
}
@@ -9258,7 +9508,7 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
- get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[41]; }
+ get { return global::AxibugProtobuf.ProtobufAxibugEmuOnlineReflection.Descriptor.MessageTypes[42]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -9276,6 +9526,8 @@ namespace AxibugProtobuf {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Protobuf_Game_Mark_RESP(Protobuf_Game_Mark_RESP other) : this() {
romID_ = other.romID_;
+ isStar_ = other.isStar_;
+ stars_ = other.stars_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -9298,6 +9550,34 @@ namespace AxibugProtobuf {
}
}
+ /// Field number for the "IsStar" field.
+ public const int IsStarFieldNumber = 2;
+ private int isStar_;
+ ///
+ ///当前状态 [0]未收藏[1]已收藏
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int IsStar {
+ get { return isStar_; }
+ set {
+ isStar_ = value;
+ }
+ }
+
+ /// Field number for the "stars" field.
+ public const int StarsFieldNumber = 3;
+ private int stars_;
+ ///
+ ///当前收藏计数
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int Stars {
+ get { return stars_; }
+ set {
+ stars_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Protobuf_Game_Mark_RESP);
@@ -9312,6 +9592,8 @@ namespace AxibugProtobuf {
return true;
}
if (RomID != other.RomID) return false;
+ if (IsStar != other.IsStar) return false;
+ if (Stars != other.Stars) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -9319,6 +9601,8 @@ namespace AxibugProtobuf {
public override int GetHashCode() {
int hash = 1;
if (RomID != 0) hash ^= RomID.GetHashCode();
+ if (IsStar != 0) hash ^= IsStar.GetHashCode();
+ if (Stars != 0) hash ^= Stars.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -9339,6 +9623,14 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
+ if (IsStar != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(IsStar);
+ }
+ if (Stars != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Stars);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -9352,6 +9644,14 @@ namespace AxibugProtobuf {
output.WriteRawTag(8);
output.WriteInt32(RomID);
}
+ if (IsStar != 0) {
+ output.WriteRawTag(16);
+ output.WriteInt32(IsStar);
+ }
+ if (Stars != 0) {
+ output.WriteRawTag(24);
+ output.WriteInt32(Stars);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -9364,6 +9664,12 @@ namespace AxibugProtobuf {
if (RomID != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(RomID);
}
+ if (IsStar != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(IsStar);
+ }
+ if (Stars != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32Size(Stars);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -9378,6 +9684,12 @@ namespace AxibugProtobuf {
if (other.RomID != 0) {
RomID = other.RomID;
}
+ if (other.IsStar != 0) {
+ IsStar = other.IsStar;
+ }
+ if (other.Stars != 0) {
+ Stars = other.Stars;
+ }
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -9396,6 +9708,14 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
+ case 16: {
+ IsStar = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ Stars = input.ReadInt32();
+ break;
+ }
}
}
#endif
@@ -9414,6 +9734,14 @@ namespace AxibugProtobuf {
RomID = input.ReadInt32();
break;
}
+ case 16: {
+ IsStar = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ Stars = input.ReadInt32();
+ break;
+ }
}
}
}
diff --git a/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto b/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto
index ceb6c3d3..b2bdc376 100644
--- a/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto
+++ b/ProtobufCore/proto/protobuf_AxibugEmuOnline.proto
@@ -210,6 +210,13 @@ message Protobuf_Login_RESP
}
+//Token结构,但用于逻辑里配置加密密钥,放置于服务端加密后,发放token
+message Protobuf_Token_Struct
+{
+ int64 UID = 1;
+ int64 TokenGenDate = 2;
+ int64 Seed = 3;
+}
//获取在线用户列表 上行
message Protobuf_UserList
@@ -426,10 +433,12 @@ message Protobuf_Room_Get_Screen_RESP
message Protobuf_Game_Mark
{
int32 RomID = 1;//RomID
- int32 state = 2;//[0]收藏 [1]取消收藏
+ int32 motion = 2;//[0]取消收藏[1]收藏
}
message Protobuf_Game_Mark_RESP
{
int32 RomID = 1;//RomID
+ int32 IsStar = 2;//当前状态 [0]未收藏[1]已收藏
+ int32 stars = 3;//当前收藏计数
}
\ No newline at end of file