三国卡牌客户端基础资源仓库
yyl
2026-03-28 25eb0e50d4e815efb16d1a9953beac6ea1c7cfc3
webgl merge
3 文件已复制
1个文件已删除
1 文件已重命名
58个文件已修改
7个文件已添加
4033 ■■■■■ 已修改文件
Assets/AssetBundleCollectorSetting.asset 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/IniImporter.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/IniImporter.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/SpineSettings.asset 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ClientPackage.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/ExportVersionConfigEx.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/InGameDownTestWindow.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/Tool/WindowTool.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/UI/AssetDuplicateCheck.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/UI/UIAdjustEditor.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/YooAsset/YooAssetBuildTool.cs 356 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/HybridCLRGenerate/AOTGenericReferences.cs 1075 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/HybridCLRGenerate/link.xml 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/Clock.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/DownLoadAndDiscompressTask.cs 246 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/DownloadMgr.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/LocalSave.cs 270 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/PreserveEngineTypes.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Common/PreserveEngineTypes.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Config/AssetSource.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/FirstPackLang.cs 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/HttpRequest/HttpBehaviour.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/HttpRequest/HttpRequest.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Launch.cs 289 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Manager/LocalResManager.cs 458 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Manager/YooAssetInitializer.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/UI/LaunchWins/LaunchExWin.cs 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/Utility/LaunchUtility.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Launch/VersionConfigEx.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/launcherTemplate.gradle 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/mainTemplate.gradle 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/NativeWebSocket/Assets/WebSocket/WebSocket.jslib 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/WebGL.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/WebGL/Clipboard.jslib 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/WebGL/Clipboard.jslib.meta 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Resources/Scenes/Launch.unity 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Additive.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Fill.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Grayscale.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Multiply.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Screen.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Additive.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Multiply.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Screen.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Fill.shader 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Tint.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-TintBlack.shader 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Special-Skeleton-Grayscale.shader 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesPixelLit.shader 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesVertexLit.shader 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ProjectSettings/GraphicsSettings.asset 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ProjectSettings/ProjectSettings.asset 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/AssetBundleCollectorSetting.asset
@@ -103,7 +103,7 @@
        AddressRuleName: AddressByRelativePath
        PackRuleName: PackDirectory
        FilterRuleName: CollectAll
        AssetTags:
        AssetTags: shader
        UserData: 
      - CollectPath: Assets/ResourcesOut/Materials
        CollectorGUID: 676c8b4532d6ca646804bf73ed43dd96
@@ -151,6 +151,19 @@
      AssetTags: 
      ActiveRuleName: EnableGroup
      Collectors: []
    - GroupName: HybridCLR Generated
      GroupDesc:
      AssetTags:
      ActiveRuleName: EnableGroup
      Collectors:
      - CollectPath: Assets/HybridCLRDlls
        CollectorGUID:
        CollectorType: 0
        AddressRuleName: AddressByFileName
        PackRuleName: PackRawFile
        FilterRuleName: CollectAll
        AssetTags:
        UserData:
  - PackageName: UIEffect
    PackageDesc: 
    EnableAddressable: 1
Assets/Editor/AssetBundleBrowser/AssetBundleBuildTab.cs
@@ -15,6 +15,7 @@
using HybridCLR.Editor.HotUpdate;
using HybridCLR.Editor;
using System.Text;
using Cysharp.Threading.Tasks;
namespace UnityEngine.AssetBundles
{
@@ -223,12 +224,12 @@
            }
        }
        private static void SetVersionConfig(string _publisher)
        private static async void SetVersionConfig(string _publisher)
        {
            var versionName = string.Empty;
            var fromVersionConfig = ClientPackage.GetVersionConfig(_publisher, out versionName);
            var versionConfig = VersionConfig.Get();
            var versionConfig = await VersionConfig.GetAsync();
            VersionConfig.Copy(fromVersionConfig, versionConfig);
@@ -1078,7 +1079,10 @@
                var lineStrings = line.Split('\t');
                if (lineStrings[0] == publishers)
                {
                    VersionConfig.Get().Read(line);
                    VersionConfig.GetAsync().ContinueWith(config =>
                    {
                        config.Read(line);
                    }).Forget();
                    break;
                }
            }
Assets/Editor/IniImporter.cs
New file
@@ -0,0 +1,19 @@
using UnityEngine;
using UnityEditor.AssetImporters;
using System.IO;
/// <summary>
/// 让 Unity 将 .ini 文件作为 TextAsset 导入,
/// 使其可以被 YooAsset Collector 收录并通过 LoadAssetAsync<TextAsset> 加载。
/// </summary>
[ScriptedImporter(1, "ini")]
public class IniImporter : ScriptedImporter
{
    public override void OnImportAsset(AssetImportContext ctx)
    {
        var text = File.ReadAllText(ctx.assetPath);
        var asset = new TextAsset(text);
        ctx.AddObjectToAsset("main", asset);
        ctx.SetMainObject(asset);
    }
}
Assets/Editor/IniImporter.cs.meta
copy from Assets/Launch/FirstPackLang.cs.meta copy to Assets/Editor/IniImporter.cs.meta
File was copied from Assets/Launch/FirstPackLang.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2024c0ab267b19244a4f367fbab5523b
guid: f62e2a5c044fb5a4a88dbb5c177d7a50
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Editor/SpineSettings.asset
@@ -25,9 +25,9 @@
  textureSettingsReference: Assets/Spine/Editor/spine-unity/Editor/ImporterPresets/StraightAlphaPreset.preset
  fixPrefabOverrideViaMeshFilter: 0
  removePrefabPreviewMeshes: 0
  blendModeMaterialMultiply: {fileID: 2100000, guid: 053fed1e18e65064ca564f05c4027e1e, type: 2}
  blendModeMaterialScreen: {fileID: 2100000, guid: 1a66c2d7ee7642a459bd3831abeb30af, type: 2}
  blendModeMaterialAdditive: {fileID: 2100000, guid: 517c2df5a5dc5d44a8b3820eca503d13, type: 2}
  blendModeMaterialMultiply: {fileID: 0}
  blendModeMaterialScreen: {fileID: 0}
  blendModeMaterialAdditive: {fileID: 0}
  atlasTxtImportWarning: 1
  textureImporterWarning: 1
  componentMaterialWarning: 1
Assets/Editor/Tool/ClientPackage.cs
@@ -6,6 +6,7 @@
using System.IO;
using System.Text.RegularExpressions;
using System.Text;
using Cysharp.Threading.Tasks;
//using Beebyte.Obfuscator;
@@ -599,8 +600,12 @@
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        PlayerSettings.iOS.buildNumber = VersionConfig.Get().buildIndex.ToString();
        PlayerSettings.iOS.appleDeveloperTeamID = VersionConfig.Get().appleDeveloperTeamID;
        VersionConfig.GetAsync().ContinueWith(config =>
        {
            PlayerSettings.iOS.buildNumber = config.buildIndex.ToString();
            PlayerSettings.iOS.appleDeveloperTeamID = config.appleDeveloperTeamID;
        }).Forget();
#if UNITY_IOS
        if (_replace)
Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs
New file
@@ -0,0 +1,230 @@
using UnityEditor;
using UnityEditor.U2D;
using UnityEngine;
using System.Collections.Generic;
/// <summary>
/// 批量将所有贴图和图集的 WebGL 平台格式改为 ETC2 压缩。
/// 根据原始格式自动判断是否需要 Alpha 通道:
///   - 有 Alpha → ETC2_RGBA8
///   - 无 Alpha → ETC2_RGB4
///
/// 使用菜单:程序/Sprite/WebGL贴图转ETC2
/// </summary>
public class ConvertWebGLTextureToETC2
{
    [MenuItem("程序/Sprite/WebGL贴图转ETC2(全部)")]
    public static void ConvertAll()
    {
        ConvertTextures();
        ConvertSpriteAtlases();
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
    [MenuItem("程序/Sprite/WebGL贴图转ETC2(仅贴图)")]
    public static void ConvertTexturesOnly()
    {
        ConvertTextures();
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
    [MenuItem("程序/Sprite/WebGL贴图转ETC2(仅图集)")]
    public static void ConvertAtlasesOnly()
    {
        ConvertSpriteAtlases();
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
    }
    static void ConvertTextures()
    {
        var guids = AssetDatabase.FindAssets("t:Texture2D", new[] { "Assets/ResourcesOut" });
        int total = guids.Length;
        int converted = 0;
        int skipped = 0;
        for (int i = 0; i < total; i++)
        {
            var assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);
            EditorUtility.DisplayProgressBar("WebGL贴图转ETC2", $"[{i + 1}/{total}] {assetPath}", (float)i / total);
            var importer = AssetImporter.GetAtPath(assetPath) as TextureImporter;
            if (importer == null)
            {
                skipped++;
                continue;
            }
            bool needsAlpha = NeedsAlpha(importer);
            var targetFormat = needsAlpha ? TextureImporterFormat.ETC2_RGBA8 : TextureImporterFormat.ETC2_RGB4;
            var webGLSettings = importer.GetPlatformTextureSettings("WebGL");
            // 已经是目标格式则跳过
            if (webGLSettings.overridden && webGLSettings.format == targetFormat)
            {
                skipped++;
                continue;
            }
            webGLSettings.overridden = true;
            webGLSettings.maxTextureSize = GetMaxTextureSize(importer);
            webGLSettings.textureCompression = TextureImporterCompression.Compressed;
            webGLSettings.format = targetFormat;
            webGLSettings.compressionQuality = 50;
            importer.SetPlatformTextureSettings(webGLSettings);
            importer.SaveAndReimport();
            converted++;
            Debug.Log($"[ETC2] 贴图 {(needsAlpha ? "RGBA8" : "RGB4")}: {assetPath}");
        }
        EditorUtility.ClearProgressBar();
        Debug.Log($"[ETC2] 贴图处理完成:转换 {converted},跳过 {skipped},共 {total}");
        EditorUtility.DisplayDialog("贴图转换完成",
            $"转换 {converted} 个,跳过 {skipped} 个,共 {total} 个贴图。",
            "OK");
    }
    static void ConvertSpriteAtlases()
    {
        var guids = AssetDatabase.FindAssets("t:SpriteAtlas", new[] { "Assets/ResourcesOut" });
        int total = guids.Length;
        int converted = 0;
        int skipped = 0;
        for (int i = 0; i < total; i++)
        {
            var assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);
            EditorUtility.DisplayProgressBar("WebGL图集转ETC2", $"[{i + 1}/{total}] {assetPath}", (float)i / total);
            try
            {
                var importer = SpriteAtlasImporter.GetAtPath(assetPath) as SpriteAtlasImporter;
                if (importer == null)
                {
                    skipped++;
                    continue;
                }
                var webGLSettings = importer.GetPlatformSettings("WebGL");
                // 判断 Alpha:检查其他平台的设置来推断
                bool needsAlpha = AtlasNeedsAlpha(importer);
                var targetFormat = needsAlpha ? TextureImporterFormat.ETC2_RGBA8 : TextureImporterFormat.ETC2_RGB4;
                if (webGLSettings.overridden && webGLSettings.format == targetFormat)
                {
                    skipped++;
                    continue;
                }
                webGLSettings.overridden = true;
                webGLSettings.maxTextureSize = 2048;
                webGLSettings.textureCompression = TextureImporterCompression.Compressed;
                webGLSettings.format = targetFormat;
                webGLSettings.compressionQuality = 50;
                importer.SetPlatformSettings(webGLSettings);
                importer.SaveAndReimport();
                converted++;
                Debug.Log($"[ETC2] 图集 {(needsAlpha ? "RGBA8" : "RGB4")}: {assetPath}");
            }
            catch (System.Exception ex)
            {
                Debug.LogError($"[ETC2] 图集处理失败 {assetPath}: {ex.Message}");
            }
        }
        EditorUtility.ClearProgressBar();
        Debug.Log($"[ETC2] 图集处理完成:转换 {converted},跳过 {skipped},共 {total}");
        EditorUtility.DisplayDialog("图集转换完成",
            $"转换 {converted} 个,跳过 {skipped} 个,共 {total} 个图集。",
            "OK");
    }
    /// <summary>
    /// 判断贴图是否需要 Alpha 通道
    /// </summary>
    static bool NeedsAlpha(TextureImporter importer)
    {
        // 1. 检查贴图本身是否含 Alpha
        if (importer.DoesSourceTextureHaveAlpha())
            return true;
        // 2. 检查已有平台设置的格式来推断
        foreach (var platform in new[] { "Android", "iPhone", "Standalone" })
        {
            var settings = importer.GetPlatformTextureSettings(platform);
            if (settings.overridden && IsAlphaFormat(settings.format))
                return true;
        }
        // 3. 检查 alphaSource 设置
        if (importer.alphaSource != TextureImporterAlphaSource.None)
            return importer.DoesSourceTextureHaveAlpha();
        return false;
    }
    /// <summary>
    /// 判断图集是否需要 Alpha(通过检查其他平台的格式推断)
    /// </summary>
    static bool AtlasNeedsAlpha(SpriteAtlasImporter importer)
    {
        foreach (var platform in new[] { "Android", "iPhone", "Standalone" })
        {
            var settings = importer.GetPlatformSettings(platform);
            if (settings.overridden && IsAlphaFormat(settings.format))
                return true;
        }
        // 图集默认认为需要 Alpha(UI 图集大多有透明)
        return true;
    }
    /// <summary>
    /// 判断格式是否包含 Alpha 通道
    /// </summary>
    static bool IsAlphaFormat(TextureImporterFormat format)
    {
        switch (format)
        {
            case TextureImporterFormat.RGBA32:
            case TextureImporterFormat.RGBA16:
            case TextureImporterFormat.ARGB32:
            case TextureImporterFormat.ARGB16:
            case TextureImporterFormat.DXT5:
            case TextureImporterFormat.ETC2_RGBA8:
            case TextureImporterFormat.ASTC_4x4:
            case TextureImporterFormat.ASTC_5x5:
            case TextureImporterFormat.ASTC_6x6:
            case TextureImporterFormat.ASTC_8x8:
            case TextureImporterFormat.ASTC_10x10:
            case TextureImporterFormat.ASTC_12x12:
            case TextureImporterFormat.PVRTC_RGBA2:
            case TextureImporterFormat.PVRTC_RGBA4:
                return true;
            default:
                return false;
        }
    }
    /// <summary>
    /// 获取已有的最大贴图尺寸设置
    /// </summary>
    static int GetMaxTextureSize(TextureImporter importer)
    {
        foreach (var platform in new[] { "Android", "iPhone", "Standalone" })
        {
            var settings = importer.GetPlatformTextureSettings(platform);
            if (settings.overridden)
                return settings.maxTextureSize;
        }
        return importer.maxTextureSize;
    }
}
Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs.meta
copy from Assets/Launch/FirstPackLang.cs.meta copy to Assets/Editor/Tool/ConvertWebGLTextureToETC2.cs.meta
File was copied from Assets/Launch/FirstPackLang.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2024c0ab267b19244a4f367fbab5523b
guid: 692c5aa4ed3ecc04b8ae0ba3f4036893
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Editor/Tool/ExportVersionConfigEx.cs
@@ -1,20 +1,21 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
using UnityEngine.UI;
using System.Reflection;
public class ExportVersionConfigEx : EditorWindow {
    [MenuItem("程序/同步VersionConfigEx.txt", false)]
    private static void Export()
public class ExportVersionConfigEx : EditorWindow {
    [MenuItem("程序/同步VersionConfigEx.txt", false)]
    private static async void Export()
    {
        //生成VersionConfigEx.txt 提供给AOT启动时使用
        var json = JsonUtility.ToJson(VersionConfig.Get());
        await VersionConfig.GetAsync();
        var json = JsonUtility.ToJson(VersionConfig.config);
        string versionConfigExFile = Application.dataPath + "/Resources/VersionConfigEx.txt";
        if (File.Exists(versionConfigExFile))
        {
@@ -25,7 +26,7 @@
        AssetDatabase.Refresh();
        Debug.Log("同步VersionConfigEx.txt成功");
    }
}
    }
}
Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs
New file
@@ -0,0 +1,73 @@
using UnityEditor;
using UnityEditor.U2D;
using UnityEngine;
/// <summary>
/// 批量为所有 SpriteAtlas V2 文件添加 WebGL 平台设置(保留 Alpha 通道)。
///
/// 问题原因:项目所有 .spriteatlasv2 文件只配置了 Standalone/Android/iPhone 平台,
/// WebGL 没有平台覆盖,Unity 默认使用不含 Alpha 的压缩格式,导致运行时 Sprite 变为不透明。
///
/// 使用菜单:程序/Sprite/修复WebGL图集Alpha透明
/// </summary>
public class FixSpriteAtlasWebGLAlpha
{
    [MenuItem("程序/Sprite/修复WebGL图集Alpha透明")]
    public static void FixAllAtlases()
    {
        var guids = AssetDatabase.FindAssets("t:SpriteAtlas", new[] { "Assets/ResourcesOut" });
        int total = guids.Length;
        int fixed_count = 0;
        for (int i = 0; i < total; i++)
        {
            var assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);
            EditorUtility.DisplayProgressBar("修复WebGL图集Alpha", $"处理: {assetPath}", (float)i / total);
            try
            {
                var importer = SpriteAtlasImporter.GetAtPath(assetPath) as SpriteAtlasImporter;
                if (importer == null)
                {
                    Debug.LogWarning($"[FixAtlasAlpha] 无法获取 SpriteAtlasImporter: {assetPath}");
                    continue;
                }
                var webGLSettings = importer.GetPlatformSettings("WebGL");
                // 已有 WebGL 覆盖且已是目标格式则跳过
                if (webGLSettings.overridden && webGLSettings.format == TextureImporterFormat.ASTC_8x8)
                {
                    continue;
                }
                // ASTC 8x8 — 含 Alpha 通道,与 Android/iPhone 保持一致
                webGLSettings.overridden = true;
                webGLSettings.maxTextureSize = 2048;
                webGLSettings.textureCompression = TextureImporterCompression.Compressed;
                webGLSettings.format = TextureImporterFormat.ASTC_8x8;
                webGLSettings.compressionQuality = 50;
                webGLSettings.allowsAlphaSplitting = false;
                importer.SetPlatformSettings(webGLSettings);
                importer.SaveAndReimport();
                fixed_count++;
                Debug.Log($"[FixAtlasAlpha] 已设置 WebGL=ASTC_8x8: {assetPath}");
            }
            catch (System.Exception ex)
            {
                Debug.LogError($"[FixAtlasAlpha] 处理失败 {assetPath}: {ex.Message}");
            }
        }
        EditorUtility.ClearProgressBar();
        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        Debug.Log($"[FixAtlasAlpha] 完成!共修复 {fixed_count}/{total} 个图集。重新构建 AssetBundle 后生效。");
        EditorUtility.DisplayDialog("修复完成",
            $"共修复 {fixed_count}/{total} 个图集(WebGL 平台设置为 ASTC 8x8,含 Alpha)。\n\n请重新构建 WebGL AssetBundle 后测试。",
            "OK");
    }
}
Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs.meta
copy from Assets/Launch/FirstPackLang.cs.meta copy to Assets/Editor/Tool/FixSpriteAtlasWebGLAlpha.cs.meta
File was copied from Assets/Launch/FirstPackLang.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2024c0ab267b19244a4f367fbab5523b
guid: c61296c694ca5354db00ce0372f79aa4
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Editor/Tool/InGameDownTestWindow.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using Cysharp.Threading.Tasks;
public class InGameDownTestWindow : EditorWindow
{
@@ -22,14 +23,19 @@
        {
            InGameDownTestUtility.enable = !InGameDownTestUtility.enable;
            if (InGameDownTestUtility.enable)
            VersionConfig.GetAsync().ContinueWith(config =>
            {
                VersionConfig.Get().assetAccess = InstalledAsset.NullAsset;
            }
            else
            {
                VersionConfig.Get().assetAccess = InstalledAsset.IngoreDownLoad;
            }
                if (InGameDownTestUtility.enable)
                {
                    VersionConfig.config.assetAccess = InstalledAsset.NullAsset;
                }
                else
                {
                    VersionConfig.config.assetAccess = InstalledAsset.IngoreDownLoad;
                }
            }).Forget();
        }
        EditorGUILayout.Space();
Assets/Editor/Tool/WindowTool.cs
@@ -60,7 +60,7 @@
        if (GUILayout.Button("打开"))
        {
            // 打开窗口逻辑
            UIManager.Instance.OpenWindow(windowName).Forget();
            UIManager.Instance.OpenWindowAsync(windowName).Forget();
        }
        if (GUILayout.Button("关闭"))
        {
@@ -74,7 +74,7 @@
                UIManager.Instance.CloseWindow(win);
            }
            UIManager.Instance.OpenWindow("BattleWin").Forget();
            UIManager.Instance.OpenWindowAsync("BattleWin").Forget();
        }
        EditorGUILayout.EndHorizontal();
Assets/Editor/UI/AssetDuplicateCheck.cs
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -6,6 +6,7 @@
using System.Threading.Tasks;
using UnityEditor;
using UnityEngine;
using Cysharp.Threading.Tasks;
namespace ProjSG.Editor.UI
{
Assets/Editor/UI/UIAdjustEditor.cs
@@ -28,7 +28,7 @@
        {
            if (Application.isPlaying && !string.IsNullOrEmpty(uiName))
            {
                UIManager.Instance.OpenWindow(uiName).Forget();
                UIManager.Instance.OpenWindowAsync(uiName).Forget();
            }
            else
            {
Assets/Editor/YooAsset/YooAssetBuildTool.cs
@@ -9,6 +9,7 @@
using UnityEngine;
using YooAsset;
using YooAsset.Editor;
using HybridCLR.Editor.Commands;
using Debug = UnityEngine.Debug;
public static class YooAssetBuildTool
@@ -16,14 +17,52 @@
    /// <summary>
    /// 所有需要打包的 Package 名称(与 AssetBundleCollectorSetting 一致)
    /// </summary>
    private static readonly string[] ALL_PACKAGES = { "Prefab", "UI", "UIEffect", "Battle", "Audio", "Video", "Builtin" };
    private static readonly string[] ALL_PACKAGES = { "Prefab", "UI", "UIEffect", "Battle", "Audio", "Video", "Builtin", "Dll" };
    /// <summary>
    /// 版本号格式:日期+时间
    /// HybridCLR .bytes 文件输出目录(相对 Assets)
    /// </summary>
    private const string HYBRIDCLR_DLLS_ASSETS_PATH = "Assets/HybridCLRDlls";
    /// <summary>
    /// AOT 元数据 DLL 列表(与 AOTGenericReferences.PatchedAOTAssemblyList 保持一致)
    /// </summary>
    private static readonly string[] AOT_DLL_NAMES =
    {
        "DOTween.dll",
        "Launch.dll",
        "System.Core.dll",
        "UniTask.dll",
        "UnityEngine.AndroidJNIModule.dll",
        "UnityEngine.AssetBundleModule.dll",
        "UnityEngine.CoreModule.dll",
        "UnityEngine.JSONSerializeModule.dll",
        "UnityEngine.UI.dll",
        "mscorlib.dll",
        "spine-csharp.dll",
    };
    /// <summary>
    /// 版本号:日期+时间。增量打包时可复用同一版本号。
    /// </summary>
    private static string GenerateVersion()
    {
        return DateTime.Now.ToString("yyyy-MM-dd-HHmm");
    }
    /// <summary>
    /// 获取上一次打包版本号(如果存在)。增量打包时使用同一版本号可加速。
    /// </summary>
    private static string GetLastBuildVersion(string packageName)
    {
        string outputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
        string platformDir = System.IO.Path.Combine(outputRoot, EditorUserBuildSettings.activeBuildTarget.ToString(), packageName);
        if (!System.IO.Directory.Exists(platformDir)) return null;
        var dirs = System.IO.Directory.GetDirectories(platformDir);
        if (dirs.Length == 0) return null;
        // 取最新的版本目录
        System.Array.Sort(dirs);
        return System.IO.Path.GetFileName(dirs[dirs.Length - 1]);
    }
    // ====================================================================
@@ -46,11 +85,87 @@
    }
    [MenuItem("YooAsset工具/切换AB模式 (当前: 关闭)", true)]
    [MenuItem("YooAsset工具/切换AB模式 (当前: 关闭)", true)]
    private static bool ToggleABModeValidate()
    {
        bool isOn = EditorPrefs.GetBool("YooAsset_UseAssetBundle", false);
        Menu.SetChecked("YooAsset工具/切换AB模式 (当前: 关闭)", isOn);
        return true;
    }
    [MenuItem("YooAsset工具/模拟 WebGL 模式 (当前: 关闭)", false, 110)]
    private static void ToggleSimulateWebGL()
    {
        bool current = EditorPrefs.GetBool("YooAsset_SimulateWebGL", false);
        bool next = !current;
        EditorPrefs.SetBool("YooAsset_SimulateWebGL", next);
        if (next && !EditorPrefs.GetBool("YooAsset_UseAssetBundle", false))
        {
            // 模拟 WebGL 必须开启 AB 模式
            EditorPrefs.SetBool("YooAsset_UseAssetBundle", true);
            Debug.Log("[YooAssetBuildTool] 已自动开启 AB 模式(WebGL 模拟必需)");
        }
        Debug.Log($"[YooAssetBuildTool] 模拟 WebGL 模式: {(next ? "开启" : "关闭")}");
        EditorUtility.DisplayDialog("模拟 WebGL 模式",
            next
                ? "已开启。Editor 下将根据配置自动选择:\n· 配置本地 CDN 路径 -> HostPlayMode\n· 未配置本地 CDN 路径 -> OfflinePlayMode\n\n前提:\n· 已开启 AB 模式(已自动开启)\n· 资源已打包到 StreamingAssets\n· Dll 包的 .bytes 文件已存在"
                : "已关闭。将恢复 Editor 默认加载模式。",
            "确定");
    }
    [MenuItem("YooAsset工具/模拟 WebGL 模式 (当前: 关闭)", true)]
    private static bool ToggleSimulateWebGLValidate()
    {
        bool isOn = EditorPrefs.GetBool("YooAsset_SimulateWebGL", false);
        Menu.SetChecked("YooAsset工具/模拟 WebGL 模式 (当前: 关闭)", isOn);
        return true;
    }
    /// <summary>
    /// 设置本地硬盘目录作为 WebGL 模拟 CDN 根路径。
    /// 留空时 WebPlayMode 仅使用 StreamingAssets(已足够覆盖全部打包资源);
    /// 只有需要测试「远程下载」分支时才需要配置此项。
    /// 路径示例: E:/ProjSG/Bundles/StandaloneWindows64  (YooAsset 默认输出根目录下的平台子目录)
    /// </summary>
    [MenuItem("YooAsset工具/设置模拟 CDN 本地路径", false, 120)]
    private static void SetSimLocalCdnPath()
    {
        string current = EditorPrefs.GetString("YooAsset_SimLocalCdnPath", "");
        // 默认打开 Bundles/{Platform} 输出目录
        if (string.IsNullOrEmpty(current))
        {
            current = System.IO.Path.Combine(
                AssetBundleBuilderHelper.GetDefaultBuildOutputRoot(),
                EditorUserBuildSettings.activeBuildTarget.ToString());
        }
        string selected = EditorUtility.OpenFolderPanel(
            "选择本地 CDN 根目录(模拟 WebGL 远程加载)",
            System.IO.Directory.Exists(current) ? current : AssetBundleBuilderHelper.GetDefaultBuildOutputRoot(),
            "");
        if (string.IsNullOrEmpty(selected))
            return;
        EditorPrefs.SetString("YooAsset_SimLocalCdnPath", selected);
        // 转换为 file:/// URI 预览给用户
        string uri = new System.Uri(selected).AbsoluteUri;
        Debug.Log($"[YooAssetBuildTool] 模拟 CDN 路径已设置:\n  磁盘路径: {selected}\n  file URI: {uri}");
        EditorUtility.DisplayDialog(
            "模拟 CDN 路径",
            $"已设置本地 CDN 路径:\n{selected}\n\n转换后的 file URI:\n{uri}\n\n" +
            "注意:路径下需包含对应包的 Manifest 文件和 Bundle 文件。\n" +
            "如所有资源已打包进 StreamingAssets,可不配置此项。",
            "确定");
    }
    [MenuItem("YooAsset工具/清除模拟 CDN 本地路径", false, 121)]
    private static void ClearSimLocalCdnPath()
    {
        EditorPrefs.SetString("YooAsset_SimLocalCdnPath", "");
        Debug.Log("[YooAssetBuildTool] 模拟 CDN 路径已清除,WebPlayMode 将仅从 StreamingAssets 加载。");
    }
    // ====================================================================
@@ -60,7 +175,20 @@
    [MenuItem("YooAsset工具/一键打包所有Package (BuiltinBuildPipeline)", false, 200)]
    private static void BuildAllPackages()
    {
        BuildAllPackagesInternal(incremental: false);
    }
    [MenuItem("YooAsset工具/增量打包所有Package (跳过HybridCLR)", false, 201)]
    private static void BuildAllPackagesIncremental()
    {
        BuildAllPackagesInternal(incremental: true);
    }
    private static void BuildAllPackagesInternal(bool incremental)
    {
        string modeDesc = incremental ? "增量打包(跳过HybridCLR,复用版本号)" : "全量打包";
        if (!EditorUtility.DisplayDialog("确认打包",
            $"模式: {modeDesc}\n" +
            $"将使用 BuiltinBuildPipeline 打包以下 {ALL_PACKAGES.Length} 个 Package:\n" +
            $"{string.Join(", ", ALL_PACKAGES)}\n\n" +
            $"平台: {EditorUserBuildSettings.activeBuildTarget}\n" +
@@ -71,12 +199,36 @@
            return;
        }
        string version = GenerateVersion();
        // ---- 打包前:HybridCLR DLL(增量模式跳过)----
        if (!incremental)
        {
            if (!CopyHybridCLRDlls())
            {
                EditorUtility.DisplayDialog("拷贝 DLL 失败",
                    "HybridCLR DLL 拷贝失败,请先执行 HybridCLR/Generate/All 生成 DLL 文件。\n详情请查看 Console 日志。",
                    "确定");
                return;
            }
        }
        // 增量模式复用上次版本号,避免 YooAsset 认为全新版本
        string version;
        if (incremental)
        {
            string lastVer = GetLastBuildVersion(ALL_PACKAGES[0]);
            version = !string.IsNullOrEmpty(lastVer) ? lastVer : GenerateVersion();
            Debug.Log($"[YooAssetBuildTool] 增量模式,复用版本号: {version}");
        }
        else
        {
            version = GenerateVersion();
        }
        int successCount = 0;
        int failCount = 0;
        var sw = Stopwatch.StartNew();
        Debug.Log($"[YooAssetBuildTool] ========== 开始打包 ==========");
        Debug.Log($"[YooAssetBuildTool] ========== 开始{(incremental ? "增量" : "全量")}打包 ==========");
        Debug.Log($"[YooAssetBuildTool] 版本号: {version}");
        Debug.Log($"[YooAssetBuildTool] 平台: {EditorUserBuildSettings.activeBuildTarget}");
@@ -141,6 +293,39 @@
     [MenuItem("YooAsset工具/打包单个Package/Builtin", false, 306)]
    private static void BuildBuiltin() => BuildSingleWithDialog("Builtin");
    [MenuItem("YooAsset工具/打包单个Package/Dll (HybridCLR)", false, 307)]
    private static void BuildDll()
    {
        string version = GenerateVersion();
        if (!EditorUtility.DisplayDialog("确认打包",
            $"打包 Package: Dll (HybridCLR)\n版本: {version}\n平台: {EditorUserBuildSettings.activeBuildTarget}\n\n将先拷贝 HybridCLR 生成的 DLL 到 {HYBRIDCLR_DLLS_ASSETS_PATH}",
            "开始", "取消"))
        {
            return;
        }
        EditorUtility.DisplayProgressBar("YooAsset 打包中...", "正在拷贝 HybridCLR DLL...", 0.2f);
        if (!CopyHybridCLRDlls())
        {
            EditorUtility.ClearProgressBar();
            EditorUtility.DisplayDialog("拷贝 DLL 失败",
                "HybridCLR DLL 拷贝失败,请先执行 HybridCLR/Generate/All 生成 DLL 文件。\n详情请查看 Console 日志。",
                "确定");
            return;
        }
        EditorUtility.DisplayProgressBar("YooAsset 打包中...", "正在打包 Dll...", 0.6f);
        bool ok = BuildSinglePackage("Dll", version);
        EditorUtility.ClearProgressBar();
        if (ok)
            EditorUtility.DisplayDialog("打包成功", "Package 'Dll' 打包完成!", "确定");
        else
            EditorUtility.DisplayDialog("打包失败", "Package 'Dll' 打包失败,请查看 Console 日志。", "确定");
        AssetDatabase.Refresh();
    }
    private static void BuildSingleWithDialog(string packageName)
    {
        string version = GenerateVersion();
@@ -167,6 +352,169 @@
        AssetDatabase.Refresh();
    }
    // ====================================================================
    // HybridCLR DLL 拷贝
    // ====================================================================
    /// <summary>
    /// 将 HybridCLR 生成的 DLL 拷贝到 Assets/HybridCLRDlls,并添加 .bytes 后缀以供 YooAsset 收集。
    /// 来源1: HybridCLRData/HotUpdateDlls/{platform}/Main.dll  → Assets/HybridCLRDlls/Main.dll.bytes
    /// 来源2: HybridCLRData/AssembliesPostIl2CppStrip/{platform}/{aot}.dll → Assets/HybridCLRDlls/{aot}.dll.bytes
    /// </summary>
    private static bool CopyHybridCLRDlls()
    {
        // --- Step 1: 先运行 HybridCLR Generate All,重新编译热更 DLL 并裁剪 AOT DLL ---
        Debug.Log("[YooAssetBuildTool] 正在执行 HybridCLR GenerateAll...");
        EditorUtility.DisplayProgressBar("HybridCLR GenerateAll", "编译热更 DLL 并裁剪 AOT...", 0f);
        try
        {
            PrebuildCommand.GenerateAll();
            Debug.Log("[YooAssetBuildTool] HybridCLR GenerateAll 完成");
        }
        catch (Exception ex)
        {
            EditorUtility.ClearProgressBar();
            Debug.LogError($"[YooAssetBuildTool] HybridCLR GenerateAll 失败: {ex.Message}");
            return false;
        }
        EditorUtility.ClearProgressBar();
        // --- Step 2: 拷贝生成的 DLL 到 Assets/HybridCLRDlls ---
        string projectRoot = System.IO.Path.GetFullPath(
            System.IO.Path.Combine(Application.dataPath, ".."));
        string platform = GetHybridCLRPlatformFolder();
        string hotUpdateSrc = System.IO.Path.Combine(
            projectRoot, "HybridCLRData", "HotUpdateDlls", platform);
        string aotSrc = System.IO.Path.Combine(
            projectRoot, "HybridCLRData", "AssembliesPostIl2CppStrip", platform);
        string destDir = System.IO.Path.Combine(Application.dataPath, "HybridCLRDlls");
        if (!System.IO.Directory.Exists(hotUpdateSrc))
        {
            Debug.LogError($"[YooAssetBuildTool] HotUpdateDlls 目录不存在: {hotUpdateSrc}\n请先执行 HybridCLR/Generate/All");
            return false;
        }
        if (!System.IO.Directory.Exists(aotSrc))
        {
            Debug.LogError($"[YooAssetBuildTool] AssembliesPostIl2CppStrip 目录不存在: {aotSrc}\n请先执行 HybridCLR/Generate/All");
            return false;
        }
        if (!System.IO.Directory.Exists(destDir))
            System.IO.Directory.CreateDirectory(destDir);
        int copied = 0;
        int failed = 0;
        // --- 热更新主程序集 Main.dll ---
        string mainSrc = System.IO.Path.Combine(hotUpdateSrc, "Main.dll");
        string mainDst = System.IO.Path.Combine(destDir, "Main.dll.bytes");
        if (System.IO.File.Exists(mainSrc))
        {
            System.IO.File.Copy(mainSrc, mainDst, overwrite: true);
            Debug.Log($"[YooAssetBuildTool] ✓ 拷贝热更 DLL: Main.dll → Main.dll.bytes");
            copied++;
        }
        else
        {
            Debug.LogError($"[YooAssetBuildTool] ✗ Main.dll 不存在: {mainSrc}");
            failed++;
        }
        // --- AOT 元数据 DLL ---
        foreach (string dllName in AOT_DLL_NAMES)
        {
            string src = System.IO.Path.Combine(aotSrc, dllName);
            string dst = System.IO.Path.Combine(destDir, dllName + ".bytes");
            if (System.IO.File.Exists(src))
            {
                System.IO.File.Copy(src, dst, overwrite: true);
                Debug.Log($"[YooAssetBuildTool] ✓ 拷贝 AOT DLL: {dllName} → {dllName}.bytes");
                copied++;
            }
            else
            {
                Debug.LogWarning($"[YooAssetBuildTool] ✗ AOT DLL 不存在: {src}");
                failed++;
            }
        }
        Debug.Log($"[YooAssetBuildTool] DLL 拷贝完成: 成功 {copied} 个, 失败/缺失 {failed} 个 → {destDir}");
        AssetDatabase.Refresh();
        // 确保 Assets/HybridCLRDlls 已注册到 YooAsset Dll Package Collector
        EnsureDllPackageCollector();
        return failed == 0;
    }
    /// <summary>
    /// 确保 Assets/HybridCLRDlls 目录已作为 Collector 注册到 YooAsset "Dll" Package 中。
    /// 如果 Package / Group / Collector 已存在则跳过,保持幂等。
    /// </summary>
    private static void EnsureDllPackageCollector()
    {
        const string packageName = "Dll";
        const string groupName   = "HybridCLR Generated";
        var setting = AssetBundleCollectorSettingData.Setting;
        // 找或创建 Dll Package
        var dllPackage = setting.Packages.Find(p => p.PackageName == packageName);
        if (dllPackage == null)
        {
            dllPackage = AssetBundleCollectorSettingData.CreatePackage(packageName);
            Debug.Log($"[YooAssetBuildTool] 已创建 YooAsset Package: {packageName}");
        }
        // 找或创建 HybridCLR Generated 组
        var group = dllPackage.Groups.Find(g => g.GroupName == groupName);
        if (group == null)
        {
            group = AssetBundleCollectorSettingData.CreateGroup(dllPackage, groupName);
            Debug.Log($"[YooAssetBuildTool] 已创建 Group: {groupName}");
        }
        // 检查是否已有 Assets/HybridCLRDlls 的 Collector
        bool exists = group.Collectors.Exists(c => c.CollectPath == HYBRIDCLR_DLLS_ASSETS_PATH);
        if (exists)
        {
            Debug.Log($"[YooAssetBuildTool] Dll Package Collector 已存在,跳过注册: {HYBRIDCLR_DLLS_ASSETS_PATH}");
            return;
        }
        var collector = new AssetBundleCollector
        {
            CollectPath      = HYBRIDCLR_DLLS_ASSETS_PATH,
            CollectorType    = ECollectorType.MainAssetCollector,
            AddressRuleName  = nameof(AddressByFileName),
            PackRuleName     = nameof(PackRawFile),
            FilterRuleName   = nameof(CollectAll),
        };
        AssetBundleCollectorSettingData.CreateCollector(group, collector);
        AssetBundleCollectorSettingData.SaveFile();
        Debug.Log($"[YooAssetBuildTool] ✓ 已注册 Dll Package Collector: {HYBRIDCLR_DLLS_ASSETS_PATH}");
    }
    /// <summary>
    /// 根据当前激活的构建目标返回 HybridCLR 输出文件夹名
    /// </summary>
    private static string GetHybridCLRPlatformFolder()
    {
        switch (EditorUserBuildSettings.activeBuildTarget)
        {
            case BuildTarget.Android:              return "Android";
            case BuildTarget.iOS:                  return "iOS";
            case BuildTarget.StandaloneWindows:
            case BuildTarget.StandaloneWindows64:  return "StandaloneWindows64";
            case BuildTarget.WebGL:                return "WebGL";
            default:
                Debug.LogWarning($"[YooAssetBuildTool] 未识别的平台 {EditorUserBuildSettings.activeBuildTarget},默认使用 Android");
                return "Android";
        }
    }
    /// <summary>
    /// 打包单个 Package
    /// </summary>
Assets/HybridCLRGenerate/AOTGenericReferences.cs
@@ -12,8 +12,8 @@
        "UnityEngine.AndroidJNIModule.dll",
        "UnityEngine.AssetBundleModule.dll",
        "UnityEngine.CoreModule.dll",
        "UnityEngine.JSONSerializeModule.dll",
        "UnityEngine.UI.dll",
        "YooAsset.dll",
        "mscorlib.dll",
        "spine-csharp.dll",
    };
@@ -23,154 +23,202 @@
    // }} 
    // {{ AOT generic types
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AdaptiveLayout.<Co_DelayShow>d__22>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_DoLoadAsset>d__23>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_DoLoadAsset>d__24>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_LoadAssetBundle>d__21,object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<AssetBundleUtility.<Initialize>d__16>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ChatCenter.<Co_CheckAfterCollect>d__59>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ChatSendComponent.<Co_ClientBan>d__32>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ConfigManager.<InitConfigs>d__6>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<CyclicScroll.<Co_StepByStepAppear>d__68>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<DownloadTask.<Co_DownloadFile>d__40>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<DownloadTask.<Co_GetHeader>d__39>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EffectPlayer.<PlayAsync>d__34>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EquipExchangeCell.<RefreshEffect>d__31>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EquipOnMainUI.<FlyToEquipCell>d__12>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<EquipTipWin.<RefreshEffect>d__21>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<GameObjectPoolManager.<CheckPoolUsage>d__13>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroCallResultCell.<DisplayAsync>d__7>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroCallResultWin.<MoveToNextState>d__35>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroGiftWashWin.<SendPack>d__19>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroPosWin.<RunTaskAsync>d__46>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<HeroScenePosCell.<DelayShow>d__13>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<LayoutElementSizeClamp.<UpdateRect>d__9>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<Main.<InitManagers>d__4>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<ServerTipDetails.<Co_StageLoadFinish>d__4>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<SmallTipWin.<UpdatePos>d__10>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<StageManager.<OnLoading>d__9>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<SysNotifyMgr.<Co_Instance>d__11>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<SystemSetting.<Co_WaitFewMinute>d__35>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<UIBase.<ApplyClickEmptySpaceClose>d__34>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<UniTaskExtension.<DelayFrameInternal>d__2>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<UniTaskExtension.<DelayTimeInternal>d__8>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AdaptiveLayout.<Co_DelayShow>d__22>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_DoLoadAsset>d__23>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_DoLoadAsset>d__24>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_LoadAssetBundle>d__21,object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<AssetBundleUtility.<Initialize>d__16>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ChatCenter.<Co_CheckAfterCollect>d__59>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ChatSendComponent.<Co_ClientBan>d__32>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ConfigManager.<InitConfigs>d__6>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<CyclicScroll.<Co_StepByStepAppear>d__68>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<DownloadTask.<Co_DownloadFile>d__40>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<DownloadTask.<Co_GetHeader>d__39>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EffectPlayer.<PlayAsync>d__34>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EquipExchangeCell.<RefreshEffect>d__31>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EquipOnMainUI.<FlyToEquipCell>d__12>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<EquipTipWin.<RefreshEffect>d__21>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<GameObjectPoolManager.<CheckPoolUsage>d__13>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroCallResultCell.<DisplayAsync>d__7>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroCallResultWin.<MoveToNextState>d__35>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroGiftWashWin.<SendPack>d__19>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroPosWin.<RunTaskAsync>d__46>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<HeroScenePosCell.<DelayShow>d__13>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<LayoutElementSizeClamp.<UpdateRect>d__9>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<Main.<InitManagers>d__4>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<ServerTipDetails.<Co_StageLoadFinish>d__4>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<SmallTipWin.<UpdatePos>d__10>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<StageManager.<OnLoading>d__9>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<SysNotifyMgr.<Co_Instance>d__11>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<SystemSetting.<Co_WaitFewMinute>d__35>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<UIBase.<ApplyClickEmptySpaceClose>d__34>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<UniTaskExtension.<DelayFrameInternal>d__2>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<UniTaskExtension.<DelayTimeInternal>d__8>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,byte>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,int>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object,object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask.<>c<object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,byte>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,int>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object,object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTask<object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<int>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid.<>c<StageManager.<ToGameScene>d__8>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid.<>c<StageManager.<ToLoginScene>d__6>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid<StageManager.<ToGameScene>d__8>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid<StageManager.<ToLoginScene>d__6>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid.<>c<object>
    // Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoid<object>
    // Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<byte>
    // Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<int>
    // Cysharp.Threading.Tasks.CompilerServices.IStateMachineRunnerPromise<object>
    // Cysharp.Threading.Tasks.ITaskPoolNode<object>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,byte>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,int>>
    // Cysharp.Threading.Tasks.IUniTaskSource<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.IUniTaskSource<byte>
    // Cysharp.Threading.Tasks.IUniTaskSource<int>
    // Cysharp.Threading.Tasks.IUniTaskSource<object>
    // Cysharp.Threading.Tasks.Internal.StatePool<Cysharp.Threading.Tasks.UniTask.Awaiter<object>>
    // Cysharp.Threading.Tasks.Internal.StateTuple<Cysharp.Threading.Tasks.UniTask.Awaiter<object>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,byte>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,int>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<byte>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<int>
    // Cysharp.Threading.Tasks.UniTask.Awaiter<object>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,byte>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,int>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<byte>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<int>
    // Cysharp.Threading.Tasks.UniTask.IsCanceledSource<object>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,byte>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,int>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<byte>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<int>
    // Cysharp.Threading.Tasks.UniTask.MemoizeSource<object>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,byte>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,int>>
    // Cysharp.Threading.Tasks.UniTask<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.UniTask<byte>
    // Cysharp.Threading.Tasks.UniTask<int>
    // Cysharp.Threading.Tasks.UniTask<object>
    // Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<Cysharp.Threading.Tasks.AsyncUnit>
    // Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<System.ValueTuple<byte,object>>
    // Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<byte>
    // Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<int>
    // Cysharp.Threading.Tasks.UniTaskCompletionSourceCore<object>
    // Cysharp.Threading.Tasks.UniTaskExtensions.<>c__19<object>
    // Cysharp.Threading.Tasks.UniTaskExtensions.<ContinueWith>d__22<byte>
    // Cysharp.Threading.Tasks.UniTaskExtensions.<ContinueWith>d__22<object>
    // Cysharp.Threading.Tasks.UniTaskExtensions.<ContinueWith>d__24<object,object>
    // DG.Tweening.Core.DOGetter<float>
    // DG.Tweening.Core.DOSetter<float>
    // DG.Tweening.TweenCallback<float>
    // SingletonMonobehaviour<object>
    // Spine.ExposedList.Enumerator<object>
    // Spine.ExposedList<object>
    // System.Action<HourMinute>
    // System.Action<InGameDownLoad.Reward>
    // System.Action<BattleClickHeroData>
    // System.Action<Cysharp.Threading.Tasks.UniTask>
    // System.Action<Int2>
    // System.Action<Item>
    // System.Action<Jace.Execution.ParameterInfo>
    // System.Action<Jace.Tokenizer.Token>
    // System.Action<LanguageVerify.MatchString>
    // System.Action<OperationTime>
    // System.Action<RoleParticularModel.AlchemyDrug>
    // System.Action<RoleParticularModel.HorseInfo>
    // System.Action<RoleParticularModel.PetInfo>
    // System.Action<ServerData>
    // System.Action<ServerDataCouple>
    // System.Action<ShopItemInfo>
    // System.Action<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Action<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Action<System.ValueTuple<ulong,object>>
    // System.Action<TimeMgr.Syntony>
    // System.Action<UnityEngine.Color>
    // System.Action<UnityEngine.EventSystems.RaycastResult>
    // System.Action<UnityEngine.Rect>
    // System.Action<UnityEngine.UIVertex>
@@ -179,13 +227,16 @@
    // System.Action<WindowConfig.OrderTable>
    // System.Action<byte,byte>
    // System.Action<byte,int>
    // System.Action<byte,object,int,object>
    // System.Action<byte,object>
    // System.Action<byte>
    // System.Action<double>
    // System.Action<float,int>
    // System.Action<float>
    // System.Action<int,byte,int,int,object>
    // System.Action<int,byte>
    // System.Action<int,int,int,byte>
    // System.Action<int,int,int>
    // System.Action<int,int,object>
    // System.Action<int,int>
    // System.Action<int,object,byte>
    // System.Action<int,object,int,int,int>
@@ -193,16 +244,22 @@
    // System.Action<int,object>
    // System.Action<int>
    // System.Action<long>
    // System.Action<object,byte,byte>
    // System.Action<object,byte>
    // System.Action<object,int,UnityEngine.Vector3>
    // System.Action<object,int>
    // System.Action<object,object,object>
    // System.Action<object,object>
    // System.Action<object>
    // System.Action<uint,uint>
    // System.Action<uint>
    // System.Action<ulong,ulong,int>
    // System.Action<ulong,ulong>
    // System.Action<ulong>
    // System.Action<ushort>
    // System.ArraySegment.Enumerator<UnityEngine.jvalue>
    // System.ArraySegment.Enumerator<int>
    // System.ArraySegment<UnityEngine.jvalue>
    // System.ArraySegment<int>
    // System.Buffers.ArrayPool<int>
    // System.Buffers.TlsOverPerCoreLockedStacksArrayPool.LockedStack<int>
    // System.Buffers.TlsOverPerCoreLockedStacksArrayPool.PerCoreLockedStacks<int>
@@ -214,27 +271,28 @@
    // System.Collections.Concurrent.ConcurrentDictionary.Node<object,object>
    // System.Collections.Concurrent.ConcurrentDictionary.Tables<object,object>
    // System.Collections.Concurrent.ConcurrentDictionary<object,object>
    // System.Collections.Generic.ArraySortHelper<HourMinute>
    // System.Collections.Generic.ArraySortHelper<InGameDownLoad.Reward>
    // System.Collections.Concurrent.ConcurrentQueue.<Enumerate>d__28<object>
    // System.Collections.Concurrent.ConcurrentQueue.Segment<object>
    // System.Collections.Concurrent.ConcurrentQueue<object>
    // System.Collections.Generic.ArraySortHelper<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.ArraySortHelper<Int2>
    // System.Collections.Generic.ArraySortHelper<Item>
    // System.Collections.Generic.ArraySortHelper<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.ArraySortHelper<Jace.Tokenizer.Token>
    // System.Collections.Generic.ArraySortHelper<LanguageVerify.MatchString>
    // System.Collections.Generic.ArraySortHelper<OperationTime>
    // System.Collections.Generic.ArraySortHelper<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.ArraySortHelper<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.ArraySortHelper<RoleParticularModel.PetInfo>
    // System.Collections.Generic.ArraySortHelper<ServerData>
    // System.Collections.Generic.ArraySortHelper<ServerDataCouple>
    // System.Collections.Generic.ArraySortHelper<ShopItemInfo>
    // System.Collections.Generic.ArraySortHelper<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.ArraySortHelper<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.ArraySortHelper<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.ArraySortHelper<TimeMgr.Syntony>
    // System.Collections.Generic.ArraySortHelper<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.ArraySortHelper<UnityEngine.Rect>
    // System.Collections.Generic.ArraySortHelper<UnityEngine.UIVertex>
    // System.Collections.Generic.ArraySortHelper<UnityEngine.Vector3>
    // System.Collections.Generic.ArraySortHelper<WindowConfig.OrderTable>
    // System.Collections.Generic.ArraySortHelper<byte>
    // System.Collections.Generic.ArraySortHelper<double>
    // System.Collections.Generic.ArraySortHelper<int>
    // System.Collections.Generic.ArraySortHelper<long>
@@ -242,30 +300,41 @@
    // System.Collections.Generic.ArraySortHelper<uint>
    // System.Collections.Generic.ArraySortHelper<ulong>
    // System.Collections.Generic.ArraySortHelper<ushort>
    // System.Collections.Generic.Comparer<HourMinute>
    // System.Collections.Generic.Comparer<InGameDownLoad.Reward>
    // System.Collections.Generic.Comparer<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.Comparer<Int2>
    // System.Collections.Generic.Comparer<Item>
    // System.Collections.Generic.Comparer<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.Comparer<Jace.Tokenizer.Token>
    // System.Collections.Generic.Comparer<LanguageVerify.MatchString>
    // System.Collections.Generic.Comparer<OperationTime>
    // System.Collections.Generic.Comparer<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.Comparer<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.Comparer<RoleParticularModel.PetInfo>
    // System.Collections.Generic.Comparer<ServerData>
    // System.Collections.Generic.Comparer<ServerDataCouple>
    // System.Collections.Generic.Comparer<ShopItemInfo>
    // System.Collections.Generic.Comparer<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.Comparer<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.Comparer<System.DateTime>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,byte>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,int>>
    // System.Collections.Generic.Comparer<System.ValueTuple<byte,object>>
    // System.Collections.Generic.Comparer<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.Comparer<TimeMgr.Syntony>
    // System.Collections.Generic.Comparer<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.Comparer<UnityEngine.Rect>
@@ -274,166 +343,200 @@
    // System.Collections.Generic.Comparer<WindowConfig.OrderTable>
    // System.Collections.Generic.Comparer<byte>
    // System.Collections.Generic.Comparer<double>
    // System.Collections.Generic.Comparer<float>
    // System.Collections.Generic.Comparer<int>
    // System.Collections.Generic.Comparer<long>
    // System.Collections.Generic.Comparer<object>
    // System.Collections.Generic.Comparer<uint>
    // System.Collections.Generic.Comparer<ulong>
    // System.Collections.Generic.Comparer<ushort>
    // System.Collections.Generic.Dictionary.Enumerator<Int2,Item>
    // System.Collections.Generic.Dictionary.Enumerator<Int2,object>
    // System.Collections.Generic.Dictionary.Enumerator<UnityEngine.Vector2,object>
    // System.Collections.Generic.Dictionary.Enumerator<int,ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.Dictionary.Enumerator<int,ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.Dictionary.Enumerator<int,DailyQuestTimes>
    // System.Collections.Generic.Dictionary.Enumerator<int,InvestModel.InvestInfo>
    // System.Collections.Generic.Dictionary.Enumerator<int,Item>
    // System.Collections.Generic.Dictionary.Enumerator<int,RechargeCount>
    // System.Collections.Generic.Dictionary.Enumerator<int,System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.Dictionary.Enumerator<int,System.DateTime>
    // System.Collections.Generic.Dictionary.Enumerator<int,System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.Dictionary.Enumerator<int,UnityEngine.Color32>
    // System.Collections.Generic.Dictionary.Enumerator<int,byte>
    // System.Collections.Generic.Dictionary.Enumerator<int,float>
    // System.Collections.Generic.Dictionary.Enumerator<int,int>
    // System.Collections.Generic.Dictionary.Enumerator<int,long>
    // System.Collections.Generic.Dictionary.Enumerator<int,object>
    // System.Collections.Generic.Dictionary.Enumerator<int,ulong>
    // System.Collections.Generic.Dictionary.Enumerator<int,uint>
    // System.Collections.Generic.Dictionary.Enumerator<long,long>
    // System.Collections.Generic.Dictionary.Enumerator<long,object>
    // System.Collections.Generic.Dictionary.Enumerator<object,Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.Dictionary.Enumerator<object,System.DateTime>
    // System.Collections.Generic.Dictionary.Enumerator<object,double>
    // System.Collections.Generic.Dictionary.Enumerator<object,float>
    // System.Collections.Generic.Dictionary.Enumerator<object,int>
    // System.Collections.Generic.Dictionary.Enumerator<object,object>
    // System.Collections.Generic.Dictionary.Enumerator<object,ulong>
    // System.Collections.Generic.Dictionary.Enumerator<uint,object>
    // System.Collections.Generic.Dictionary.Enumerator<ushort,int>
    // System.Collections.Generic.Dictionary.Enumerator<ushort,object>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<Int2,Item>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<Int2,object>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<UnityEngine.Vector2,object>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,DailyQuestTimes>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,InvestModel.InvestInfo>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,Item>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,RechargeCount>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,System.DateTime>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,UnityEngine.Color32>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,byte>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,float>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,int>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,long>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,object>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,ulong>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<int,uint>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<long,long>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<long,object>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,System.DateTime>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,double>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,float>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,int>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,object>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<object,ulong>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<uint,object>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<ushort,int>
    // System.Collections.Generic.Dictionary.KeyCollection.Enumerator<ushort,object>
    // System.Collections.Generic.Dictionary.KeyCollection<Int2,Item>
    // System.Collections.Generic.Dictionary.KeyCollection<Int2,object>
    // System.Collections.Generic.Dictionary.KeyCollection<UnityEngine.Vector2,object>
    // System.Collections.Generic.Dictionary.KeyCollection<int,ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.Dictionary.KeyCollection<int,ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.Dictionary.KeyCollection<int,DailyQuestTimes>
    // System.Collections.Generic.Dictionary.KeyCollection<int,InvestModel.InvestInfo>
    // System.Collections.Generic.Dictionary.KeyCollection<int,Item>
    // System.Collections.Generic.Dictionary.KeyCollection<int,RechargeCount>
    // System.Collections.Generic.Dictionary.KeyCollection<int,System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.Dictionary.KeyCollection<int,System.DateTime>
    // System.Collections.Generic.Dictionary.KeyCollection<int,System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.Dictionary.KeyCollection<int,UnityEngine.Color32>
    // System.Collections.Generic.Dictionary.KeyCollection<int,byte>
    // System.Collections.Generic.Dictionary.KeyCollection<int,float>
    // System.Collections.Generic.Dictionary.KeyCollection<int,int>
    // System.Collections.Generic.Dictionary.KeyCollection<int,long>
    // System.Collections.Generic.Dictionary.KeyCollection<int,object>
    // System.Collections.Generic.Dictionary.KeyCollection<int,ulong>
    // System.Collections.Generic.Dictionary.KeyCollection<int,uint>
    // System.Collections.Generic.Dictionary.KeyCollection<long,long>
    // System.Collections.Generic.Dictionary.KeyCollection<long,object>
    // System.Collections.Generic.Dictionary.KeyCollection<object,Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.Dictionary.KeyCollection<object,System.DateTime>
    // System.Collections.Generic.Dictionary.KeyCollection<object,double>
    // System.Collections.Generic.Dictionary.KeyCollection<object,float>
    // System.Collections.Generic.Dictionary.KeyCollection<object,int>
    // System.Collections.Generic.Dictionary.KeyCollection<object,object>
    // System.Collections.Generic.Dictionary.KeyCollection<object,ulong>
    // System.Collections.Generic.Dictionary.KeyCollection<uint,object>
    // System.Collections.Generic.Dictionary.KeyCollection<ushort,int>
    // System.Collections.Generic.Dictionary.KeyCollection<ushort,object>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<Int2,Item>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<Int2,object>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<UnityEngine.Vector2,object>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,DailyQuestTimes>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,InvestModel.InvestInfo>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,Item>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,RechargeCount>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,System.DateTime>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,UnityEngine.Color32>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,byte>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,float>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,int>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,long>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,object>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,ulong>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<int,uint>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<long,long>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<long,object>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,System.DateTime>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,double>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,float>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,int>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,object>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<object,ulong>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<uint,object>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<ushort,int>
    // System.Collections.Generic.Dictionary.ValueCollection.Enumerator<ushort,object>
    // System.Collections.Generic.Dictionary.ValueCollection<Int2,Item>
    // System.Collections.Generic.Dictionary.ValueCollection<Int2,object>
    // System.Collections.Generic.Dictionary.ValueCollection<UnityEngine.Vector2,object>
    // System.Collections.Generic.Dictionary.ValueCollection<int,ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.Dictionary.ValueCollection<int,ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.Dictionary.ValueCollection<int,DailyQuestTimes>
    // System.Collections.Generic.Dictionary.ValueCollection<int,InvestModel.InvestInfo>
    // System.Collections.Generic.Dictionary.ValueCollection<int,Item>
    // System.Collections.Generic.Dictionary.ValueCollection<int,RechargeCount>
    // System.Collections.Generic.Dictionary.ValueCollection<int,System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.Dictionary.ValueCollection<int,System.DateTime>
    // System.Collections.Generic.Dictionary.ValueCollection<int,System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.Dictionary.ValueCollection<int,UnityEngine.Color32>
    // System.Collections.Generic.Dictionary.ValueCollection<int,byte>
    // System.Collections.Generic.Dictionary.ValueCollection<int,float>
    // System.Collections.Generic.Dictionary.ValueCollection<int,int>
    // System.Collections.Generic.Dictionary.ValueCollection<int,long>
    // System.Collections.Generic.Dictionary.ValueCollection<int,object>
    // System.Collections.Generic.Dictionary.ValueCollection<int,ulong>
    // System.Collections.Generic.Dictionary.ValueCollection<int,uint>
    // System.Collections.Generic.Dictionary.ValueCollection<long,long>
    // System.Collections.Generic.Dictionary.ValueCollection<long,object>
    // System.Collections.Generic.Dictionary.ValueCollection<object,Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.Dictionary.ValueCollection<object,System.DateTime>
    // System.Collections.Generic.Dictionary.ValueCollection<object,double>
    // System.Collections.Generic.Dictionary.ValueCollection<object,float>
    // System.Collections.Generic.Dictionary.ValueCollection<object,int>
    // System.Collections.Generic.Dictionary.ValueCollection<object,object>
    // System.Collections.Generic.Dictionary.ValueCollection<object,ulong>
    // System.Collections.Generic.Dictionary.ValueCollection<uint,object>
    // System.Collections.Generic.Dictionary.ValueCollection<ushort,int>
    // System.Collections.Generic.Dictionary.ValueCollection<ushort,object>
    // System.Collections.Generic.Dictionary<Int2,Item>
    // System.Collections.Generic.Dictionary<Int2,object>
    // System.Collections.Generic.Dictionary<UnityEngine.Vector2,object>
    // System.Collections.Generic.Dictionary<int,ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.Dictionary<int,ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.Dictionary<int,DailyQuestTimes>
    // System.Collections.Generic.Dictionary<int,InvestModel.InvestInfo>
    // System.Collections.Generic.Dictionary<int,Item>
    // System.Collections.Generic.Dictionary<int,RechargeCount>
    // System.Collections.Generic.Dictionary<int,System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.Dictionary<int,System.DateTime>
    // System.Collections.Generic.Dictionary<int,System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.Dictionary<int,UnityEngine.Color32>
    // System.Collections.Generic.Dictionary<int,byte>
    // System.Collections.Generic.Dictionary<int,float>
    // System.Collections.Generic.Dictionary<int,int>
    // System.Collections.Generic.Dictionary<int,long>
    // System.Collections.Generic.Dictionary<int,object>
    // System.Collections.Generic.Dictionary<int,ulong>
    // System.Collections.Generic.Dictionary<int,uint>
    // System.Collections.Generic.Dictionary<long,long>
    // System.Collections.Generic.Dictionary<long,object>
    // System.Collections.Generic.Dictionary<object,Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.Dictionary<object,System.DateTime>
    // System.Collections.Generic.Dictionary<object,double>
    // System.Collections.Generic.Dictionary<object,float>
    // System.Collections.Generic.Dictionary<object,int>
    // System.Collections.Generic.Dictionary<object,object>
    // System.Collections.Generic.Dictionary<object,ulong>
    // System.Collections.Generic.Dictionary<uint,object>
    // System.Collections.Generic.Dictionary<ushort,int>
    // System.Collections.Generic.Dictionary<ushort,object>
    // System.Collections.Generic.EqualityComparer<ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.EqualityComparer<ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.EqualityComparer<DailyQuestTimes>
    // System.Collections.Generic.EqualityComparer<Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.EqualityComparer<Int2>
    // System.Collections.Generic.EqualityComparer<InvestModel.InvestInfo>
    // System.Collections.Generic.EqualityComparer<Item>
    // System.Collections.Generic.EqualityComparer<RechargeCount>
    // System.Collections.Generic.EqualityComparer<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.EqualityComparer<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.EqualityComparer<System.DateTime>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,byte>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,int>>
    // System.Collections.Generic.EqualityComparer<System.ValueTuple<byte,object>>
    // System.Collections.Generic.EqualityComparer<UnityEngine.Color32>
    // System.Collections.Generic.EqualityComparer<UnityEngine.Vector2>
    // System.Collections.Generic.EqualityComparer<byte>
    // System.Collections.Generic.EqualityComparer<double>
@@ -446,53 +549,56 @@
    // System.Collections.Generic.EqualityComparer<ushort>
    // System.Collections.Generic.HashSet.Enumerator<int>
    // System.Collections.Generic.HashSet.Enumerator<object>
    // System.Collections.Generic.HashSet.Enumerator<uint>
    // System.Collections.Generic.HashSet<int>
    // System.Collections.Generic.HashSet<object>
    // System.Collections.Generic.HashSet<uint>
    // System.Collections.Generic.HashSetEqualityComparer<int>
    // System.Collections.Generic.HashSetEqualityComparer<object>
    // System.Collections.Generic.ICollection<HourMinute>
    // System.Collections.Generic.ICollection<InGameDownLoad.Reward>
    // System.Collections.Generic.HashSetEqualityComparer<uint>
    // System.Collections.Generic.ICollection<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.ICollection<Int2>
    // System.Collections.Generic.ICollection<Item>
    // System.Collections.Generic.ICollection<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.ICollection<Jace.Tokenizer.Token>
    // System.Collections.Generic.ICollection<LanguageVerify.MatchString>
    // System.Collections.Generic.ICollection<OperationTime>
    // System.Collections.Generic.ICollection<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.ICollection<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.ICollection<RoleParticularModel.PetInfo>
    // System.Collections.Generic.ICollection<ServerData>
    // System.Collections.Generic.ICollection<ServerDataCouple>
    // System.Collections.Generic.ICollection<ShopItemInfo>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<Int2,Item>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<Int2,object>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,Item>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,RechargeCount>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,System.DateTime>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,byte>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,float>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,long>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,object>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,ulong>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<int,uint>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<long,long>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<long,object>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,System.DateTime>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,double>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,float>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,int>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<object,ulong>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<uint,object>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<ushort,int>>
    // System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<ushort,object>>
    // System.Collections.Generic.ICollection<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.ICollection<TimeMgr.Syntony>
    // System.Collections.Generic.ICollection<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.ICollection<UnityEngine.Rect>
    // System.Collections.Generic.ICollection<UnityEngine.UIVertex>
    // System.Collections.Generic.ICollection<UnityEngine.Vector3>
    // System.Collections.Generic.ICollection<WindowConfig.OrderTable>
    // System.Collections.Generic.ICollection<byte>
    // System.Collections.Generic.ICollection<double>
    // System.Collections.Generic.ICollection<float>
    // System.Collections.Generic.ICollection<int>
@@ -501,29 +607,28 @@
    // System.Collections.Generic.ICollection<uint>
    // System.Collections.Generic.ICollection<ulong>
    // System.Collections.Generic.ICollection<ushort>
    // System.Collections.Generic.IComparer<HourMinute>
    // System.Collections.Generic.IComparer<InGameDownLoad.Reward>
    // System.Collections.Generic.IComparer<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.IComparer<Int2>
    // System.Collections.Generic.IComparer<Item>
    // System.Collections.Generic.IComparer<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.IComparer<Jace.Tokenizer.Token>
    // System.Collections.Generic.IComparer<LanguageVerify.MatchString>
    // System.Collections.Generic.IComparer<OperationTime>
    // System.Collections.Generic.IComparer<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.IComparer<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.IComparer<RoleParticularModel.PetInfo>
    // System.Collections.Generic.IComparer<ServerData>
    // System.Collections.Generic.IComparer<ServerDataCouple>
    // System.Collections.Generic.IComparer<ShopItemInfo>
    // System.Collections.Generic.IComparer<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.IComparer<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.IComparer<System.DateTime>
    // System.Collections.Generic.IComparer<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.IComparer<TimeMgr.Syntony>
    // System.Collections.Generic.IComparer<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.IComparer<UnityEngine.Rect>
    // System.Collections.Generic.IComparer<UnityEngine.UIVertex>
    // System.Collections.Generic.IComparer<UnityEngine.Vector3>
    // System.Collections.Generic.IComparer<WindowConfig.OrderTable>
    // System.Collections.Generic.IComparer<byte>
    // System.Collections.Generic.IComparer<double>
    // System.Collections.Generic.IComparer<float>
    // System.Collections.Generic.IComparer<int>
    // System.Collections.Generic.IComparer<long>
    // System.Collections.Generic.IComparer<object>
@@ -535,49 +640,49 @@
    // System.Collections.Generic.IDictionary<object,LitJson.PropertyMetadata>
    // System.Collections.Generic.IDictionary<object,double>
    // System.Collections.Generic.IDictionary<object,object>
    // System.Collections.Generic.IEnumerable<HourMinute>
    // System.Collections.Generic.IEnumerable<InGameDownLoad.Reward>
    // System.Collections.Generic.IEnumerable<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.IEnumerable<Int2>
    // System.Collections.Generic.IEnumerable<Item>
    // System.Collections.Generic.IEnumerable<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.IEnumerable<Jace.Tokenizer.Token>
    // System.Collections.Generic.IEnumerable<LanguageVerify.MatchString>
    // System.Collections.Generic.IEnumerable<OperationTime>
    // System.Collections.Generic.IEnumerable<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.IEnumerable<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.IEnumerable<RoleParticularModel.PetInfo>
    // System.Collections.Generic.IEnumerable<ServerData>
    // System.Collections.Generic.IEnumerable<ServerDataCouple>
    // System.Collections.Generic.IEnumerable<ShopItemInfo>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<Int2,Item>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<Int2,object>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,Item>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,RechargeCount>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,System.DateTime>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,byte>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,float>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,long>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,object>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ulong>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,uint>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<long,long>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<long,object>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,System.DateTime>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,double>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,float>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,int>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,ulong>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<uint,object>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<ushort,int>>
    // System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<ushort,object>>
    // System.Collections.Generic.IEnumerable<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.IEnumerable<TimeMgr.Syntony>
    // System.Collections.Generic.IEnumerable<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.IEnumerable<UnityEngine.Rect>
    // System.Collections.Generic.IEnumerable<UnityEngine.UIVertex>
    // System.Collections.Generic.IEnumerable<UnityEngine.Vector3>
    // System.Collections.Generic.IEnumerable<WindowConfig.OrderTable>
    // System.Collections.Generic.IEnumerable<byte>
    // System.Collections.Generic.IEnumerable<double>
    // System.Collections.Generic.IEnumerable<float>
    // System.Collections.Generic.IEnumerable<int>
@@ -586,49 +691,49 @@
    // System.Collections.Generic.IEnumerable<uint>
    // System.Collections.Generic.IEnumerable<ulong>
    // System.Collections.Generic.IEnumerable<ushort>
    // System.Collections.Generic.IEnumerator<HourMinute>
    // System.Collections.Generic.IEnumerator<InGameDownLoad.Reward>
    // System.Collections.Generic.IEnumerator<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.IEnumerator<Int2>
    // System.Collections.Generic.IEnumerator<Item>
    // System.Collections.Generic.IEnumerator<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.IEnumerator<Jace.Tokenizer.Token>
    // System.Collections.Generic.IEnumerator<LanguageVerify.MatchString>
    // System.Collections.Generic.IEnumerator<OperationTime>
    // System.Collections.Generic.IEnumerator<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.IEnumerator<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.IEnumerator<RoleParticularModel.PetInfo>
    // System.Collections.Generic.IEnumerator<ServerData>
    // System.Collections.Generic.IEnumerator<ServerDataCouple>
    // System.Collections.Generic.IEnumerator<ShopItemInfo>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<Int2,Item>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<Int2,object>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,Item>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,RechargeCount>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,System.DateTime>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,byte>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,float>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,long>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,object>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,ulong>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<int,uint>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<long,long>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<long,object>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,System.DateTime>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,double>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,float>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,int>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<object,ulong>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<uint,object>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<ushort,int>>
    // System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<ushort,object>>
    // System.Collections.Generic.IEnumerator<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.IEnumerator<TimeMgr.Syntony>
    // System.Collections.Generic.IEnumerator<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.IEnumerator<UnityEngine.Rect>
    // System.Collections.Generic.IEnumerator<UnityEngine.UIVertex>
    // System.Collections.Generic.IEnumerator<UnityEngine.Vector3>
    // System.Collections.Generic.IEnumerator<WindowConfig.OrderTable>
    // System.Collections.Generic.IEnumerator<byte>
    // System.Collections.Generic.IEnumerator<double>
    // System.Collections.Generic.IEnumerator<float>
    // System.Collections.Generic.IEnumerator<int>
@@ -637,33 +742,32 @@
    // System.Collections.Generic.IEnumerator<uint>
    // System.Collections.Generic.IEnumerator<ulong>
    // System.Collections.Generic.IEnumerator<ushort>
    // System.Collections.Generic.IEqualityComparer<Int2>
    // System.Collections.Generic.IEqualityComparer<UnityEngine.Vector2>
    // System.Collections.Generic.IEqualityComparer<int>
    // System.Collections.Generic.IEqualityComparer<long>
    // System.Collections.Generic.IEqualityComparer<object>
    // System.Collections.Generic.IEqualityComparer<uint>
    // System.Collections.Generic.IEqualityComparer<ushort>
    // System.Collections.Generic.IList<HourMinute>
    // System.Collections.Generic.IList<InGameDownLoad.Reward>
    // System.Collections.Generic.IList<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.IList<Int2>
    // System.Collections.Generic.IList<Item>
    // System.Collections.Generic.IList<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.IList<Jace.Tokenizer.Token>
    // System.Collections.Generic.IList<LanguageVerify.MatchString>
    // System.Collections.Generic.IList<OperationTime>
    // System.Collections.Generic.IList<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.IList<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.IList<RoleParticularModel.PetInfo>
    // System.Collections.Generic.IList<ServerData>
    // System.Collections.Generic.IList<ServerDataCouple>
    // System.Collections.Generic.IList<ShopItemInfo>
    // System.Collections.Generic.IList<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.IList<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.IList<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.IList<TimeMgr.Syntony>
    // System.Collections.Generic.IList<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.IList<UnityEngine.Rect>
    // System.Collections.Generic.IList<UnityEngine.UIVertex>
    // System.Collections.Generic.IList<UnityEngine.Vector3>
    // System.Collections.Generic.IList<WindowConfig.OrderTable>
    // System.Collections.Generic.IList<byte>
    // System.Collections.Generic.IList<double>
    // System.Collections.Generic.IList<float>
    // System.Collections.Generic.IList<int>
@@ -672,51 +776,52 @@
    // System.Collections.Generic.IList<uint>
    // System.Collections.Generic.IList<ulong>
    // System.Collections.Generic.IList<ushort>
    // System.Collections.Generic.KeyValuePair<Int2,Item>
    // System.Collections.Generic.KeyValuePair<Int2,object>
    // System.Collections.Generic.KeyValuePair<UnityEngine.Vector2,object>
    // System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.KeyValuePair<int,ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.KeyValuePair<int,DailyQuestTimes>
    // System.Collections.Generic.KeyValuePair<int,InvestModel.InvestInfo>
    // System.Collections.Generic.KeyValuePair<int,Item>
    // System.Collections.Generic.KeyValuePair<int,RechargeCount>
    // System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.KeyValuePair<int,System.DateTime>
    // System.Collections.Generic.KeyValuePair<int,System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.KeyValuePair<int,UnityEngine.Color32>
    // System.Collections.Generic.KeyValuePair<int,byte>
    // System.Collections.Generic.KeyValuePair<int,float>
    // System.Collections.Generic.KeyValuePair<int,int>
    // System.Collections.Generic.KeyValuePair<int,long>
    // System.Collections.Generic.KeyValuePair<int,object>
    // System.Collections.Generic.KeyValuePair<int,ulong>
    // System.Collections.Generic.KeyValuePair<int,uint>
    // System.Collections.Generic.KeyValuePair<long,long>
    // System.Collections.Generic.KeyValuePair<long,object>
    // System.Collections.Generic.KeyValuePair<object,Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.KeyValuePair<object,System.DateTime>
    // System.Collections.Generic.KeyValuePair<object,double>
    // System.Collections.Generic.KeyValuePair<object,float>
    // System.Collections.Generic.KeyValuePair<object,int>
    // System.Collections.Generic.KeyValuePair<object,long>
    // System.Collections.Generic.KeyValuePair<object,object>
    // System.Collections.Generic.KeyValuePair<object,ulong>
    // System.Collections.Generic.KeyValuePair<uint,object>
    // System.Collections.Generic.KeyValuePair<ushort,int>
    // System.Collections.Generic.KeyValuePair<ushort,object>
    // System.Collections.Generic.List.Enumerator<HourMinute>
    // System.Collections.Generic.List.Enumerator<InGameDownLoad.Reward>
    // System.Collections.Generic.List.Enumerator<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.List.Enumerator<Int2>
    // System.Collections.Generic.List.Enumerator<Item>
    // System.Collections.Generic.List.Enumerator<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.List.Enumerator<Jace.Tokenizer.Token>
    // System.Collections.Generic.List.Enumerator<LanguageVerify.MatchString>
    // System.Collections.Generic.List.Enumerator<OperationTime>
    // System.Collections.Generic.List.Enumerator<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.List.Enumerator<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.List.Enumerator<RoleParticularModel.PetInfo>
    // System.Collections.Generic.List.Enumerator<ServerData>
    // System.Collections.Generic.List.Enumerator<ServerDataCouple>
    // System.Collections.Generic.List.Enumerator<ShopItemInfo>
    // System.Collections.Generic.List.Enumerator<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.List.Enumerator<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.List.Enumerator<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.List.Enumerator<TimeMgr.Syntony>
    // System.Collections.Generic.List.Enumerator<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.List.Enumerator<UnityEngine.Rect>
    // System.Collections.Generic.List.Enumerator<UnityEngine.UIVertex>
    // System.Collections.Generic.List.Enumerator<UnityEngine.Vector3>
    // System.Collections.Generic.List.Enumerator<WindowConfig.OrderTable>
    // System.Collections.Generic.List.Enumerator<byte>
    // System.Collections.Generic.List.Enumerator<double>
    // System.Collections.Generic.List.Enumerator<int>
    // System.Collections.Generic.List.Enumerator<long>
@@ -724,27 +829,25 @@
    // System.Collections.Generic.List.Enumerator<uint>
    // System.Collections.Generic.List.Enumerator<ulong>
    // System.Collections.Generic.List.Enumerator<ushort>
    // System.Collections.Generic.List<HourMinute>
    // System.Collections.Generic.List<InGameDownLoad.Reward>
    // System.Collections.Generic.List<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.List<Int2>
    // System.Collections.Generic.List<Item>
    // System.Collections.Generic.List<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.List<Jace.Tokenizer.Token>
    // System.Collections.Generic.List<LanguageVerify.MatchString>
    // System.Collections.Generic.List<OperationTime>
    // System.Collections.Generic.List<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.List<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.List<RoleParticularModel.PetInfo>
    // System.Collections.Generic.List<ServerData>
    // System.Collections.Generic.List<ServerDataCouple>
    // System.Collections.Generic.List<ShopItemInfo>
    // System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.List<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.List<TimeMgr.Syntony>
    // System.Collections.Generic.List<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.List<UnityEngine.Rect>
    // System.Collections.Generic.List<UnityEngine.UIVertex>
    // System.Collections.Generic.List<UnityEngine.Vector3>
    // System.Collections.Generic.List<WindowConfig.OrderTable>
    // System.Collections.Generic.List<byte>
    // System.Collections.Generic.List<double>
    // System.Collections.Generic.List<int>
    // System.Collections.Generic.List<long>
@@ -752,29 +855,38 @@
    // System.Collections.Generic.List<uint>
    // System.Collections.Generic.List<ulong>
    // System.Collections.Generic.List<ushort>
    // System.Collections.Generic.ObjectComparer<HourMinute>
    // System.Collections.Generic.ObjectComparer<InGameDownLoad.Reward>
    // System.Collections.Generic.ObjectComparer<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.Generic.ObjectComparer<Int2>
    // System.Collections.Generic.ObjectComparer<Item>
    // System.Collections.Generic.ObjectComparer<Jace.Execution.ParameterInfo>
    // System.Collections.Generic.ObjectComparer<Jace.Tokenizer.Token>
    // System.Collections.Generic.ObjectComparer<LanguageVerify.MatchString>
    // System.Collections.Generic.ObjectComparer<OperationTime>
    // System.Collections.Generic.ObjectComparer<RoleParticularModel.AlchemyDrug>
    // System.Collections.Generic.ObjectComparer<RoleParticularModel.HorseInfo>
    // System.Collections.Generic.ObjectComparer<RoleParticularModel.PetInfo>
    // System.Collections.Generic.ObjectComparer<ServerData>
    // System.Collections.Generic.ObjectComparer<ServerDataCouple>
    // System.Collections.Generic.ObjectComparer<ShopItemInfo>
    // System.Collections.Generic.ObjectComparer<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.ObjectComparer<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.ObjectComparer<System.DateTime>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,byte>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,int>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<byte,object>>
    // System.Collections.Generic.ObjectComparer<System.ValueTuple<ulong,object>>
    // System.Collections.Generic.ObjectComparer<TimeMgr.Syntony>
    // System.Collections.Generic.ObjectComparer<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.Generic.ObjectComparer<UnityEngine.Rect>
@@ -783,27 +895,41 @@
    // System.Collections.Generic.ObjectComparer<WindowConfig.OrderTable>
    // System.Collections.Generic.ObjectComparer<byte>
    // System.Collections.Generic.ObjectComparer<double>
    // System.Collections.Generic.ObjectComparer<float>
    // System.Collections.Generic.ObjectComparer<int>
    // System.Collections.Generic.ObjectComparer<long>
    // System.Collections.Generic.ObjectComparer<object>
    // System.Collections.Generic.ObjectComparer<uint>
    // System.Collections.Generic.ObjectComparer<ulong>
    // System.Collections.Generic.ObjectComparer<ushort>
    // System.Collections.Generic.ObjectEqualityComparer<ChatBubbleManager.BubbleBox>
    // System.Collections.Generic.ObjectEqualityComparer<ChatBubbleManager.ChatBubble>
    // System.Collections.Generic.ObjectEqualityComparer<DailyQuestTimes>
    // System.Collections.Generic.ObjectEqualityComparer<Cysharp.Threading.Tasks.UniTask<object>>
    // System.Collections.Generic.ObjectEqualityComparer<Int2>
    // System.Collections.Generic.ObjectEqualityComparer<InvestModel.InvestInfo>
    // System.Collections.Generic.ObjectEqualityComparer<Item>
    // System.Collections.Generic.ObjectEqualityComparer<RechargeCount>
    // System.Collections.Generic.ObjectEqualityComparer<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.Generic.ObjectEqualityComparer<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.Generic.ObjectEqualityComparer<System.DateTime>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,byte>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,int>>
    // System.Collections.Generic.ObjectEqualityComparer<System.ValueTuple<byte,object>>
    // System.Collections.Generic.ObjectEqualityComparer<UnityEngine.Color32>
    // System.Collections.Generic.ObjectEqualityComparer<UnityEngine.Vector2>
    // System.Collections.Generic.ObjectEqualityComparer<byte>
    // System.Collections.Generic.ObjectEqualityComparer<double>
@@ -825,27 +951,25 @@
    // System.Collections.Generic.Stack<int>
    // System.Collections.Generic.Stack<object>
    // System.Collections.Generic.ValueListBuilder<int>
    // System.Collections.ObjectModel.ReadOnlyCollection<HourMinute>
    // System.Collections.ObjectModel.ReadOnlyCollection<InGameDownLoad.Reward>
    // System.Collections.ObjectModel.ReadOnlyCollection<Cysharp.Threading.Tasks.UniTask>
    // System.Collections.ObjectModel.ReadOnlyCollection<Int2>
    // System.Collections.ObjectModel.ReadOnlyCollection<Item>
    // System.Collections.ObjectModel.ReadOnlyCollection<Jace.Execution.ParameterInfo>
    // System.Collections.ObjectModel.ReadOnlyCollection<Jace.Tokenizer.Token>
    // System.Collections.ObjectModel.ReadOnlyCollection<LanguageVerify.MatchString>
    // System.Collections.ObjectModel.ReadOnlyCollection<OperationTime>
    // System.Collections.ObjectModel.ReadOnlyCollection<RoleParticularModel.AlchemyDrug>
    // System.Collections.ObjectModel.ReadOnlyCollection<RoleParticularModel.HorseInfo>
    // System.Collections.ObjectModel.ReadOnlyCollection<RoleParticularModel.PetInfo>
    // System.Collections.ObjectModel.ReadOnlyCollection<ServerData>
    // System.Collections.ObjectModel.ReadOnlyCollection<ServerDataCouple>
    // System.Collections.ObjectModel.ReadOnlyCollection<ShopItemInfo>
    // System.Collections.ObjectModel.ReadOnlyCollection<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Collections.ObjectModel.ReadOnlyCollection<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Collections.ObjectModel.ReadOnlyCollection<System.ValueTuple<ulong,object>>
    // System.Collections.ObjectModel.ReadOnlyCollection<TimeMgr.Syntony>
    // System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.EventSystems.RaycastResult>
    // System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.Rect>
    // System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.UIVertex>
    // System.Collections.ObjectModel.ReadOnlyCollection<UnityEngine.Vector3>
    // System.Collections.ObjectModel.ReadOnlyCollection<WindowConfig.OrderTable>
    // System.Collections.ObjectModel.ReadOnlyCollection<byte>
    // System.Collections.ObjectModel.ReadOnlyCollection<double>
    // System.Collections.ObjectModel.ReadOnlyCollection<int>
    // System.Collections.ObjectModel.ReadOnlyCollection<long>
@@ -853,27 +977,25 @@
    // System.Collections.ObjectModel.ReadOnlyCollection<uint>
    // System.Collections.ObjectModel.ReadOnlyCollection<ulong>
    // System.Collections.ObjectModel.ReadOnlyCollection<ushort>
    // System.Comparison<HourMinute>
    // System.Comparison<InGameDownLoad.Reward>
    // System.Comparison<Cysharp.Threading.Tasks.UniTask>
    // System.Comparison<Int2>
    // System.Comparison<Item>
    // System.Comparison<Jace.Execution.ParameterInfo>
    // System.Comparison<Jace.Tokenizer.Token>
    // System.Comparison<LanguageVerify.MatchString>
    // System.Comparison<OperationTime>
    // System.Comparison<RoleParticularModel.AlchemyDrug>
    // System.Comparison<RoleParticularModel.HorseInfo>
    // System.Comparison<RoleParticularModel.PetInfo>
    // System.Comparison<ServerData>
    // System.Comparison<ServerDataCouple>
    // System.Comparison<ShopItemInfo>
    // System.Comparison<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Comparison<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Comparison<System.ValueTuple<ulong,object>>
    // System.Comparison<TimeMgr.Syntony>
    // System.Comparison<UnityEngine.EventSystems.RaycastResult>
    // System.Comparison<UnityEngine.Rect>
    // System.Comparison<UnityEngine.UIVertex>
    // System.Comparison<UnityEngine.Vector3>
    // System.Comparison<WindowConfig.OrderTable>
    // System.Comparison<byte>
    // System.Comparison<double>
    // System.Comparison<int>
    // System.Comparison<long>
@@ -883,18 +1005,35 @@
    // System.Comparison<ushort>
    // System.Dynamic.Utils.CacheDict.Entry<object,object>
    // System.Dynamic.Utils.CacheDict<object,object>
    // System.EventHandler<float>
    // System.Func<Cysharp.Threading.Tasks.UniTask<object>>
    // System.Func<Cysharp.Threading.Tasks.UniTask>
    // System.Func<Jace.Execution.ParameterInfo,byte>
    // System.Func<System.Collections.Generic.KeyValuePair<int,int>,byte>
    // System.Func<System.Collections.Generic.KeyValuePair<int,int>,object>
    // System.Func<System.Collections.Generic.KeyValuePair<object,double>,byte>
    // System.Func<System.Collections.Generic.KeyValuePair<object,object>,byte>
    // System.Func<System.Collections.Generic.KeyValuePair<object,object>,float>
    // System.Func<System.Collections.Generic.KeyValuePair<object,object>,long>
    // System.Func<System.Collections.Generic.KeyValuePair<object,object>,object>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Func<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Func<System.ValueTuple<byte,byte>>
    // System.Func<System.ValueTuple<byte,int>>
    // System.Func<System.ValueTuple<byte,object>>
    // System.Func<byte,object,byte>
    // System.Func<byte>
@@ -919,102 +1058,158 @@
    // System.Func<double>
    // System.Func<float>
    // System.Func<int,byte>
    // System.Func<int,int>
    // System.Func<int,object>
    // System.Func<int>
    // System.Func<long,byte>
    // System.Func<long,object>
    // System.Func<object,System.DateTime>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Func<object,System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Func<object,System.ValueTuple<byte,byte>>
    // System.Func<object,System.ValueTuple<byte,int>>
    // System.Func<object,System.ValueTuple<byte,object>>
    // System.Func<object,byte>
    // System.Func<object,double>
    // System.Func<object,int>
    // System.Func<object,long>
    // System.Func<object,object,byte,object,object>
    // System.Func<object,object,byte>
    // System.Func<object,object,double>
    // System.Func<object,object,object>
    // System.Func<object,object>
    // System.Func<object,uint>
    // System.Func<object,ushort>
    // System.Func<object>
    // System.Func<ushort,byte>
    // System.IComparable<double>
    // System.IComparable<object>
    // System.IProgress<float>
    // System.Linq.Buffer<Jace.Execution.ParameterInfo>
    // System.Linq.Buffer<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.Buffer<int>
    // System.Linq.Buffer<object>
    // System.Linq.Buffer<ushort>
    // System.Linq.Enumerable.<CastIterator>d__99<object>
    // System.Linq.Enumerable.<ConcatIterator>d__59<int>
    // System.Linq.Enumerable.<DistinctIterator>d__68<int>
    // System.Linq.Enumerable.<TakeIterator>d__25<object>
    // System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.Enumerable.Iterator<double>
    // System.Linq.Enumerable.Iterator<int>
    // System.Linq.Enumerable.Iterator<long>
    // System.Linq.Enumerable.Iterator<object>
    // System.Linq.Enumerable.Iterator<ushort>
    // System.Linq.Enumerable.WhereArrayIterator<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.Enumerable.WhereArrayIterator<object>
    // System.Linq.Enumerable.WhereEnumerableIterator<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.Enumerable.WhereEnumerableIterator<double>
    // System.Linq.Enumerable.WhereEnumerableIterator<int>
    // System.Linq.Enumerable.WhereEnumerableIterator<long>
    // System.Linq.Enumerable.WhereEnumerableIterator<object>
    // System.Linq.Enumerable.WhereEnumerableIterator<ushort>
    // System.Linq.Enumerable.WhereListIterator<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.Enumerable.WhereListIterator<object>
    // System.Linq.Enumerable.WhereSelectArrayIterator<System.Collections.Generic.KeyValuePair<int,int>,object>
    // System.Linq.Enumerable.WhereSelectArrayIterator<System.Collections.Generic.KeyValuePair<object,object>,object>
    // System.Linq.Enumerable.WhereSelectArrayIterator<double,object>
    // System.Linq.Enumerable.WhereSelectArrayIterator<int,object>
    // System.Linq.Enumerable.WhereSelectArrayIterator<object,double>
    // System.Linq.Enumerable.WhereSelectArrayIterator<object,int>
    // System.Linq.Enumerable.WhereSelectArrayIterator<object,long>
    // System.Linq.Enumerable.WhereSelectArrayIterator<object,object>
    // System.Linq.Enumerable.WhereSelectArrayIterator<object,ushort>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Collections.Generic.KeyValuePair<int,int>,object>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Collections.Generic.KeyValuePair<object,object>,object>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<double,object>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<int,object>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<object,double>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<object,int>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<object,long>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<object,object>
    // System.Linq.Enumerable.WhereSelectEnumerableIterator<object,ushort>
    // System.Linq.Enumerable.WhereSelectListIterator<System.Collections.Generic.KeyValuePair<int,int>,object>
    // System.Linq.Enumerable.WhereSelectListIterator<System.Collections.Generic.KeyValuePair<object,object>,object>
    // System.Linq.Enumerable.WhereSelectListIterator<double,object>
    // System.Linq.Enumerable.WhereSelectListIterator<int,object>
    // System.Linq.Enumerable.WhereSelectListIterator<object,double>
    // System.Linq.Enumerable.WhereSelectListIterator<object,int>
    // System.Linq.Enumerable.WhereSelectListIterator<object,long>
    // System.Linq.Enumerable.WhereSelectListIterator<object,object>
    // System.Linq.Enumerable.WhereSelectListIterator<object,ushort>
    // System.Linq.EnumerableSorter<System.Collections.Generic.KeyValuePair<object,object>,float>
    // System.Linq.EnumerableSorter<System.Collections.Generic.KeyValuePair<object,object>,long>
    // System.Linq.EnumerableSorter<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.EnumerableSorter<int,byte>
    // System.Linq.EnumerableSorter<int,int>
    // System.Linq.EnumerableSorter<int>
    // System.Linq.EnumerableSorter<object,System.DateTime>
    // System.Linq.EnumerableSorter<object,byte>
    // System.Linq.EnumerableSorter<object,int>
    // System.Linq.EnumerableSorter<object,long>
    // System.Linq.EnumerableSorter<object,uint>
    // System.Linq.EnumerableSorter<object>
    // System.Linq.Expressions.Expression<object>
    // System.Linq.IOrderedEnumerable<int>
    // System.Linq.IOrderedEnumerable<object>
    // System.Linq.OrderedEnumerable.<GetEnumerator>d__1<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.OrderedEnumerable.<GetEnumerator>d__1<int>
    // System.Linq.OrderedEnumerable.<GetEnumerator>d__1<object>
    // System.Linq.OrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>,float>
    // System.Linq.OrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>,long>
    // System.Linq.OrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Linq.OrderedEnumerable<int,byte>
    // System.Linq.OrderedEnumerable<int,int>
    // System.Linq.OrderedEnumerable<int>
    // System.Linq.OrderedEnumerable<object,System.DateTime>
    // System.Linq.OrderedEnumerable<object,byte>
    // System.Linq.OrderedEnumerable<object,int>
    // System.Linq.OrderedEnumerable<object,long>
    // System.Linq.OrderedEnumerable<object,uint>
    // System.Linq.OrderedEnumerable<object>
    // System.Linq.Set<int>
    // System.Nullable<CellInfo>
    // System.Nullable<ChatExtraData>
    // System.Nullable<Jace.Tokenizer.Token>
    // System.Nullable<UnityEngine.Color>
    // System.Nullable<UnityEngine.Vector2>
    // System.Nullable<byte>
    // System.Nullable<int>
    // System.Nullable<object>
    // System.Predicate<HourMinute>
    // System.Predicate<InGameDownLoad.Reward>
    // System.Nullable<uint>
    // System.Predicate<Cysharp.Threading.Tasks.UniTask>
    // System.Predicate<Int2>
    // System.Predicate<Item>
    // System.Predicate<Jace.Execution.ParameterInfo>
    // System.Predicate<Jace.Tokenizer.Token>
    // System.Predicate<LanguageVerify.MatchString>
    // System.Predicate<OperationTime>
    // System.Predicate<RoleParticularModel.AlchemyDrug>
    // System.Predicate<RoleParticularModel.HorseInfo>
    // System.Predicate<RoleParticularModel.PetInfo>
    // System.Predicate<ServerData>
    // System.Predicate<ServerDataCouple>
    // System.Predicate<ShopItemInfo>
    // System.Predicate<System.Collections.Generic.KeyValuePair<int,int>>
    // System.Predicate<System.Collections.Generic.KeyValuePair<object,object>>
    // System.Predicate<System.ValueTuple<ulong,object>>
    // System.Predicate<TimeMgr.Syntony>
    // System.Predicate<UnityEngine.EventSystems.RaycastResult>
    // System.Predicate<UnityEngine.Rect>
    // System.Predicate<UnityEngine.UIVertex>
    // System.Predicate<UnityEngine.Vector3>
    // System.Predicate<WindowConfig.OrderTable>
    // System.Predicate<byte>
    // System.Predicate<double>
    // System.Predicate<int>
    // System.Predicate<long>
@@ -1022,149 +1217,395 @@
    // System.Predicate<uint>
    // System.Predicate<ulong>
    // System.Predicate<ushort>
    // System.Progress<float>
    // System.ReadOnlySpan.Enumerator<UnityEngine.jvalue>
    // System.ReadOnlySpan.Enumerator<int>
    // System.ReadOnlySpan<UnityEngine.jvalue>
    // System.ReadOnlySpan<int>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,byte>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,int>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.ValueTuple<byte,object>>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<byte>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<int>
    // System.Runtime.CompilerServices.AsyncTaskMethodBuilder<object>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,byte>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,int>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<System.ValueTuple<byte,object>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<byte>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<int>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter<object>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,byte>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,int>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<System.ValueTuple<byte,object>>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<byte>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<int>
    // System.Runtime.CompilerServices.ConfiguredTaskAwaitable<object>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,byte>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,int>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<System.ValueTuple<byte,object>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<byte>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<int>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter<object>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,byte>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,int>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<System.ValueTuple<byte,object>>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<byte>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<int>
    // System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable<object>
    // System.Runtime.CompilerServices.ReadOnlyCollectionBuilder.Enumerator<object>
    // System.Runtime.CompilerServices.ReadOnlyCollectionBuilder<object>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,byte>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,int>>
    // System.Runtime.CompilerServices.TaskAwaiter<System.ValueTuple<byte,object>>
    // System.Runtime.CompilerServices.TaskAwaiter<byte>
    // System.Runtime.CompilerServices.TaskAwaiter<int>
    // System.Runtime.CompilerServices.TaskAwaiter<object>
    // System.Runtime.CompilerServices.TrueReadOnlyCollection<object>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,byte>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,int>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<System.ValueTuple<byte,object>>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<byte>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<int>
    // System.Runtime.CompilerServices.ValueTaskAwaiter<object>
    // System.Span.Enumerator<UnityEngine.jvalue>
    // System.Span.Enumerator<int>
    // System.Span<UnityEngine.jvalue>
    // System.Span<int>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<byte>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<int>
    // System.Threading.Tasks.ContinuationTaskFromResultTask<object>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.Sources.IValueTaskSource<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.Sources.IValueTaskSource<byte>
    // System.Threading.Tasks.Sources.IValueTaskSource<int>
    // System.Threading.Tasks.Sources.IValueTaskSource<object>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.Task<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.Task<byte>
    // System.Threading.Tasks.Task<int>
    // System.Threading.Tasks.Task<object>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<byte>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<int>
    // System.Threading.Tasks.TaskFactory.<>c__DisplayClass35_0<object>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.TaskFactory<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.TaskFactory<byte>
    // System.Threading.Tasks.TaskFactory<int>
    // System.Threading.Tasks.TaskFactory<object>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<byte>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<int>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c<object>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<byte>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<int>
    // System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask<object>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,byte>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,int>>
    // System.Threading.Tasks.ValueTask<System.ValueTuple<byte,object>>
    // System.Threading.Tasks.ValueTask<byte>
    // System.Threading.Tasks.ValueTask<int>
    // System.Threading.Tasks.ValueTask<object>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,byte>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,int>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,System.ValueTuple<byte,object>>>
    // System.ValueTuple<byte,System.ValueTuple<byte,byte>>
    // System.ValueTuple<byte,System.ValueTuple<byte,int>>
    // System.ValueTuple<byte,System.ValueTuple<byte,object>>
    // System.ValueTuple<byte,byte>
    // System.ValueTuple<byte,int>
    // System.ValueTuple<byte,object>
    // System.ValueTuple<ulong,object>
    // UnityEngine.EventSystems.ExecuteEvents.EventFunction<object>
    // UnityEngine.Events.InvokableCall<UnityEngine.Vector2>
    // UnityEngine.Events.InvokableCall<byte>
@@ -1187,107 +1628,69 @@
    public void RefMethods()
    {
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AdaptiveLayout.<Co_DelayShow>d__22>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AdaptiveLayout.<Co_DelayShow>d__22&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AssetBundleUtility.<Co_DoLoadAsset>d__24>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AssetBundleUtility.<Co_DoLoadAsset>d__24&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AssetBundleUtility.<Initialize>d__16>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AssetBundleUtility.<Initialize>d__16&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,ConfigManager.<InitConfigs>d__6>(Cysharp.Threading.Tasks.UniTask.Awaiter&,ConfigManager.<InitConfigs>d__6&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,CyclicScroll.<Co_StepByStepAppear>d__68>(Cysharp.Threading.Tasks.UniTask.Awaiter&,CyclicScroll.<Co_StepByStepAppear>d__68&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DownloadTask.<Co_DownloadFile>d__40>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DownloadTask.<Co_DownloadFile>d__40&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DownloadTask.<Co_GetHeader>d__39>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DownloadTask.<Co_GetHeader>d__39&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,EffectPlayer.<PlayAsync>d__34>(Cysharp.Threading.Tasks.UniTask.Awaiter&,EffectPlayer.<PlayAsync>d__34&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,EquipExchangeCell.<RefreshEffect>d__31>(Cysharp.Threading.Tasks.UniTask.Awaiter&,EquipExchangeCell.<RefreshEffect>d__31&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,EquipTipWin.<RefreshEffect>d__21>(Cysharp.Threading.Tasks.UniTask.Awaiter&,EquipTipWin.<RefreshEffect>d__21&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,GameObjectPoolManager.<CheckPoolUsage>d__13>(Cysharp.Threading.Tasks.UniTask.Awaiter&,GameObjectPoolManager.<CheckPoolUsage>d__13&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroCallResultCell.<DisplayAsync>d__7>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroCallResultCell.<DisplayAsync>d__7&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroCallResultWin.<MoveToNextState>d__35>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroCallResultWin.<MoveToNextState>d__35&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroGiftWashWin.<SendPack>d__19>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroGiftWashWin.<SendPack>d__19&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroPosWin.<RunTaskAsync>d__46>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroPosWin.<RunTaskAsync>d__46&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,HeroScenePosCell.<DelayShow>d__13>(Cysharp.Threading.Tasks.UniTask.Awaiter&,HeroScenePosCell.<DelayShow>d__13&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,LayoutElementSizeClamp.<UpdateRect>d__9>(Cysharp.Threading.Tasks.UniTask.Awaiter&,LayoutElementSizeClamp.<UpdateRect>d__9&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,SmallTipWin.<UpdatePos>d__10>(Cysharp.Threading.Tasks.UniTask.Awaiter&,SmallTipWin.<UpdatePos>d__10&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,StageManager.<OnLoading>d__9>(Cysharp.Threading.Tasks.UniTask.Awaiter&,StageManager.<OnLoading>d__9&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,SystemSetting.<Co_WaitFewMinute>d__35>(Cysharp.Threading.Tasks.UniTask.Awaiter&,SystemSetting.<Co_WaitFewMinute>d__35&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UIBase.<ApplyClickEmptySpaceClose>d__34>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UIBase.<ApplyClickEmptySpaceClose>d__34&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UniTaskExtension.<DelayFrameInternal>d__2>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UniTaskExtension.<DelayFrameInternal>d__2&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UniTaskExtension.<DelayTimeInternal>d__8>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UniTaskExtension.<DelayTimeInternal>d__8&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,AssetBundleUtility.<Co_DoLoadAsset>d__23>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,AssetBundleUtility.<Co_DoLoadAsset>d__23&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,AssetBundleUtility.<Initialize>d__16>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,AssetBundleUtility.<Initialize>d__16&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter,AssetBundleUtility.<Co_DoLoadAsset>d__23>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter&,AssetBundleUtility.<Co_DoLoadAsset>d__23&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter,DownloadTask.<Co_GetHeader>d__39>(Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter&,DownloadTask.<Co_GetHeader>d__39&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,AssetBundleUtility.<Co_DoLoadAsset>d__23>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,AssetBundleUtility.<Co_DoLoadAsset>d__23&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,ChatCenter.<Co_CheckAfterCollect>d__59>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,ChatCenter.<Co_CheckAfterCollect>d__59&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,ChatSendComponent.<Co_ClientBan>d__32>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,ChatSendComponent.<Co_ClientBan>d__32&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,EquipOnMainUI.<FlyToEquipCell>d__12>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,EquipOnMainUI.<FlyToEquipCell>d__12&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,Main.<InitManagers>d__4>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,Main.<InitManagers>d__4&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,ServerTipDetails.<Co_StageLoadFinish>d__4>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,ServerTipDetails.<Co_StageLoadFinish>d__4&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,StageManager.<OnLoading>d__9>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,StageManager.<OnLoading>d__9&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,SysNotifyMgr.<Co_Instance>d__11>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,SysNotifyMgr.<Co_Instance>d__11&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,AssetBundleUtility.<Co_LoadAssetBundle>d__21>(Cysharp.Threading.Tasks.UniTask.Awaiter&,AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter,AssetBundleUtility.<Co_LoadAssetBundle>d__21>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter&,AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,AssetBundleUtility.<Co_LoadAssetBundle>d__21>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AdaptiveLayout.<Co_DelayShow>d__22>(AdaptiveLayout.<Co_DelayShow>d__22&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_DoLoadAsset>d__23>(AssetBundleUtility.<Co_DoLoadAsset>d__23&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_DoLoadAsset>d__24>(AssetBundleUtility.<Co_DoLoadAsset>d__24&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22>(AssetBundleUtility.<Co_LoadAssetBundleDependenice>d__22&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Co_LoadMainfestFile>d__17>(AssetBundleUtility.<Co_LoadMainfestFile>d__17&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<AssetBundleUtility.<Initialize>d__16>(AssetBundleUtility.<Initialize>d__16&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ChatCenter.<Co_CheckAfterCollect>d__59>(ChatCenter.<Co_CheckAfterCollect>d__59&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ChatSendComponent.<Co_ClientBan>d__32>(ChatSendComponent.<Co_ClientBan>d__32&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ConfigManager.<InitConfigs>d__6>(ConfigManager.<InitConfigs>d__6&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ConfigManager.<LoadConfig>d__9<object>>(ConfigManager.<LoadConfig>d__9<object>&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ConfigManager.<LoadConfigs>d__7>(ConfigManager.<LoadConfigs>d__7&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<CyclicScroll.<Co_StepByStepAppear>d__68>(CyclicScroll.<Co_StepByStepAppear>d__68&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33>(DownLoadAndDiscompressTask.<Co_StartDownLoad>d__33&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownloadTask.<Co_DownloadFile>d__40>(DownloadTask.<Co_DownloadFile>d__40&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownloadTask.<Co_GetHeader>d__39>(DownloadTask.<Co_GetHeader>d__39&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<DownloadTask.<Move>d__41>(DownloadTask.<Move>d__41&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EffectPlayer.<PlayAsync>d__34>(EffectPlayer.<PlayAsync>d__34&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EquipExchangeCell.<RefreshEffect>d__31>(EquipExchangeCell.<RefreshEffect>d__31&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EquipOnMainUI.<FlyToEquipCell>d__12>(EquipOnMainUI.<FlyToEquipCell>d__12&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<EquipTipWin.<RefreshEffect>d__21>(EquipTipWin.<RefreshEffect>d__21&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<GameObjectPoolManager.<CheckPoolUsage>d__13>(GameObjectPoolManager.<CheckPoolUsage>d__13&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroCallResultCell.<DisplayAsync>d__7>(HeroCallResultCell.<DisplayAsync>d__7&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroCallResultWin.<MoveToNextState>d__35>(HeroCallResultWin.<MoveToNextState>d__35&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroGiftWashWin.<SendPack>d__19>(HeroGiftWashWin.<SendPack>d__19&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroPosWin.<RunTaskAsync>d__46>(HeroPosWin.<RunTaskAsync>d__46&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<HeroScenePosCell.<DelayShow>d__13>(HeroScenePosCell.<DelayShow>d__13&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<LayoutElementSizeClamp.<UpdateRect>d__9>(LayoutElementSizeClamp.<UpdateRect>d__9&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<Main.<InitManagers>d__4>(Main.<InitManagers>d__4&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<ServerTipDetails.<Co_StageLoadFinish>d__4>(ServerTipDetails.<Co_StageLoadFinish>d__4&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<SmallTipWin.<UpdatePos>d__10>(SmallTipWin.<UpdatePos>d__10&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<StageManager.<OnLoading>d__9>(StageManager.<OnLoading>d__9&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<SysNotifyMgr.<Co_Instance>d__11>(SysNotifyMgr.<Co_Instance>d__11&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<SystemSetting.<Co_WaitFewMinute>d__35>(SystemSetting.<Co_WaitFewMinute>d__35&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<UIBase.<ApplyClickEmptySpaceClose>d__34>(UIBase.<ApplyClickEmptySpaceClose>d__34&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<UniTaskExtension.<DelayFrameInternal>d__2>(UniTaskExtension.<DelayFrameInternal>d__2&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<UniTaskExtension.<DelayTimeInternal>d__8>(UniTaskExtension.<DelayTimeInternal>d__8&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.Start<AssetBundleUtility.<Co_LoadAssetBundle>d__21>(AssetBundleUtility.<Co_LoadAssetBundle>d__21&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,StageManager.<ToGameScene>d__8>(Cysharp.Threading.Tasks.UniTask.Awaiter&,StageManager.<ToGameScene>d__8&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,StageManager.<ToLoginScene>d__6>(Cysharp.Threading.Tasks.UniTask.Awaiter&,StageManager.<ToLoginScene>d__6&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.Start<StageManager.<ToGameScene>d__8>(StageManager.<ToGameScene>d__8&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.Start<StageManager.<ToLoginScene>d__6>(StageManager.<ToLoginScene>d__6&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<byte>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<byte>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleRequestAwaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.UnityWebRequestAsyncOperationAwaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,object>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<System.ValueTuple<byte,object>>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<int>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AssetBundleCreateRequestAwaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.ResourceRequestAwaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,object>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter<object>,object>(System.Runtime.CompilerServices.TaskAwaiter<object>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder.Start<object>(object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<System.ValueTuple<byte,object>>.Start<object>(object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<byte>.Start<object>(object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<int>.Start<object>(object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder<object>.Start<object>(object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<byte>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<byte>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UnityAsyncExtensions.AsyncOperationAwaiter,object>(Cysharp.Threading.Tasks.UnityAsyncExtensions.AsyncOperationAwaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.YieldAwaitable.Awaiter,object>(Cysharp.Threading.Tasks.YieldAwaitable.Awaiter&,object&)
        // System.Void Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder.Start<object>(object&)
        // Cysharp.Threading.Tasks.Internal.StateTuple<Cysharp.Threading.Tasks.UniTask.Awaiter<object>> Cysharp.Threading.Tasks.Internal.StateTuple.Create<Cysharp.Threading.Tasks.UniTask.Awaiter<object>>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>)
        // Cysharp.Threading.Tasks.UniTask Cysharp.Threading.Tasks.UniTaskExtensions.ContinueWith<byte>(Cysharp.Threading.Tasks.UniTask<byte>,System.Action<byte>)
        // Cysharp.Threading.Tasks.UniTask Cysharp.Threading.Tasks.UniTaskExtensions.ContinueWith<object>(Cysharp.Threading.Tasks.UniTask<object>,System.Action<object>)
        // Cysharp.Threading.Tasks.UniTask<object> Cysharp.Threading.Tasks.UniTaskExtensions.ContinueWith<object,object>(Cysharp.Threading.Tasks.UniTask<object>,System.Func<object,object>)
        // System.Void Cysharp.Threading.Tasks.UniTaskExtensions.Forget<object>(Cysharp.Threading.Tasks.UniTask<object>)
        // object DG.Tweening.TweenExtensions.Pause<object>(object)
        // object DG.Tweening.TweenExtensions.Play<object>(object)
        // object DG.Tweening.TweenSettingsExtensions.OnComplete<object>(object,DG.Tweening.TweenCallback)
        // object DG.Tweening.TweenSettingsExtensions.SetAutoKill<object>(object,bool)
        // object DG.Tweening.TweenSettingsExtensions.SetEase<object>(object,DG.Tweening.Ease)
        // object DG.Tweening.TweenSettingsExtensions.SetEase<object>(object,UnityEngine.AnimationCurve)
        // ItemTipUtility.CustomItemPlus LitJson.JsonMapper.ToObject<ItemTipUtility.CustomItemPlus>(string)
        // LocalChatHistory.LocalChat LitJson.JsonMapper.ToObject<LocalChatHistory.LocalChat>(string)
        // LocalChatHistory.LocalFriendChat LitJson.JsonMapper.ToObject<LocalChatHistory.LocalFriendChat>(string)
        // object DG.Tweening.TweenSettingsExtensions.SetTarget<object>(object,object)
        // UnityEngine.Vector2 LitJson.JsonMapper.ToObject<UnityEngine.Vector2>(string)
        // object LitJson.JsonMapper.ToObject<object>(string)
        // object System.Activator.CreateInstance<object>()
        // object[] System.Array.Empty<object>()
        // bool System.Array.Exists<int>(int[],System.Predicate<int>)
        // bool System.Array.Exists<ushort>(ushort[],System.Predicate<ushort>)
        // object[] System.Array.FindAll<object>(object[],System.Predicate<object>)
        // int System.Array.FindIndex<int>(int[],System.Predicate<int>)
        // int System.Array.FindIndex<int>(int[],int,int,System.Predicate<int>)
        // int System.Array.FindIndex<ushort>(ushort[],System.Predicate<ushort>)
        // int System.Array.FindIndex<ushort>(ushort[],int,int,System.Predicate<ushort>)
        // int System.Array.IndexOf<int>(int[],int)
        // int System.Array.IndexOf<object>(object[],object)
        // int System.Array.IndexOf<ushort>(ushort[],ushort)
        // int System.Array.IndexOfImpl<int>(int[],int,int,int)
        // int System.Array.IndexOfImpl<object>(object[],object,int,int)
        // int System.Array.IndexOfImpl<ushort>(ushort[],ushort,int,int)
        // System.Void System.Array.Resize<byte>(byte[]&,int)
        // System.Void System.Array.Resize<int>(int[]&,int)
        // System.Void System.Array.Resize<object>(object[]&,int)
        // System.Void System.Array.Resize<uint>(uint[]&,int)
        // System.Void System.Array.Sort<object>(object[],System.Comparison<object>)
        // bool System.Array.TrueForAll<byte>(byte[],System.Predicate<byte>)
        // System.Collections.ObjectModel.ReadOnlyCollection<object> System.Dynamic.Utils.CollectionExtensions.ToReadOnly<object>(System.Collections.Generic.IEnumerable<object>)
        // int System.Enum.Parse<int>(string)
        // int System.Enum.Parse<int>(string,bool)
@@ -1299,8 +1702,8 @@
        // bool System.Linq.Enumerable.Any<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,bool>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Cast<object>(System.Collections.IEnumerable)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.CastIterator<object>(System.Collections.IEnumerable)
        // bool System.Linq.Enumerable.Contains<int>(System.Collections.Generic.IEnumerable<int>,int)
        // bool System.Linq.Enumerable.Contains<int>(System.Collections.Generic.IEnumerable<int>,int,System.Collections.Generic.IEqualityComparer<int>)
        // System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Concat<int>(System.Collections.Generic.IEnumerable<int>,System.Collections.Generic.IEnumerable<int>)
        // System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.ConcatIterator<int>(System.Collections.Generic.IEnumerable<int>,System.Collections.Generic.IEnumerable<int>)
        // int System.Linq.Enumerable.Count<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,bool>)
        // System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Distinct<int>(System.Collections.Generic.IEnumerable<int>)
        // System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.DistinctIterator<int>(System.Collections.Generic.IEnumerable<int>,System.Collections.Generic.IEqualityComparer<int>)
@@ -1310,19 +1713,39 @@
        // float System.Linq.Enumerable.Last<float>(System.Collections.Generic.IEnumerable<float>)
        // int System.Linq.Enumerable.Last<int>(System.Collections.Generic.IEnumerable<int>)
        // object System.Linq.Enumerable.Last<object>(System.Collections.Generic.IEnumerable<object>)
        // System.Linq.IOrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>> System.Linq.Enumerable.OrderBy<System.Collections.Generic.KeyValuePair<object,object>,float>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>,System.Func<System.Collections.Generic.KeyValuePair<object,object>,float>)
        // System.Linq.IOrderedEnumerable<System.Collections.Generic.KeyValuePair<object,object>> System.Linq.Enumerable.OrderBy<System.Collections.Generic.KeyValuePair<object,object>,long>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>,System.Func<System.Collections.Generic.KeyValuePair<object,object>,long>)
        // System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderBy<int,byte>(System.Collections.Generic.IEnumerable<int>,System.Func<int,byte>)
        // System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderBy<int,int>(System.Collections.Generic.IEnumerable<int>,System.Func<int,int>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderBy<object,byte>(System.Collections.Generic.IEnumerable<object>,System.Func<object,byte>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderBy<object,int>(System.Collections.Generic.IEnumerable<object>,System.Func<object,int>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderBy<object,uint>(System.Collections.Generic.IEnumerable<object>,System.Func<object,uint>)
        // System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderByDescending<int,byte>(System.Collections.Generic.IEnumerable<int>,System.Func<int,byte>)
        // System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.OrderByDescending<int,int>(System.Collections.Generic.IEnumerable<int>,System.Func<int,int>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderByDescending<object,System.DateTime>(System.Collections.Generic.IEnumerable<object>,System.Func<object,System.DateTime>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderByDescending<object,int>(System.Collections.Generic.IEnumerable<object>,System.Func<object,int>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.OrderByDescending<object,long>(System.Collections.Generic.IEnumerable<object>,System.Func<object,long>)
        // System.Collections.Generic.IEnumerable<double> System.Linq.Enumerable.Select<object,double>(System.Collections.Generic.IEnumerable<object>,System.Func<object,double>)
        // System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Select<object,int>(System.Collections.Generic.IEnumerable<object>,System.Func<object,int>)
        // System.Collections.Generic.IEnumerable<long> System.Linq.Enumerable.Select<object,long>(System.Collections.Generic.IEnumerable<object>,System.Func<object,long>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<System.Collections.Generic.KeyValuePair<int,int>,object>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,int>>,System.Func<System.Collections.Generic.KeyValuePair<int,int>,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<System.Collections.Generic.KeyValuePair<object,object>,object>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>,System.Func<System.Collections.Generic.KeyValuePair<object,object>,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<double,object>(System.Collections.Generic.IEnumerable<double>,System.Func<double,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<int,object>(System.Collections.Generic.IEnumerable<int>,System.Func<int,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Select<object,object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,object>)
        // System.Collections.Generic.IEnumerable<ushort> System.Linq.Enumerable.Select<object,ushort>(System.Collections.Generic.IEnumerable<object>,System.Func<object,ushort>)
        // long System.Linq.Enumerable.Sum<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,long>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Take<object>(System.Collections.Generic.IEnumerable<object>,int)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.TakeIterator<object>(System.Collections.Generic.IEnumerable<object>,int)
        // System.Linq.IOrderedEnumerable<int> System.Linq.Enumerable.ThenBy<int,int>(System.Linq.IOrderedEnumerable<int>,System.Func<int,int>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.ThenBy<object,byte>(System.Linq.IOrderedEnumerable<object>,System.Func<object,byte>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.ThenBy<object,int>(System.Linq.IOrderedEnumerable<object>,System.Func<object,int>)
        // System.Linq.IOrderedEnumerable<object> System.Linq.Enumerable.ThenBy<object,uint>(System.Linq.IOrderedEnumerable<object>,System.Func<object,uint>)
        // Jace.Execution.ParameterInfo[] System.Linq.Enumerable.ToArray<Jace.Execution.ParameterInfo>(System.Collections.Generic.IEnumerable<Jace.Execution.ParameterInfo>)
        // object[] System.Linq.Enumerable.ToArray<object>(System.Collections.Generic.IEnumerable<object>)
        // ushort[] System.Linq.Enumerable.ToArray<ushort>(System.Collections.Generic.IEnumerable<ushort>)
        // System.Collections.Generic.List<Item> System.Linq.Enumerable.ToList<Item>(System.Collections.Generic.IEnumerable<Item>)
        // System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<object,object>> System.Linq.Enumerable.ToList<System.Collections.Generic.KeyValuePair<object,object>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<object,object>>)
        // System.Collections.Generic.List<double> System.Linq.Enumerable.ToList<double>(System.Collections.Generic.IEnumerable<double>)
        // System.Collections.Generic.List<int> System.Linq.Enumerable.ToList<int>(System.Collections.Generic.IEnumerable<int>)
        // System.Collections.Generic.List<object> System.Linq.Enumerable.ToList<object>(System.Collections.Generic.IEnumerable<object>)
@@ -1330,19 +1753,25 @@
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Where<object>(System.Collections.Generic.IEnumerable<object>,System.Func<object,bool>)
        // System.Collections.Generic.IEnumerable<double> System.Linq.Enumerable.Iterator<object>.Select<double>(System.Func<object,double>)
        // System.Collections.Generic.IEnumerable<int> System.Linq.Enumerable.Iterator<object>.Select<int>(System.Func<object,int>)
        // System.Collections.Generic.IEnumerable<long> System.Linq.Enumerable.Iterator<object>.Select<long>(System.Func<object,long>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<int,int>>.Select<object>(System.Func<System.Collections.Generic.KeyValuePair<int,int>,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<System.Collections.Generic.KeyValuePair<object,object>>.Select<object>(System.Func<System.Collections.Generic.KeyValuePair<object,object>,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<double>.Select<object>(System.Func<double,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<int>.Select<object>(System.Func<int,object>)
        // System.Collections.Generic.IEnumerable<object> System.Linq.Enumerable.Iterator<object>.Select<object>(System.Func<object,object>)
        // System.Collections.Generic.IEnumerable<ushort> System.Linq.Enumerable.Iterator<object>.Select<ushort>(System.Func<object,ushort>)
        // System.Linq.Expressions.Expression<object> System.Linq.Expressions.Expression.Lambda<object>(System.Linq.Expressions.Expression,System.Linq.Expressions.ParameterExpression[])
        // System.Linq.Expressions.Expression<object> System.Linq.Expressions.Expression.Lambda<object>(System.Linq.Expressions.Expression,bool,System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>)
        // System.Linq.Expressions.Expression<object> System.Linq.Expressions.Expression.Lambda<object>(System.Linq.Expressions.Expression,string,bool,System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression>)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,DamageContent.<SetDamage>d__7>(Cysharp.Threading.Tasks.UniTask.Awaiter&,DamageContent.<SetDamage>d__7&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,GroupButtonExManager.<ExecuteNextFrame>d__10>(Cysharp.Threading.Tasks.UniTask.Awaiter&,GroupButtonExManager.<ExecuteNextFrame>d__10&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,UIBase.<ExecuteNextFrame>d__36>(Cysharp.Threading.Tasks.UniTask.Awaiter&,UIBase.<ExecuteNextFrame>d__36&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<DamageContent.<SetDamage>d__7>(DamageContent.<SetDamage>d__7&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<GroupButtonExManager.<ExecuteNextFrame>d__10>(GroupButtonExManager.<ExecuteNextFrame>d__10&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<UIBase.<ExecuteNextFrame>d__36>(UIBase.<ExecuteNextFrame>d__36&)
        // System.Linq.IOrderedEnumerable<int> System.Linq.IOrderedEnumerable<int>.CreateOrderedEnumerable<int>(System.Func<int,int>,System.Collections.Generic.IComparer<int>,bool)
        // System.Linq.IOrderedEnumerable<object> System.Linq.IOrderedEnumerable<object>.CreateOrderedEnumerable<byte>(System.Func<object,byte>,System.Collections.Generic.IComparer<byte>,bool)
        // System.Linq.IOrderedEnumerable<object> System.Linq.IOrderedEnumerable<object>.CreateOrderedEnumerable<int>(System.Func<object,int>,System.Collections.Generic.IComparer<int>,bool)
        // System.Linq.IOrderedEnumerable<object> System.Linq.IOrderedEnumerable<object>.CreateOrderedEnumerable<uint>(System.Func<object,uint>,System.Collections.Generic.IComparer<uint>,bool)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter,object>(Cysharp.Threading.Tasks.UniTask.Awaiter&,object&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<byte>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<byte>&,object&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<Cysharp.Threading.Tasks.UniTask.Awaiter<object>,object>(Cysharp.Threading.Tasks.UniTask.Awaiter<object>&,object&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter,object>(System.Runtime.CompilerServices.TaskAwaiter&,object&)
        // System.Void System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start<object>(object&)
        // object& System.Runtime.CompilerServices.Unsafe.As<object,object>(object&)
        // System.Void* System.Runtime.CompilerServices.Unsafe.AsPointer<object>(object&)
        // object UnityEngine.AndroidJNIHelper.ConvertFromJNIArray<object>(System.IntPtr)
@@ -1375,16 +1804,26 @@
        // System.Void UnityEngine.GameObject.GetComponentsInChildren<object>(bool,System.Collections.Generic.List<object>)
        // object[] UnityEngine.GameObject.GetComponentsInChildren<object>()
        // object[] UnityEngine.GameObject.GetComponentsInChildren<object>(bool)
        // object UnityEngine.JsonUtility.FromJson<object>(string)
        // object[] UnityEngine.Object.FindObjectsOfType<object>()
        // object UnityEngine.Object.Instantiate<object>(object)
        // object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform)
        // object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Transform,bool)
        // object UnityEngine.Object.Instantiate<object>(object,UnityEngine.Vector3,UnityEngine.Quaternion)
        // object UnityEngine.Resources.Load<object>(string)
        // object[] UnityEngine.Resources.ConvertObjects<object>(UnityEngine.Object[])
        // UnityEngine.ResourceRequest UnityEngine.Resources.LoadAsync<object>(string)
        // object UnityEngine.ScriptableObject.CreateInstance<object>()
        // object UnityEngine._AndroidJNIHelper.ConvertFromJNIArray<object>(System.IntPtr)
        // System.IntPtr UnityEngine._AndroidJNIHelper.GetFieldID<object>(System.IntPtr,string,bool)
        // System.IntPtr UnityEngine._AndroidJNIHelper.GetMethodID<object>(System.IntPtr,string,object[],bool)
        // string UnityEngine._AndroidJNIHelper.GetSignature<object>(object[])
        // object YooAsset.AssetHandle.GetAssetObject<object>()
        // YooAsset.AllAssetsHandle YooAsset.ResourcePackage.LoadAllAssetsAsync<object>(string,uint)
        // YooAsset.AllAssetsHandle YooAsset.ResourcePackage.LoadAllAssetsSync<object>(string)
        // YooAsset.AssetHandle YooAsset.ResourcePackage.LoadAssetAsync<object>(string,uint)
        // YooAsset.SubAssetsHandle YooAsset.ResourcePackage.LoadSubAssetsAsync<object>(string,uint)
        // string string.Join<int>(string,System.Collections.Generic.IEnumerable<int>)
        // string string.Join<uint>(string,System.Collections.Generic.IEnumerable<uint>)
        // string string.JoinCore<int>(System.Char*,int,System.Collections.Generic.IEnumerable<int>)
        // string string.JoinCore<uint>(System.Char*,int,System.Collections.Generic.IEnumerable<uint>)
    }
}
Assets/HybridCLRGenerate/link.xml
@@ -35,11 +35,16 @@
    <type fullname="HttpBehaviour" preserve="all" />
    <type fullname="HttpRequest" preserve="all" />
    <type fullname="Launch" preserve="all" />
    <type fullname="LaunchCommon.AssetVersion" preserve="all" />
    <type fullname="LaunchCommon.InitialFunctionConfig" preserve="all" />
    <type fullname="LaunchUtility" preserve="all" />
    <type fullname="LitJson.JsonData" preserve="all" />
    <type fullname="LitJson.JsonMapper" preserve="all" />
    <type fullname="LocalResManager" preserve="all" />
    <type fullname="LocalSave" preserve="all" />
    <type fullname="LogicEngine" preserve="all" />
    <type fullname="ProjSG.Resource.IYooAssetBridge" preserve="all" />
    <type fullname="ProjSG.Resource.YooAssetBridgeHolder" preserve="all" />
    <type fullname="ResourcesPath" preserve="all" />
    <type fullname="SingletonMonobehaviour`1" preserve="all" />
    <type fullname="Singleton`1" preserve="all" />
@@ -51,25 +56,15 @@
    <type fullname="System.Collections.Generic.Queue`1" preserve="all" />
    <type fullname="System.Collections.Generic.Queue`1/Enumerator" preserve="all" />
    <type fullname="System.Collections.Generic.Stack`1" preserve="all" />
    <type fullname="System.Collections.Generic.Stack`1/Enumerator" preserve="all" />
    <type fullname="System.Collections.Specialized.OrderedDictionary" preserve="all" />
    <type fullname="System.ComponentModel.EditorBrowsableAttribute" preserve="all" />
    <type fullname="System.ComponentModel.EditorBrowsableState" preserve="all" />
    <type fullname="System.Diagnostics.Process" preserve="all" />
    <type fullname="System.Diagnostics.ProcessStartInfo" preserve="all" />
    <type fullname="System.Diagnostics.Stopwatch" preserve="all" />
    <type fullname="System.Net.Dns" preserve="all" />
    <type fullname="System.Net.EndPoint" preserve="all" />
    <type fullname="System.Net.IPAddress" preserve="all" />
    <type fullname="System.Net.IPEndPoint" preserve="all" />
    <type fullname="System.Net.NetworkInformation.NetworkInterface" preserve="all" />
    <type fullname="System.Net.NetworkInformation.PhysicalAddress" preserve="all" />
    <type fullname="System.Net.ServicePointManager" preserve="all" />
    <type fullname="System.Net.Sockets.AddressFamily" preserve="all" />
    <type fullname="System.Net.Sockets.ProtocolType" preserve="all" />
    <type fullname="System.Net.Sockets.Socket" preserve="all" />
    <type fullname="System.Net.Sockets.SocketFlags" preserve="all" />
    <type fullname="System.Net.Sockets.SocketShutdown" preserve="all" />
    <type fullname="System.Net.Sockets.SocketType" preserve="all" />
    <type fullname="System.Net.WebRequest" preserve="all" />
    <type fullname="System.Net.WebResponse" preserve="all" />
    <type fullname="System.Text.RegularExpressions.Capture" preserve="all" />
@@ -113,9 +108,12 @@
    <type fullname="Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskMethodBuilder`1" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.EnumeratorAsyncExtensions" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.PlayerLoopTiming" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UniTask" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UniTask/Awaiter" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UniTaskCancellationExtensions" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UniTaskCompletionSource" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UniTaskExtensions" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UniTaskVoid" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UniTask`1" preserve="all" />
@@ -123,9 +121,15 @@
    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/AssetBundleCreateRequestAwaiter" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/AssetBundleRequestAwaiter" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/AsyncOperationAwaiter" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/ResourceRequestAwaiter" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.UnityAsyncExtensions/UnityWebRequestAsyncOperationAwaiter" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.YieldAwaitable" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.YieldAwaitable/Awaiter" preserve="all" />
  </assembly>
  <assembly fullname="UniTask.YooAsset">
    <type fullname="Cysharp.Threading.Tasks.AsyncOperationBaseExtensions" preserve="all" />
    <type fullname="Cysharp.Threading.Tasks.HandleBaseExtensions" preserve="all" />
  </assembly>
  <assembly fullname="UnityEngine.AndroidJNIModule">
    <type fullname="UnityEngine.AndroidJavaClass" preserve="all" />
@@ -170,6 +174,7 @@
    <type fullname="UnityEngine.Events.UnityEventBase" preserve="all" />
    <type fullname="UnityEngine.Events.UnityEvent`1" preserve="all" />
    <type fullname="UnityEngine.ExecuteAlways" preserve="all" />
    <type fullname="UnityEngine.ExecuteInEditMode" preserve="all" />
    <type fullname="UnityEngine.FilterMode" preserve="all" />
    <type fullname="UnityEngine.GL" preserve="all" />
    <type fullname="UnityEngine.GameObject" preserve="all" />
@@ -178,6 +183,7 @@
    <type fullname="UnityEngine.HeaderAttribute" preserve="all" />
    <type fullname="UnityEngine.HideFlags" preserve="all" />
    <type fullname="UnityEngine.HideInInspector" preserve="all" />
    <type fullname="UnityEngine.ILogger" preserve="all" />
    <type fullname="UnityEngine.KeyCode" preserve="all" />
    <type fullname="UnityEngine.Keyframe" preserve="all" />
    <type fullname="UnityEngine.LayerMask" preserve="all" />
@@ -202,8 +208,11 @@
    <type fullname="UnityEngine.Renderer" preserve="all" />
    <type fullname="UnityEngine.RequireComponent" preserve="all" />
    <type fullname="UnityEngine.Resolution" preserve="all" />
    <type fullname="UnityEngine.ResourceRequest" preserve="all" />
    <type fullname="UnityEngine.Resources" preserve="all" />
    <type fullname="UnityEngine.RuntimePlatform" preserve="all" />
    <type fullname="UnityEngine.SceneManagement.LoadSceneMode" preserve="all" />
    <type fullname="UnityEngine.SceneManagement.LocalPhysicsMode" preserve="all" />
    <type fullname="UnityEngine.SceneManagement.SceneManager" preserve="all" />
    <type fullname="UnityEngine.Screen" preserve="all" />
    <type fullname="UnityEngine.ScriptableObject" preserve="all" />
@@ -225,7 +234,9 @@
    <type fullname="UnityEngine.TooltipAttribute" preserve="all" />
    <type fullname="UnityEngine.Transform" preserve="all" />
    <type fullname="UnityEngine.U2D.SpriteAtlas" preserve="all" />
    <type fullname="UnityEngine.U2D.SpriteAtlasManager" preserve="all" />
    <type fullname="UnityEngine.Vector2" preserve="all" />
    <type fullname="UnityEngine.Vector2Int" preserve="all" />
    <type fullname="UnityEngine.Vector3" preserve="all" />
    <type fullname="UnityEngine.Vector4" preserve="all" />
    <type fullname="UnityEngine.WaitForSeconds" preserve="all" />
@@ -233,13 +244,11 @@
  <assembly fullname="UnityEngine.IMGUIModule">
    <type fullname="UnityEngine.GUILayout" preserve="all" />
    <type fullname="UnityEngine.GUILayoutOption" preserve="all" />
    <type fullname="UnityEngine.GUIUtility" preserve="all" />
  </assembly>
  <assembly fullname="UnityEngine.InputLegacyModule">
    <type fullname="UnityEngine.Input" preserve="all" />
    <type fullname="UnityEngine.Touch" preserve="all" />
  </assembly>
  <assembly fullname="UnityEngine.JSONSerializeModule">
    <type fullname="UnityEngine.JsonUtility" preserve="all" />
  </assembly>
  <assembly fullname="UnityEngine.ParticleSystemModule">
    <type fullname="UnityEngine.ParticleSystem" preserve="all" />
@@ -255,6 +264,7 @@
  </assembly>
  <assembly fullname="UnityEngine.UI">
    <type fullname="UnityEngine.EventSystems.BaseEventData" preserve="all" />
    <type fullname="UnityEngine.EventSystems.BaseInputModule" preserve="all" />
    <type fullname="UnityEngine.EventSystems.EventSystem" preserve="all" />
    <type fullname="UnityEngine.EventSystems.EventTrigger" preserve="all" />
    <type fullname="UnityEngine.EventSystems.ExecuteEvents" preserve="all" />
@@ -273,6 +283,7 @@
    <type fullname="UnityEngine.EventSystems.PointerEventData" preserve="all" />
    <type fullname="UnityEngine.EventSystems.PointerEventData/InputButton" preserve="all" />
    <type fullname="UnityEngine.EventSystems.RaycastResult" preserve="all" />
    <type fullname="UnityEngine.EventSystems.StandaloneInputModule" preserve="all" />
    <type fullname="UnityEngine.EventSystems.UIBehaviour" preserve="all" />
    <type fullname="UnityEngine.UI.BaseMeshEffect" preserve="all" />
    <type fullname="UnityEngine.UI.Button" preserve="all" />
@@ -285,12 +296,14 @@
    <type fullname="UnityEngine.UI.DefaultControls/Resources" preserve="all" />
    <type fullname="UnityEngine.UI.Dropdown" preserve="all" />
    <type fullname="UnityEngine.UI.Dropdown/DropdownEvent" preserve="all" />
    <type fullname="UnityEngine.UI.Dropdown/OptionData" preserve="all" />
    <type fullname="UnityEngine.UI.Graphic" preserve="all" />
    <type fullname="UnityEngine.UI.GraphicRaycaster" preserve="all" />
    <type fullname="UnityEngine.UI.GridLayoutGroup" preserve="all" />
    <type fullname="UnityEngine.UI.HorizontalLayoutGroup" preserve="all" />
    <type fullname="UnityEngine.UI.HorizontalOrVerticalLayoutGroup" preserve="all" />
    <type fullname="UnityEngine.UI.Image" preserve="all" />
    <type fullname="UnityEngine.UI.Image/Type" preserve="all" />
    <type fullname="UnityEngine.UI.InputField" preserve="all" />
    <type fullname="UnityEngine.UI.InputField/OnChangeEvent" preserve="all" />
    <type fullname="UnityEngine.UI.InputField/OnValidateInput" preserve="all" />
@@ -298,7 +311,6 @@
    <type fullname="UnityEngine.UI.LayoutGroup" preserve="all" />
    <type fullname="UnityEngine.UI.LayoutRebuilder" preserve="all" />
    <type fullname="UnityEngine.UI.MaskableGraphic" preserve="all" />
    <type fullname="UnityEngine.UI.Outline" preserve="all" />
    <type fullname="UnityEngine.UI.RawImage" preserve="all" />
    <type fullname="UnityEngine.UI.ScrollRect" preserve="all" />
    <type fullname="UnityEngine.UI.ScrollRect/ScrollRectEvent" preserve="all" />
@@ -319,6 +331,7 @@
    <type fullname="UnityEngine.CanvasGroup" preserve="all" />
    <type fullname="UnityEngine.ICanvasRaycastFilter" preserve="all" />
    <type fullname="UnityEngine.RectTransformUtility" preserve="all" />
    <type fullname="UnityEngine.RenderMode" preserve="all" />
  </assembly>
  <assembly fullname="UnityEngine.UnityWebRequestModule">
    <type fullname="UnityEngine.Networking.DownloadHandler" preserve="all" />
@@ -329,12 +342,56 @@
  </assembly>
  <assembly fullname="UnityEngine.VideoModule">
    <type fullname="UnityEngine.Video.VideoClip" preserve="all" />
    <type fullname="UnityEngine.Video.VideoPlayer" preserve="all" />
    <type fullname="UnityEngine.Video.VideoPlayer/EventHandler" preserve="all" />
    <type fullname="UnityEngine.Video.VideoSource" preserve="all" />
  </assembly>
  <assembly fullname="YooAsset">
    <type fullname="YooAsset.AllAssetsHandle" preserve="all" />
    <type fullname="YooAsset.AssetHandle" preserve="all" />
    <type fullname="YooAsset.AssetInfo" preserve="all" />
    <type fullname="YooAsset.AsyncOperationBase" preserve="all" />
    <type fullname="YooAsset.DestroyOperation" preserve="all" />
    <type fullname="YooAsset.DownloaderOperation" preserve="all" />
    <type fullname="YooAsset.EOperationStatus" preserve="all" />
    <type fullname="YooAsset.EPlayMode" preserve="all" />
    <type fullname="YooAsset.FileSystemParameters" preserve="all" />
    <type fullname="YooAsset.HandleBase" preserve="all" />
    <type fullname="YooAsset.HostPlayModeParameters" preserve="all" />
    <type fullname="YooAsset.IDecryptionServices" preserve="all" />
    <type fullname="YooAsset.ILogger" preserve="all" />
    <type fullname="YooAsset.IRemoteServices" preserve="all" />
    <type fullname="YooAsset.IWebDecryptionServices" preserve="all" />
    <type fullname="YooAsset.InitializationOperation" preserve="all" />
    <type fullname="YooAsset.InitializeParameters" preserve="all" />
    <type fullname="YooAsset.OfflinePlayModeParameters" preserve="all" />
    <type fullname="YooAsset.RawFileHandle" preserve="all" />
    <type fullname="YooAsset.RequestPackageVersionOperation" preserve="all" />
    <type fullname="YooAsset.ResourceDownloaderOperation" preserve="all" />
    <type fullname="YooAsset.ResourcePackage" preserve="all" />
    <type fullname="YooAsset.SceneHandle" preserve="all" />
    <type fullname="YooAsset.SubAssetsHandle" preserve="all" />
    <type fullname="YooAsset.UnloadAllAssetsOperation" preserve="all" />
    <type fullname="YooAsset.UnloadUnusedAssetsOperation" preserve="all" />
    <type fullname="YooAsset.UpdatePackageManifestOperation" preserve="all" />
    <type fullname="YooAsset.WebPlayModeParameters" preserve="all" />
    <type fullname="YooAsset.YooAssets" preserve="all" />
  </assembly>
  <assembly fullname="endel.nativewebsocket">
    <type fullname="NativeWebSocket.WebSocket" preserve="all" />
    <type fullname="NativeWebSocket.WebSocketCloseCode" preserve="all" />
    <type fullname="NativeWebSocket.WebSocketCloseEventHandler" preserve="all" />
    <type fullname="NativeWebSocket.WebSocketErrorEventHandler" preserve="all" />
    <type fullname="NativeWebSocket.WebSocketMessageEventHandler" preserve="all" />
    <type fullname="NativeWebSocket.WebSocketOpenEventHandler" preserve="all" />
    <type fullname="NativeWebSocket.WebSocketState" preserve="all" />
  </assembly>
  <assembly fullname="mscorlib">
    <type fullname="System.Action" preserve="all" />
    <type fullname="System.Action`1" preserve="all" />
    <type fullname="System.Action`2" preserve="all" />
    <type fullname="System.Action`3" preserve="all" />
    <type fullname="System.Action`4" preserve="all" />
    <type fullname="System.Action`5" preserve="all" />
    <type fullname="System.Activator" preserve="all" />
    <type fullname="System.ArgumentException" preserve="all" />
@@ -357,6 +414,7 @@
    <type fullname="System.Collections.Generic.Dictionary`2/KeyCollection/Enumerator" preserve="all" />
    <type fullname="System.Collections.Generic.Dictionary`2/ValueCollection" preserve="all" />
    <type fullname="System.Collections.Generic.Dictionary`2/ValueCollection/Enumerator" preserve="all" />
    <type fullname="System.Collections.Generic.EqualityComparer`1" preserve="all" />
    <type fullname="System.Collections.Generic.ICollection`1" preserve="all" />
    <type fullname="System.Collections.Generic.IDictionary`2" preserve="all" />
    <type fullname="System.Collections.Generic.IEnumerable`1" preserve="all" />
@@ -366,6 +424,7 @@
    <type fullname="System.Collections.Generic.List`1" preserve="all" />
    <type fullname="System.Collections.Generic.List`1/Enumerator" preserve="all" />
    <type fullname="System.Collections.ICollection" preserve="all" />
    <type fullname="System.Collections.IDictionary" preserve="all" />
    <type fullname="System.Collections.IDictionaryEnumerator" preserve="all" />
    <type fullname="System.Collections.IEnumerable" preserve="all" />
    <type fullname="System.Collections.IEnumerator" preserve="all" />
@@ -373,12 +432,17 @@
    <type fullname="System.Comparison`1" preserve="all" />
    <type fullname="System.Convert" preserve="all" />
    <type fullname="System.DateTime" preserve="all" />
    <type fullname="System.DateTimeOffset" preserve="all" />
    <type fullname="System.DayOfWeek" preserve="all" />
    <type fullname="System.Delegate" preserve="all" />
    <type fullname="System.Diagnostics.ConditionalAttribute" preserve="all" />
    <type fullname="System.Diagnostics.DebuggableAttribute" preserve="all" />
    <type fullname="System.Diagnostics.DebuggableAttribute/DebuggingModes" preserve="all" />
    <type fullname="System.Diagnostics.DebuggerBrowsableAttribute" preserve="all" />
    <type fullname="System.Diagnostics.DebuggerBrowsableState" preserve="all" />
    <type fullname="System.Diagnostics.DebuggerDisplayAttribute" preserve="all" />
    <type fullname="System.Diagnostics.DebuggerHiddenAttribute" preserve="all" />
    <type fullname="System.Diagnostics.DebuggerStepThroughAttribute" preserve="all" />
    <type fullname="System.Double" preserve="all" />
    <type fullname="System.Enum" preserve="all" />
    <type fullname="System.Environment" preserve="all" />
@@ -397,6 +461,7 @@
    <type fullname="System.Globalization.NumberStyles" preserve="all" />
    <type fullname="System.Globalization.TextInfo" preserve="all" />
    <type fullname="System.Globalization.UnicodeCategory" preserve="all" />
    <type fullname="System.Guid" preserve="all" />
    <type fullname="System.IAsyncResult" preserve="all" />
    <type fullname="System.IComparable`1" preserve="all" />
    <type fullname="System.IDisposable" preserve="all" />
@@ -404,22 +469,19 @@
    <type fullname="System.IO.Directory" preserve="all" />
    <type fullname="System.IO.DirectoryInfo" preserve="all" />
    <type fullname="System.IO.File" preserve="all" />
    <type fullname="System.IO.FileAccess" preserve="all" />
    <type fullname="System.IO.FileInfo" preserve="all" />
    <type fullname="System.IO.FileMode" preserve="all" />
    <type fullname="System.IO.FileStream" preserve="all" />
    <type fullname="System.IO.FileSystemInfo" preserve="all" />
    <type fullname="System.IO.Path" preserve="all" />
    <type fullname="System.IO.Stream" preserve="all" />
    <type fullname="System.IO.StreamReader" preserve="all" />
    <type fullname="System.IO.StreamWriter" preserve="all" />
    <type fullname="System.IO.TextReader" preserve="all" />
    <type fullname="System.IO.TextWriter" preserve="all" />
    <type fullname="System.IProgress`1" preserve="all" />
    <type fullname="System.Int16" preserve="all" />
    <type fullname="System.Int32" preserve="all" />
    <type fullname="System.Int64" preserve="all" />
    <type fullname="System.InvalidOperationException" preserve="all" />
    <type fullname="System.Math" preserve="all" />
    <type fullname="System.MathF" preserve="all" />
    <type fullname="System.MulticastDelegate" preserve="all" />
    <type fullname="System.NotSupportedException" preserve="all" />
    <type fullname="System.NullReferenceException" preserve="all" />
@@ -429,6 +491,7 @@
    <type fullname="System.OperationCanceledException" preserve="all" />
    <type fullname="System.ParamArrayAttribute" preserve="all" />
    <type fullname="System.Predicate`1" preserve="all" />
    <type fullname="System.Progress`1" preserve="all" />
    <type fullname="System.Random" preserve="all" />
    <type fullname="System.Reflection.Assembly" preserve="all" />
    <type fullname="System.Reflection.BindingFlags" preserve="all" />
@@ -452,10 +515,14 @@
    <type fullname="System.Runtime.CompilerServices.IteratorStateMachineAttribute" preserve="all" />
    <type fullname="System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" preserve="all" />
    <type fullname="System.Runtime.CompilerServices.RuntimeHelpers" preserve="all" />
    <type fullname="System.Runtime.CompilerServices.TaskAwaiter" preserve="all" />
    <type fullname="System.Runtime.CompilerServices.TaskAwaiter`1" preserve="all" />
    <type fullname="System.Runtime.CompilerServices.TupleElementNamesAttribute" preserve="all" />
    <type fullname="System.RuntimeFieldHandle" preserve="all" />
    <type fullname="System.RuntimeTypeHandle" preserve="all" />
    <type fullname="System.Single" preserve="all" />
    <type fullname="System.String" preserve="all" />
    <type fullname="System.StringComparison" preserve="all" />
    <type fullname="System.StringSplitOptions" preserve="all" />
    <type fullname="System.Text.Encoding" preserve="all" />
    <type fullname="System.Text.StringBuilder" preserve="all" />
@@ -463,15 +530,15 @@
    <type fullname="System.Threading.CancellationTokenSource" preserve="all" />
    <type fullname="System.Threading.Interlocked" preserve="all" />
    <type fullname="System.Threading.Monitor" preserve="all" />
    <type fullname="System.Threading.Tasks.Task" preserve="all" />
    <type fullname="System.Threading.Tasks.Task`1" preserve="all" />
    <type fullname="System.Threading.Thread" preserve="all" />
    <type fullname="System.Threading.ThreadPool" preserve="all" />
    <type fullname="System.Threading.ThreadStart" preserve="all" />
    <type fullname="System.Threading.WaitCallback" preserve="all" />
    <type fullname="System.TimeSpan" preserve="all" />
    <type fullname="System.Type" preserve="all" />
    <type fullname="System.UInt16" preserve="all" />
    <type fullname="System.UInt32" preserve="all" />
    <type fullname="System.UInt64" preserve="all" />
    <type fullname="System.ValueTuple`2" preserve="all" />
    <type fullname="System.ValueType" preserve="all" />
  </assembly>
  <assembly fullname="spine-csharp">
@@ -480,6 +547,7 @@
    <type fullname="Spine.AnimationState/TrackEntryDelegate" preserve="all" />
    <type fullname="Spine.AnimationStateData" preserve="all" />
    <type fullname="Spine.BlendMode" preserve="all" />
    <type fullname="Spine.Bone" preserve="all" />
    <type fullname="Spine.ExposedList`1" preserve="all" />
    <type fullname="Spine.ExposedList`1/Enumerator" preserve="all" />
    <type fullname="Spine.Skeleton" preserve="all" />
@@ -489,13 +557,13 @@
    <type fullname="Spine.TrackEntry" preserve="all" />
  </assembly>
  <assembly fullname="spine-unity">
    <type fullname="Spine.Unity.ISkeletonAnimation" preserve="all" />
    <type fullname="Spine.Unity.BoneFollower" preserve="all" />
    <type fullname="Spine.Unity.BoneFollowerGraphic" preserve="all" />
    <type fullname="Spine.Unity.MeshGenerator" preserve="all" />
    <type fullname="Spine.Unity.MeshGenerator/Settings" preserve="all" />
    <type fullname="Spine.Unity.SkeletonAnimation" preserve="all" />
    <type fullname="Spine.Unity.SkeletonDataAsset" preserve="all" />
    <type fullname="Spine.Unity.SkeletonGraphic" preserve="all" />
    <type fullname="Spine.Unity.SkeletonRenderer" preserve="all" />
    <type fullname="Spine.Unity.UpdateBonesDelegate" preserve="all" />
  </assembly>
</linker>
Assets/Launch/Common/Clock.cs
@@ -9,6 +9,8 @@
    DateTime alarmTime;
    UnityAction alarmCallBack;
    private static LogicUpdate logicUpdate;
    public Clock(DateTime alarmTime, UnityAction callBack)
    {
        this.alarmTime = alarmTime;
@@ -33,7 +35,9 @@
    public static void Init()
    {
        new LogicUpdate().Start(OnUpdate);
        if (logicUpdate != null) return;
        logicUpdate = new LogicUpdate();
        logicUpdate.Start(OnUpdate);
    }
    public static Clock AlarmAt(DateTime alarmTime, UnityAction callBack)
Assets/Launch/Common/DownLoadAndDiscompressTask.cs
@@ -1,146 +1,146 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using LaunchCommon;
using Cysharp.Threading.Tasks;
// using System.Collections;
// using System.Collections.Generic;
// using UnityEngine;
// using System;
// using LaunchCommon;
// using Cysharp.Threading.Tasks;
public class DownLoadAndDiscompressTask : Singleton<DownLoadAndDiscompressTask>
{
    public const int BYTE_PER_KILOBYTE = 1024;
// public class DownLoadAndDiscompressTask : Singleton<DownLoadAndDiscompressTask>
// {
//     public const int BYTE_PER_KILOBYTE = 1024;
    public float progress { get { return Mathf.Clamp01((float)DownloadMgr.Instance.DownloadedBytes / totalSize); } }
//     public float progress { get { return Mathf.Clamp01((float)DownloadMgr.Instance.DownloadedBytes / totalSize); } }
    List<AssetVersion> tasks = new List<AssetVersion>();
    public bool isDone { get { return step == Step.Completed; } }
    public int totalSize { get; private set; }
    public int totalCount { get; private set; }
//     List<AssetVersion> tasks = new List<AssetVersion>();
//     public bool isDone { get { return step == Step.Completed; } }
//     public int totalSize { get; private set; }
//     public int totalCount { get; private set; }
    public event Action<Step> downLoadStepChangeEvent;
//     public event Action<Step> downLoadStepChangeEvent;
    Action downLoadOkCallBack;
//     Action downLoadOkCallBack;
    Step m_Step = Step.None;
    public Step step
    {
        get { return m_Step; }
        set
        {
            if (m_Step != value)
            {
                m_Step = value;
//     Step m_Step = Step.None;
//     public Step step
//     {
//         get { return m_Step; }
//         set
//         {
//             if (m_Step != value)
//             {
//                 m_Step = value;
                if (downLoadStepChangeEvent != null)
                {
                    downLoadStepChangeEvent(m_Step);
                }
            }
        }
    }
//                 if (downLoadStepChangeEvent != null)
//                 {
//                     downLoadStepChangeEvent(m_Step);
//                 }
//             }
//         }
//     }
    public void Prepare(List<AssetVersion> _downLoadTasks, Action _downLoadOkCallBack)
    {
        tasks = _downLoadTasks;
        downLoadOkCallBack = _downLoadOkCallBack;
//     public void Prepare(List<AssetVersion> _downLoadTasks, Action _downLoadOkCallBack)
//     {
//         tasks = _downLoadTasks;
//         downLoadOkCallBack = _downLoadOkCallBack;
        totalCount = tasks.Count;
        step = Step.DownLoadPrepared;
        totalSize = 0;
//         totalCount = tasks.Count;
//         step = Step.DownLoadPrepared;
//         totalSize = 0;
        for (int i = 0; i < tasks.Count; i++)
        {
            var task = tasks[i];
            totalSize += task.size;
        }
//         for (int i = 0; i < tasks.Count; i++)
//         {
//             var task = tasks[i];
//             totalSize += task.size;
//         }
        StartDownLoad();
    }
//         StartDownLoad();
//     }
    public void StartDownLoad()
    {
        step = Step.DownLoad;
        Co_StartDownLoad().Forget();
    }
//     public void StartDownLoad()
//     {
//         step = Step.DownLoad;
//         Co_StartDownLoad().Forget();
//     }
    async UniTask Co_StartDownLoad()
    {
        int downLoadTryCount = 0;
        List<bool> checkDownFile = new List<bool>();
        while (tasks.Count > 0)
        {
            DownloadMgr.MaxDownLoadTask = 10;
            DownloadMgr.Instance.Prepare();
            for (int i = 0; i < tasks.Count; i++)
            {
                var assetVersion = tasks[i];
                VersionConfigEx config = await VersionConfigEx.Get();
                var remoteURL = StringUtility.Concat(LocalResManager.Instance.versionInfo.GetResourcesURL(config.branch), LocalResManager.fixPath, "/", assetVersion.relativePath);
                var localURL = StringUtility.Concat(LocalResManager.Instance.ExternalStorePath, assetVersion.relativePath);
                DownloadMgr.Instance.AddTask(new DownloadTask(remoteURL, localURL));
            }
//     async UniTask Co_StartDownLoad()
//     {
//         int downLoadTryCount = 0;
//         List<bool> checkDownFile = new List<bool>();
//         while (tasks.Count > 0)
//         {
//             DownloadMgr.MaxDownLoadTask = 10;
//             DownloadMgr.Instance.Prepare();
//             for (int i = 0; i < tasks.Count; i++)
//             {
//                 var assetVersion = tasks[i];
//                 VersionConfigEx config = await VersionConfigEx.Get();
//                 var remoteURL = StringUtility.Concat(LocalResManager.Instance.versionInfo.GetResourcesURL(config.branch), LocalResManager.fixPath, "/", assetVersion.relativePath);
//                 var localURL = StringUtility.Concat(LocalResManager.Instance.ExternalStorePath, assetVersion.relativePath);
//                 DownloadMgr.Instance.AddTask(new DownloadTask(remoteURL, localURL));
//             }
            DownloadMgr.Instance.Begin();
//             DownloadMgr.Instance.Begin();
            while (!DownloadMgr.Instance.IsFinished)
            {
                await UniTask.Yield();
            }
//             while (!DownloadMgr.Instance.IsFinished)
//             {
//                 await UniTask.Yield();
//             }
            checkDownFile = new List<bool>();
            //检查下载完成后的文件是否有效
            var filledTasks = new List<AssetVersion>();//无效的文件
            for (int i = 0; i < tasks.Count; i++)
            {
                var assetVersion = tasks[i];
                var correctFile = assetVersion.CheckLocalFileValid(checkDownFile);
                if (correctFile)
                    assetVersion.localValid = true;
                else
                    filledTasks.Add(assetVersion);
            }
//             checkDownFile = new List<bool>();
//             //检查下载完成后的文件是否有效
//             var filledTasks = new List<AssetVersion>();//无效的文件
//             for (int i = 0; i < tasks.Count; i++)
//             {
//                 var assetVersion = tasks[i];
//                 var correctFile = assetVersion.CheckLocalFileValid(checkDownFile);
//                 if (correctFile)
//                     assetVersion.localValid = true;
//                 else
//                     filledTasks.Add(assetVersion);
//             }
            
            if (filledTasks.Count > 0)
            {
                //文件大小或者MD5不对,1. cdn资源确实错误  2.cdn推送过程中 文件不匹配
                //需要重新下载LogicVersion文件
                if (checkDownFile.Count > 0)
                {
                    downLoadTryCount++;
                }
                Debug.LogErrorFormat("资源下载完后有{0}个文件无效({1}),重新开始下载", filledTasks.Count, filledTasks[0].fileName);
            }
            tasks = filledTasks;
            if (downLoadTryCount >= 1)
            {
                LocalResManager.step = LocalResManager.LoadDllStep.PrepareDownLoad;
                break;
            }
        }
//             if (filledTasks.Count > 0)
//             {
//                 //文件大小或者MD5不对,1. cdn资源确实错误  2.cdn推送过程中 文件不匹配
//                 //需要重新下载LogicVersion文件
//                 if (checkDownFile.Count > 0)
//                 {
//                     downLoadTryCount++;
//                 }
//                 Debug.LogErrorFormat("资源下载完后有{0}个文件无效({1}),重新开始下载", filledTasks.Count, filledTasks[0].fileName);
//             }
//             tasks = filledTasks;
//             if (downLoadTryCount >= 1)
//             {
//                 LocalResManager.step = LocalResManager.LoadDllStep.ReadBytes;
//                 break;
//             }
//         }
        if (downLoadTryCount >= 1)
        {
            Debug.LogError("logic资源下载失败,警告提示,退出协程");
            LocalResManager.downLoadCount++;
            return;
        }
//         if (downLoadTryCount >= 1)
//         {
//             Debug.LogError("logic资源下载失败,警告提示,退出协程");
//             LocalResManager.downLoadCount++;
//             return;
//         }
        Debug.Log("资源全部下载完成");
//         Debug.Log("资源全部下载完成");
        step = Step.Completed;
//         step = Step.Completed;
        if (downLoadOkCallBack != null)
        {
            downLoadOkCallBack();
            downLoadOkCallBack = null;
        }
    }
//         if (downLoadOkCallBack != null)
//         {
//             downLoadOkCallBack();
//             downLoadOkCallBack = null;
//         }
//     }
    public enum Step
    {
        None,
        DownLoadPrepared,
        DownLoad,
        Completed,
    }
}
//     public enum Step
//     {
//         None,
//         DownLoadPrepared,
//         DownLoad,
//         Completed,
//     }
// }
Assets/Launch/Common/DownloadMgr.cs
@@ -9,6 +9,7 @@
using UnityEngine;
using UnityEngine.Networking;
#if !UNITY_WEBGL
    public class DownloadMgr : SingletonMonobehaviour<DownloadMgr>
    {
@@ -445,7 +446,6 @@
            var copyState = 0;//复制文件状态,0等待,1成功,2失败
            try
            {
                // if (speedLimit)
                ThreadPool.QueueUserWorkItem((object _obj) =>
                {
                    if (File.Exists(destFile))
@@ -453,13 +453,6 @@
                    File.Move(sourceFile, destFile);
                    System.Threading.Interlocked.Exchange(ref copyState, 1);
                });
                // else
                // {
                //     if (File.Exists(destFile))
                //         File.Delete(destFile);
                //     File.Move(sourceFile, destFile);
                //     copyState = 1;
                // }
            }
            catch (Exception ex)
            {
@@ -477,4 +470,6 @@
                SetFailed("临时文件改名出错");
        }
    }
    }
#endif // !UNITY_WEBGL
Assets/Launch/Common/LocalSave.cs
@@ -7,192 +7,216 @@
using System;
using System.Threading.Tasks;
#if WX_GAME
using UnityEngine;
using System.Runtime.InteropServices;
#endif
using Cysharp.Threading.Tasks;
public static class LocalSave
{
// WX_GAME 下通过 JSBridge 调用同步 API
#if WX_GAME
using UnityEngine;
using System.Runtime.InteropServices;
    [DllImport("__Internal")]
    private static extern void WXSetStorageSync(string key, string value);
    [DllImport("__Internal")]
    private static extern string WXGetStorageSync(string key);
    [DllImport("__Internal")]
    private static extern void WXRemoveStorageSync(string key);
    [DllImport("__Internal")]
    private static extern void WXClearStorageSync();
#endif
    // --- 同步接口 ---
    public static void SetString(string key, string value)
    public static void DeleteAll()
    {
#if WX_GAME
        WXSetStorageSync(key, value);
#else
        PlayerPrefs.SetString(key, value);
#endif
        PlayerPrefs.DeleteAll();
    }
    public static string GetString(string key, string defaultValue = "")
    public static void DeleteKey(string _key)
    {
#if WX_GAME
        var v = WXGetStorageSync(key);
        return string.IsNullOrEmpty(v) ? defaultValue : v;
#else
        if (!PlayerPrefs.HasKey(key)) return defaultValue;
        return PlayerPrefs.GetString(key);
#endif
        PlayerPrefs.DeleteKey(_key);
    }
    public static bool HasKey(string _key)
    {
        return PlayerPrefs.HasKey(_key);
    }
    public static void SetInt(string key, int value)
    {
        SetString(key, value.ToString());
        PlayerPrefs.SetInt(key, value);
    }
    public static int GetInt(string key, int defaultValue = 0)
    public static int GetInt(string key, int _default = 0)
    {
        var str = GetString(key, null);
        if (string.IsNullOrEmpty(str)) return defaultValue;
        int.TryParse(str, out var v);
        return v;
        if (!PlayerPrefs.HasKey(key))
        {
            return _default;
        }
        else
        {
            return PlayerPrefs.GetInt(key);
        }
    }
    public static void SetFloat(string key, float value)
    {
        SetString(key, value.ToString());
        PlayerPrefs.SetFloat(key, value);
    }
    public static float GetFloat(string key, float defaultValue = 0f)
    public static float GetFloat(string key, float _default = 0f)
    {
        var str = GetString(key, null);
        if (string.IsNullOrEmpty(str)) return defaultValue;
        float.TryParse(str, out var v);
        return v;
        if (!PlayerPrefs.HasKey(key))
        {
            return _default;
        }
        else
        {
            return PlayerPrefs.GetFloat(key);
        }
    }
    public static void SetBool(string key, bool value)
    {
        SetInt(key, value ? 1 : 0);
        PlayerPrefs.SetInt(key, value ? 1 : 0);
    }
    public static bool GetBool(string key, bool defaultValue = false)
    public static bool GetBool(string key, bool _default = false)
    {
        var v = GetInt(key, defaultValue ? 1 : 0);
        return v == 1;
        if (!PlayerPrefs.HasKey(key))
        {
            return _default;
        }
        else
        {
            return PlayerPrefs.GetInt(key) == 1;
        }
    }
    public static void SetString(string key, string value)
    {
        PlayerPrefs.SetString(key, value);
    }
    public static string GetString(string key)
    {
        if (!PlayerPrefs.HasKey(key))
        {
            return string.Empty;
        }
        else
        {
            return PlayerPrefs.GetString(key);
        }
    }
    public static void SetVector3(string key, Vector3 value)
    {
        var str = $"{value.x};{value.y};{value.z}";
        SetString(key, str);
        var sb = new StringBuilder();
        sb.Append(value.x);
        sb.Append(";");
        sb.Append(value.y);
        sb.Append(";");
        sb.Append(value.z);
        PlayerPrefs.SetString(key, sb.ToString());
    }
    public static Vector3 GetVector3(string key)
    {
        var str = GetString(key, null);
        if (string.IsNullOrEmpty(str)) return Vector3.zero;
        var arr = str.Split(';');
        if (arr.Length != 3) return Vector3.zero;
        float.TryParse(arr[0], out var x);
        float.TryParse(arr[1], out var y);
        float.TryParse(arr[2], out var z);
        return new Vector3(x, y, z);
        if (!PlayerPrefs.HasKey(key))
        {
            return Vector3.zero;
        }
        else
        {
            var v = new Vector3();
            var strArray = PlayerPrefs.GetString(key).Split(';');
            v.x = float.Parse(strArray[0]);
            v.y = float.Parse(strArray[2]);
            v.z = float.Parse(strArray[4]);
            return v;
        }
    }
    public static void SetIntArray(string key, int[] value)
    {
        if (value == null || value.Length == 0)
        if (value != null && value.Length > 0)
        {
            DeleteKey(key);
            return;
            var sb = new StringBuilder();
            for (var i = 0; i < value.Length; i++)
            {
                sb.Append(value[i]);
                sb.Append(';');
            }
            sb.Remove(sb.Length - 1, 1);
            PlayerPrefs.SetString(key, sb.ToString());
        }
        var str = string.Join(";", value);
        SetString(key, str);
        else
        {
            PlayerPrefs.DeleteKey(key);
        }
    }
    public static int[] GetIntArray(string key)
    {
        var str = GetString(key, null);
        if (string.IsNullOrEmpty(str)) return null;
        var arr = str.Split(';');
        var result = new int[arr.Length];
        for (int i = 0; i < arr.Length; i++)
            int.TryParse(arr[i], out result[i]);
        return result;
        if (!PlayerPrefs.HasKey(key))
        {
            return null;
        }
        else
        {
            var value = PlayerPrefs.GetString(key);
            var strArray = value.Split(';');
            var intArray = new int[strArray.Length];
            for (var i = 0; i < strArray.Length; i++)
            {
                int.TryParse(strArray[i], out intArray[i]);
            }
            return intArray;
        }
    }
    public static void SetFloatArray(string key, float[] value)
    {
        if (value == null || value.Length == 0)
        var sb = new StringBuilder();
        for (var i = 0; i < value.Length; i++)
        {
            DeleteKey(key);
            return;
            sb.Append(value[i]);
            sb.Append(";");
        }
        var str = string.Join(";", value);
        SetString(key, str);
        sb.Remove(sb.Length - 1, 1);
        PlayerPrefs.SetString(key, sb.ToString());
    }
    public static float[] GetFloatArray(string key)
    {
        var str = GetString(key, null);
        if (string.IsNullOrEmpty(str)) return null;
        var arr = str.Split(';');
        var result = new float[arr.Length];
        for (int i = 0; i < arr.Length; i++)
            float.TryParse(arr[i], out result[i]);
        return result;
        if (!PlayerPrefs.HasKey(key))
        {
            return null;
        }
        else
        {
            var value = PlayerPrefs.GetString(key);
            var strArray = value.Split(';');
            var array = new float[strArray.Length];
            for (var i = 0; i < strArray.Length; i++)
            {
                float.TryParse(strArray[i], out array[i]);
            }
            return array;
        }
    }
    public static void SetStringArray(string key, string[] value)
    {
        if (value == null || value.Length == 0)
        {
            DeleteKey(key);
            return;
        }
        var str = string.Join(";", value);
        SetString(key, str);
        var valueGroup = string.Join(";", value);
        PlayerPrefs.SetString(key, valueGroup);
    }
    public static string[] GeStringArray(string key)
    {
        var str = GetString(key, null);
        if (string.IsNullOrEmpty(str)) return null;
        return str.Split(';');
    }
    public static void DeleteKey(string key)
    {
#if WX_GAME
        WXRemoveStorageSync(key);
#else
        PlayerPrefs.DeleteKey(key);
#endif
    }
    public static void DeleteAll()
    {
#if WX_GAME
        WXClearStorageSync();
#else
        PlayerPrefs.DeleteAll();
#endif
    }
    public static bool HasKey(string key)
    {
#if WX_GAME
        var v = WXGetStorageSync(key);
        return !string.IsNullOrEmpty(v);
#else
        return PlayerPrefs.HasKey(key);
#endif
        if (!PlayerPrefs.HasKey(key))
        {
            return null;
        }
        else
        {
            var value = PlayerPrefs.GetString(key);
            return value.Split(';');
        }
    }
}
Assets/Launch/Common/PreserveEngineTypes.cs
New file
@@ -0,0 +1,21 @@
// 此文件防止 Unity WebGL 构建的 Strip Engine Code 裁剪热更新代码所使用的原生引擎类。
// HybridCLR 热更新 DLL 中引用的类型在构建时静态分析不可见,需要在 AOT 程序集中显式保留。
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.Scripting;
[Preserve]
internal static class PreserveEngineTypes
{
    [Preserve]
    static void KeepTypes()
    {
        // 保留 AudioSource (Class ID 81)
        _ = typeof(AudioSource);
        // 保留 AudioMixerSnapshotController (Class ID 245)
        _ = typeof(AudioMixerSnapshot);
        _ = typeof(AudioMixer);
    }
    static System.Type _;
}
Assets/Launch/Common/PreserveEngineTypes.cs.meta
File was renamed from Assets/Launch/FirstPackLang.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2024c0ab267b19244a4f367fbab5523b
guid: c69257156b872f54ab22328a45587e02
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
Assets/Launch/Config/AssetSource.cs
@@ -18,4 +18,46 @@
#endif
        }
    }
    /// <summary>
    /// 编辑器下模拟 WebGL 加载方式(Host/Offline + 完整版本检查流程)。
    /// 开启前请先开启 AB 模式并确保资源已打包到 StreamingAssets。
    /// 非编辑器环境始终返回 false。
    /// </summary>
    public static bool simulateWebGL
    {
        get
        {
#if UNITY_EDITOR
            return UnityEditor.EditorPrefs.GetBool("YooAsset_SimulateWebGL", false);
#else
            return false;
#endif
        }
    }
    /// <summary>
    /// Editor 下用本地硬盘目录模拟 CDN 根路径(可选)。
    /// 留空则 WebPlayMode 仅从 StreamingAssets(WebServer)加载,不启用远程文件系统。
    /// 设为本地绝对路径(如 E:/ProjSG/Bundles/StandaloneWindows64/UI/1.0.0),
    /// 运行时自动加 file:/// 前缀供 UnityWebRequest 访问。
    /// 非编辑器环境始终返回空字符串。
    /// </summary>
    public static string simLocalCdnPath
    {
        get
        {
#if UNITY_EDITOR
            return UnityEditor.EditorPrefs.GetString("YooAsset_SimLocalCdnPath", "");
#else
            return "";
#endif
        }
        set
        {
#if UNITY_EDITOR
            UnityEditor.EditorPrefs.SetString("YooAsset_SimLocalCdnPath", value ?? "");
#endif
        }
    }
}
Assets/Launch/FirstPackLang.cs
File was deleted
Assets/Launch/HttpRequest/HttpBehaviour.cs
@@ -1,15 +1,17 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using System;
using System.Net;
using System.Text;
using System.IO;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using Cysharp.Threading.Tasks;
    public class HttpBehaviour : MonoBehaviour
public class HttpBehaviour : MonoBehaviour
    {
        string url;
@@ -41,6 +43,52 @@
            behaviour.Begin(_url, _method, _content, _contentType, _retry, _result);
        }
        /// <summary>
        /// Create 的异步版本,使用 UnityWebRequest 实现,支持所有平台(含 WebGL)。
        /// </summary>
        public static async UniTask<(bool ok, string message)> CreateAsync(string _url, string _method, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
        {
            bool ok = false;
            string message = string.Empty;
            for (int attempt = 0; attempt <= _retry; attempt++)
            {
                UnityWebRequest www;
                if (_method == "POST")
                {
                    var bodyRaw = Encoding.UTF8.GetBytes(_content);
                    www = new UnityWebRequest(_url, "POST");
                    www.uploadHandler = new UploadHandlerRaw(bodyRaw);
                    www.downloadHandler = new DownloadHandlerBuffer();
                    www.SetRequestHeader("Content-Type", _contentType);
                }
                else
                {
                    www = UnityWebRequest.Get(_url);
                    www.SetRequestHeader("Content-Type", _contentType);
                }
                using (www)
                {
                    await www.SendWebRequest();
                    ok = www.result == UnityWebRequest.Result.Success;
                    message = ok ? www.downloadHandler.text : www.error;
                }
                if (ok)
                {
                    ConnectAllTimes = 0;
                    break;
                }
                ConnectAllTimes++;
                Debug.LogWarning($"[HttpBehaviour] CreateAsync failed (attempt {attempt + 1}/{_retry + 1}): {message} url={_url}");
            }
            _result?.Invoke(ok, message);
            return (ok, message);
        }
        void Begin(string _url, string _method, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
        {
            this.url = _url;
Assets/Launch/HttpRequest/HttpRequest.cs
@@ -15,45 +15,48 @@
    public const string defaultHttpContentType = "application/x-www-form-urlencoded";
    public const string jsonHttpContentType = "application/json ; charset=utf-8";
    public void RequestHttpPost(string _url, IDictionary<string, string> _parameters, string _contentType, int _retry = 3, Action<bool, string> _result = null)
    public async void RequestHttpPost(string _url, IDictionary<string, string> _parameters, string _contentType, int _retry = 3, Action<bool, string> _result = null)
    {
        var content = HashtablaToString(_parameters);
        HttpBehaviour.Create(_url, "POST", content, _contentType, _retry, _result);
         var task = HttpBehaviour.CreateAsync(_url, "POST", content, _contentType, _retry, _result);
         task.Forget();
    }
    public void RequestHttpPost(string _url, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
    public async void RequestHttpPost(string _url, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
    {
        HttpBehaviour.Create(_url, "POST", _content, _contentType, _retry, _result);
         var task = HttpBehaviour.CreateAsync(_url, "POST", _content, _contentType, _retry, _result);
         task.Forget();
    }
    public void RequestHttpGet(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null)
    public async void RequestHttpGet(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null)
    {
        HttpBehaviour.Create(_url, "GET", "", _contentType, _retry, _result);
         var task = HttpBehaviour.CreateAsync(_url, "GET", "", _contentType, _retry, _result);
         task.Forget();
    }
    public async UniTask<(bool ok, string message)> UnityWebRequestGetAsync(string _url, string _contentType, int _retry = 3, Action<bool, string> _result = null)
    {
        return await HttpBehaviour.CreateAsync(_url, "GET", "", _contentType, _retry, _result);
    }
    //2024-09-26 HttpWebRequest Get CDN资源在某些节日可能无法访问 包含keepalive的设定等不同情况 改用UnityWebRequest
    //获取CDN资源不建议使用HttpWebRequest
    public void UnityWebRequestGet(string _url, int timeout = 5, Action<bool, string> _result = null)
    public async UniTask<(bool ok, string message)> UnityWebRequestGet(string _url, int timeout = 5, Action<bool, string> _result = null)
    {
        StartCoroutine(GetDataB(_url, timeout, _result));
        return await GetDataAsync(_url, timeout, _result);
    }
    IEnumerator GetDataB(string remoteURL, int timeout, Action<bool, string> _result = null)
    private static async UniTask<(bool ok, string message)> GetDataAsync(string remoteURL, int timeout, Action<bool, string> _result = null)
    {
        UnityWebRequest request = UnityWebRequest.Get(remoteURL);
        request.timeout = timeout;
        yield return request.SendWebRequest();
        if (request.isDone)
        using (UnityWebRequest request = UnityWebRequest.Get(remoteURL))
        {
            if (request.result == UnityWebRequest.Result.Success)
            {
                _result(true, request.downloadHandler.text);
            }
            else
            {
                _result(false, request.result.ToString());
            }
            request.timeout = timeout;
            await request.SendWebRequest();
            var ok = request.result == UnityWebRequest.Result.Success;
            var message = ok ? request.downloadHandler.text : request.error;
            _result?.Invoke(ok, message);
            return (ok, message);
        }
    }
Assets/Launch/Launch.cs
@@ -24,10 +24,17 @@
    private static Assembly _hotUpdateAss;
//网络获取
    //网络获取
    private static List<string> AOTMetaAssemblyFiles { get; } = new List<string>();
    private static Dictionary<string, byte[]> s_assetDatas = new Dictionary<string, byte[]>();
    /// <summary>
    /// DLL 加载进度 [0, 1]。
    /// 0 = 未开始,1 = 全部加载完成。
    /// 由 LaunchExWin.UpdateProgress() 读取。
    /// </summary>
    public static float DllLoadProgress { get; private set; } = 0f;
    public static Launch Instance
    {
@@ -50,7 +57,7 @@
        m_Instance = this;
#if !UNITY_EDITOR
#if !UNITY_EDITOR && !UNITY_WEBGL
        if (File.Exists(Directory.GetParent(Application.persistentDataPath) + "/Debug") ||
        LocalSave.GetString("#@#BrancH") != string.Empty)
        {
@@ -72,8 +79,8 @@
        InitPlugins();
        // 1. 尽早初始化 YooAsset,确保 LocalResManager 加载资源时可使用 YooAsset
        await InitYooAssetEarlyAsync();
        // 1. 尽早初始�?YooAsset,确�?LocalResManager 加载资源时可使用 YooAsset
        // await InitYooAssetEarlyAsync();
        InitSetting();
@@ -81,25 +88,53 @@
    }
    /// <summary>
    /// 在 Launch 阶段尽早初始化 YooAsset。
    /// 完成后 LocalResManager.LoadSprite/LoadBuiltInPrefab 将通过 YooAsset 加载资源。
    /// �?Launch 阶段尽早初始�?YooAsset�?
    /// 完成�?LocalResManager.LoadSprite/LoadBuiltInPrefab 将通过 YooAsset 加载资源�?
    /// </summary>
    private async UniTask InitYooAssetEarlyAsync()
    public async UniTask InitYooAssetEarlyAsync()
    {
        try
        {
#if UNITY_WEBGL
            // WebGL 平台(含 Editor 切到 WebGL target):BuildInFileSystem 不支持 WebGL,必须用 WebPlayMode
            var playMode = EPlayMode.WebPlayMode;
            YooAsset.IRemoteServices remoteServices = null;
#if UNITY_EDITOR && (UNITY_WEBGL || UNITY_ANDROID || UNITY_IOS)
            // Editor + 移动/WebGL 构建目标:YooAsset 不支持在这些平台 Editor 内读取 Buildin bundle 文件
            // 强制使用 EditorSimulateMode(不走真实文件系统)
            var playMode = EPlayMode.EditorSimulateMode;
#elif UNITY_EDITOR
            // Editor 非 WebGL target:AB 模式开关控制(菜单:YooAsset工具/切换AB模式)
            var playMode = AssetSource.isUseAssetBundle ? EPlayMode.OfflinePlayMode : EPlayMode.EditorSimulateMode;
            // Editor + 非WebGL 构建目标:
            // 1) 模拟WebGL + 配置了本地 CDN 路径 -> HostPlayMode
            // 2) 模拟WebGL + 未配置本地 CDN 路径 -> OfflinePlayMode
            // 3) 关闭模拟且开启 AB -> OfflinePlayMode
            // 4) 默认 -> EditorSimulateMode
            EPlayMode playMode;
            if (AssetSource.simulateWebGL)
            {
                string localCdnPath = AssetSource.simLocalCdnPath;
                if (!string.IsNullOrEmpty(localCdnPath))
                {
                    playMode = EPlayMode.HostPlayMode;
                    remoteServices = new LocalFileRemoteServices(localCdnPath);
                }
                else
                {
                    playMode = EPlayMode.OfflinePlayMode;
                }
            }
            else if (AssetSource.isUseAssetBundle)
                playMode = EPlayMode.OfflinePlayMode;
            else
                playMode = EPlayMode.EditorSimulateMode;
#elif UNITY_WEBGL
            // 真实 WebGL 平台使用 WebPlayMode(不在 Editor 内执行)
            var playMode = EPlayMode.WebPlayMode;
#else
            var playMode = EPlayMode.OfflinePlayMode;
#endif
            Debug.Log($"[Launch] Initializing YooAsset early with PlayMode={playMode}");
            await YooAssetInitializer.Instance.InitializeAsync(playMode);
            await YooAssetInitializer.Instance.InitializeAsync(playMode, remoteServices);
            await VersionConfigEx.Get();
            if (YooAssetInitializer.Instance.State == YooAssetInitializer.InitState.InitFailed)
            {
@@ -107,8 +142,8 @@
                return;
            }
            // EditorSimulateMode 和 OfflinePlayMode 不需要远程版本管理,
            // 直接标记为 Ready
            // EditorSimulateMode �?OfflinePlayMode 不需要远程版本管理,
            // 直接标记�?Ready
            await YooAssetInitializer.Instance.RequestVersionAndUpdateAsync();
            Debug.Log("[Launch] YooAsset early init completed. State: " + YooAssetInitializer.Instance.State);
        }
@@ -128,33 +163,22 @@
        System.Net.ServicePointManager.DefaultConnectionLimit = 100;
        StringUtility.WarmupPool();
#if UNITY_EDITOR
        //内网下载测试
        _hotUpdateAss = System.AppDomain.CurrentDomain.GetAssemblies().First(a => a.GetName().Name == "Main");
        Type type = _hotUpdateAss.GetType("InGameDownTestUtility");
        LocalResManager.Instance.isPCTestDownLoad = (bool)type.GetMethod("GetReadVerionEx").Invoke(null, null);
        LocalResManager.Instance.isOpenDownLoad = (bool)type.GetMethod("GetDownloadEnable").Invoke(null, null);
#endif
        SDKInit();
        LocalResManager.Instance.Init();
        LocalResManager.Instance.InitTable(() =>
        LocalResManager.Instance.InitTable(async () =>
        {
            LocalResManager.Instance.InitDefaultLanguage();
            launchExWin = LaunchExWin.OpenWindow();
            // LocalResManager.Instance.OpenWindow("LaunchExWin", m_UICanvas);
            launchExWin = await LaunchExWin.OpenWindow();
#if !UNITY_EDITOR
            LocalResManager.step = LocalResManager.LoadDllStep.RequestVersion;
#else
            if (LocalResManager.Instance.isOpenDownLoad)
            {
            // 模拟 WebGL 流程:走完整版本检查 + DLL 加载流程
            if (AssetSource.simulateWebGL)
                LocalResManager.step = LocalResManager.LoadDllStep.RequestVersion;
            }
            else
            {
                StartGame();
            }
#endif
        });
        }).Forget();
    }
    private void InitPlugins()
@@ -168,13 +192,13 @@
    }
    
    /// <summary>
    /// 为aot assembly加载原始metadata, 这个代码放aot或者热更新都行。
    /// 为aot assembly加载原始metadata�?这个代码放aot或者热更新都行�?
    /// 一旦加载后,如果AOT泛型函数对应native实现不存在,则自动替换为解释模式执行
    /// </summary>
    private void LoadMetadataForAOTAssemblies()
    {
        /// 注意,补充元数据是给AOT dll补充元数据,而不是给热更新dll补充元数据。
        /// 热更新dll不缺元数据,不需要补充,如果调用LoadMetadataForAOTAssembly会返回错误
        /// 注意,补充元数据是给AOT dll补充元数据,而不是给热更新dll补充元数据�?
        /// 热更新dll不缺元数据,不需要补充,如果调用LoadMetadataForAOTAssembly会返回错�?
        /// 
        HomologousImageMode mode = HomologousImageMode.SuperSet;
        foreach (var aotDllName in AOTMetaAssemblyFiles)
@@ -227,10 +251,10 @@
            LocalResManager.Instance.Release();
            LocalResManager.Destroy();
        }
        if (DownloadMgr.IsValid())
        {
            Destroy(DownloadMgr.Instance);
        }
        // if (DownloadMgr.IsValid())
        // {
        //     Destroy(DownloadMgr.Instance);
        // }
        if (LogicEngine.IsValid())
        {
            Destroy(LogicEngine.Instance);
@@ -239,14 +263,14 @@
        {
            Destroy(HttpRequest.Instance);
        }
        if (DownLoadAndDiscompressTask.IsValid())
        {
            DownLoadAndDiscompressTask.Destroy();
        }
        // if (DownLoadAndDiscompressTask.IsValid())
        // {
        //     DownLoadAndDiscompressTask.Destroy();
        // }
        // YooAssetInitializer 不在此处销毁 —— 其 DefaultPackage 需要保留
        // 供 Main 程序集中 YooAssetService 接管使用(通过 IYooAssetBridge)
        // YooAssetInitializer 的 Release 由 YooAssetService 初始化时决定
        // YooAssetInitializer 不在此处销�?—�?�?DefaultPackage 需要保�?
        // �?Main 程序集中 YooAssetService 接管使用(通过 IYooAssetBridge�?
        // YooAssetInitializer �?Release �?YooAssetService 初始化时决定
        if (null != launchExWin)
        {
@@ -270,21 +294,10 @@
            LocalResManager.step = LocalResManager.LoadDllStep.Wait;
            LocalResManager.Instance.RequestVersionCheck();
        }
        else if (LocalResManager.step == LocalResManager.LoadDllStep.PrepareDownLoad)
        {
            LocalResManager.step = LocalResManager.LoadDllStep.Wait;
            //下载前准备,读表判断是否需要多语言不同下载路径
            PrepareDownLoad();
        }
        else if (LocalResManager.step == LocalResManager.LoadDllStep.DownLoad)
        {
            LocalResManager.step = LocalResManager.LoadDllStep.Wait;
            BeginDownload();
        }
        else if (LocalResManager.step == LocalResManager.LoadDllStep.ReadBytes)
        {
            LocalResManager.step = LocalResManager.LoadDllStep.Wait;
            ReadDllBytes(this.StartGame);
            ReadDllBytes(this.StartGame).Forget();
        }
        //else if (LocalResManager.step == LocalResManager.LoadDllStep.Completed)
        //{
@@ -295,121 +308,107 @@
    }
    private string GetWebRequestPath(string asset)
    // DLL 名称列表(与 AOTGenericReferences.PatchedAOTAssemblyList + Main.dll 保持一致)
    private static readonly string[] ALL_DLL_NAMES =
    {
        var path = LocalResManager.Instance.GetAssetFilePath(string.Concat(LocalResManager.bytesFolderName, asset));
        "Main.dll.bytes",
        "DOTween.dll.bytes",
        "Launch.dll.bytes",
        "System.Core.dll.bytes",
        "UniTask.dll.bytes",
        "UnityEngine.AndroidJNIModule.dll.bytes",
        "UnityEngine.AssetBundleModule.dll.bytes",
        "UnityEngine.CoreModule.dll.bytes",
        "UnityEngine.JSONSerializeModule.dll.bytes",
        "UnityEngine.UI.dll.bytes",
        "mscorlib.dll.bytes",
        "spine-csharp.dll.bytes",
    };
        if (!path.Contains("file:"))
    private async UniTask ReadDllBytes(Action callback)
    {
        var dllPackage = YooAssets.TryGetPackage("Dll");
        if (dllPackage == null)
        {
            //ExternalStorePath 路径需要添加
            path = "file://" + path;
            Debug.LogError("[Launch] Dll package not found! 请确保已初始化 Dll 包。");
            DllLoadProgress = 1f;
            callback?.Invoke();
            return;
        }
        return path;
    }
    private async void ReadDllBytes(Action callback, bool isIgnoreDownLoad = false)
    {
        foreach (var assetVersion in LocalResManager.Instance.assetVersions.Values)
        DllLoadProgress = 0f;
        int total = ALL_DLL_NAMES.Length;
        for (int i = 0; i < total; i++)
        {
            if (assetVersion.localValid)
            var dllName = ALL_DLL_NAMES[i];
            AOTMetaAssemblyFiles.Add(dllName);
            var location = $"Assets/HybridCLRDlls/{dllName}";
            var handle = dllPackage.LoadAssetAsync<TextAsset>(location);
            await handle.ToUniTask();
            if (handle.Status != EOperationStatus.Succeed)
            {
                AOTMetaAssemblyFiles.Add(string.Concat(assetVersion.fileName, assetVersion.extersion));
                Debug.LogError($"[Launch] 加载 DLL 失败: {dllName}: {handle.LastError}");
            }
            else
            {
                Debug.LogErrorFormat("文件无效 {0}", assetVersion.fileName);
                s_assetDatas[dllName] = ((TextAsset)handle.AssetObject).bytes;
                Debug.Log($"[Launch] Loaded DLL: {dllName} size:{s_assetDatas[dllName].Length}");
            }
        }
        foreach (var asset in AOTMetaAssemblyFiles)
        {
            string dllPath = GetWebRequestPath(asset);
            Debug.Log($"dllPath:{dllPath}");
            UnityWebRequest www = UnityWebRequest.Get(dllPath);
            await www.SendWebRequest();
#if UNITY_2020_1_OR_NEWER
            if (www.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(www.error);
            }
#else
            if (www.isHttpError || www.isNetworkError)
            {
                Debug.Log(www.error);
            }
#endif
            else
            {
                // 特殊处理
                byte[] assetData;
                // if (asset == "Main.dll.bytes")
                // {
                //     assetData = new byte[www.downloadHandler.data.Length - 3];
                //     Array.Copy(www.downloadHandler.data, 3, assetData, 0, assetData.Length);
                // }
                // else
                {
                    assetData = www.downloadHandler.data;
                }
                Debug.Log($"dll:{asset}  size:{assetData.Length}");
                s_assetDatas[asset] = assetData;
            }
            DllLoadProgress = (float)(i + 1) / total;
        }
        callback?.Invoke();
    }
    private void PrepareDownLoad()
#if UNITY_EDITOR
    /// <summary>
    /// Editor 专用:递归扫描本地目录,建立文件名→URI 索引,模拟 CDN Remote File System。
    /// 支持 YooAsset 的打包输出目录结构:{Root}/{PackageName}/{version}/{files}
    /// 对同名文件(多版本),按路径降序排列优先取最新版本。
    /// </summary>
    private class LocalFileRemoteServices : YooAsset.IRemoteServices
    {
        if (LocalResManager.downLoadCount > 3)
        {
            LocalResManager.step = LocalResManager.LoadDllStep.None;
            stop = true;
            HttpBehaviour.ConnectAllTimes = 9999;
            return;
        }
        private readonly System.Collections.Generic.Dictionary<string, string> _index;
        LocalResManager.Instance.RequestLogicBytes();
    }
    private void BeginDownload()
    {
        List<AssetVersion> priorDownLoadAssetVersions = new List<AssetVersion>();
        foreach (var assetVersion in LocalResManager.Instance.assetVersions.Values)
        public LocalFileRemoteServices(string localPath)
        {
            AssetVersion localAssetVersion = null;
            LocalResManager.Instance.localAssetVersions.TryGetValue(assetVersion.relativePath, out localAssetVersion);
            if (!assetVersion.CheckLocalFileValid(localAssetVersion))
            _index = new System.Collections.Generic.Dictionary<string, string>(
                System.StringComparer.OrdinalIgnoreCase);
            if (System.IO.Directory.Exists(localPath))
            {
                priorDownLoadAssetVersions.Add(assetVersion);
                assetVersion.localValid = false;
                var files = System.IO.Directory.GetFiles(
                    localPath, "*", System.IO.SearchOption.AllDirectories);
                // 降序排列:同名文件时路径更大(更新的版本文件夹)的优先
                System.Array.Sort(files,
                    (a, b) => string.Compare(b, a, System.StringComparison.OrdinalIgnoreCase));
                foreach (var file in files)
                {
                    var name = System.IO.Path.GetFileName(file);
                    if (!_index.ContainsKey(name))
                        _index[name] = new System.Uri(file).AbsoluteUri;
                }
            }
            else
            {
                assetVersion.localValid = true;
            }
            Debug.Log($"[LocalFileRemoteServices] 索引了 {_index.Count} 个文件,根目录: {localPath}");
        }
        Debug.LogFormat("需要下载的文件数量:{0}", priorDownLoadAssetVersions.Count);
        if (priorDownLoadAssetVersions.Count == 0)
        public string GetRemoteMainURL(string fileName)
        {
            DownloadComplete();
            return;
        }
        var targetDirectory = LocalResManager.Instance.ExternalStorePath;
        if (!Directory.Exists(targetDirectory))
        {
            Directory.CreateDirectory(targetDirectory);
            if (_index.TryGetValue(fileName, out var uri))
                return uri;
            Debug.LogWarning($"[LocalFileRemoteServices] 文件未找到: {fileName}");
            return $"file:///NOT_FOUND/{fileName}";
        }
        DownLoadAndDiscompressTask.Instance.Prepare(priorDownLoadAssetVersions, DownloadComplete);
        public string GetRemoteFallbackURL(string fileName) => GetRemoteMainURL(fileName);
    }
    void DownloadComplete()
    {
        LocalResManager.step = LocalResManager.LoadDllStep.ReadBytes;
    }
#endif
}
Assets/Launch/Manager/LocalResManager.cs
@@ -3,7 +3,6 @@
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using System;
using System.Threading;
using UnityEngine.U2D;
using LitJson;
using System.IO;
@@ -23,7 +22,6 @@
{
    //不下载时本地安卓测试路径
    public string assetBundlesPath = Application.dataPath + "/../AssetBundles/Android/";
    public static string bytesFolderName = "logicbytes/";
    public string StreamingAssetPath
    {
        get
@@ -64,14 +62,11 @@
        }
    }
    public bool isPCTestDownLoad = false;   //开启下载并开启下载bytes
    public bool isOpenDownLoad = false; //只开启下载
    public static int downLoadCount = 0;
    public static readonly string[] VERSION_URL = new string[] 
    {
        "http://xssgcenter.secondworld.net.cn:11000/center/appversion_new.php/?",
        "http://gamecenter.secondworld.net.cn:11000/center/appversion_new.php/?",
        "http://106.55.151.92:11000/center/appversion_new.php/?",
    };
@@ -96,16 +91,6 @@
            Debug.Log("LoadDllStep:" + m_step);
        }
    }
    string assetBytesUrl;
    //从网络获取的资源版本信息
    public Dictionary<string, AssetVersion> assetVersions = new Dictionary<string, AssetVersion>();
    //本地LogicBytes文件和 assetVersions 比较是否需要下载
    public Dictionary<string, AssetVersion> localAssetVersions = new Dictionary<string, AssetVersion>();
    public static Dictionary<string, AssetVersion> assetVersionsForHotCheck = new Dictionary<string, AssetVersion>();
    public static string versionUrlResult { get; private set; }
@@ -139,18 +124,49 @@
        }
    }
    [Obsolete("Legacy AB loading — use YooAsset via YooAssetInitializer")]
    private AssetBundle spriteBundle = null;   //需要卸载
    [Obsolete("Legacy AB loading — use YooAsset via YooAssetInitializer")]
    private AssetBundle prefabBundle = null;   //需要卸载
    private SpriteAtlas spriteAtlas = null;
    /// <summary>
    /// YooAsset 是否已就绪(由 YooAssetInitializer 初始化)
    /// </summary>
    private bool IsYooAssetReady => YooAssetInitializer.IsValid()
        && YooAssetInitializer.Instance.State == YooAssetInitializer.InitState.Ready
        && YooAssetInitializer.Instance.DefaultPackage != null;
        && YooAssetInitializer.Instance.DefaultPackage != null
        && YooAssetInitializer.Instance.PrefabPackage != null;
// #if !UNITY_EDITOR
    // 对齐 YooAssetService.ExecuteWithRetryAsync:指数退避重试(500→1000→2000ms)
    private const int YOO_MAX_RETRY = 3;
    private const int YOO_BASE_DELAY_MS = 500;
    private async UniTask<T> LoadAssetWithRetryAsync<T>(string location) where T : UnityEngine.Object
    {
        Exception lastEx = null;
        for (int attempt = 0; attempt <= YOO_MAX_RETRY; attempt++)
        {
            try
            {
                var handle = YooAssetInitializer.Instance.PrefabPackage.LoadAssetAsync<T>(location);
                await handle.ToUniTask();
                if (handle.Status != YooAsset.EOperationStatus.Succeed)
                    throw new Exception($"YooAsset load failed for '{location}': {handle.LastError}");
                return handle.GetAssetObject<T>();
            }
            catch (Exception ex)
            {
                lastEx = ex;
                if (attempt < YOO_MAX_RETRY)
                {
                    int delayMs = YOO_BASE_DELAY_MS * (1 << attempt);
                    Debug.LogWarning($"[LocalResManager] Load '{location}' failed (attempt {attempt + 1}/{YOO_MAX_RETRY + 1}), retry in {delayMs}ms: {ex.Message}");
                    await UniTask.Delay(delayMs);
                }
            }
        }
        Debug.LogError($"[LocalResManager] Load '{location}' failed after {YOO_MAX_RETRY + 1} attempts: {lastEx?.Message}");
        return null;
    }
// #endif
    public void Init()
    {
@@ -162,8 +178,8 @@
                debugBranch = tmpbranch;
        }
        var parentDirectory = Directory.GetParent(Application.persistentDataPath);
#if !UNITY_WEBGL
        var parentDirectory = Directory.GetParent(Application.persistentDataPath);
        if (File.Exists(parentDirectory + "/Debug"))
        {
            var content = File.ReadAllText(parentDirectory + "/Debug");
@@ -181,126 +197,118 @@
    public void Release()
    {
#pragma warning disable CS0612, CS0618 // Suppress obsolete warnings for legacy cleanup
        spriteBundle?.Unload(true);  //true完全卸载,更新后重新加载
        prefabBundle?.Unload(true);
#pragma warning restore CS0612, CS0618
        assetVersions = null;
        localAssetVersions = null;
        spriteAtlas = null;
        Debug.Log("提前ResManager.Release资源");
    }
    public async void RequestVersionCheck()
    {
        var versionConfig = await VersionConfigEx.Get();
        var tables = new Dictionary<string, string>();
        tables["channel"] = versionConfig.appId;
        tables["versioncode"] = versionConfig.version;
        if (versionConfig.branch != 0)
        try
        {
            tables["branch"] = versionConfig.branch.ToString();
            var versionConfig = await VersionConfigEx.Get();
            var tables = new Dictionary<string, string>();
            tables["channel"] = versionConfig.appId;
            tables["versioncode"] = versionConfig.version;
            if (versionConfig.branch != 0)
            {
                tables["branch"] = versionConfig.branch.ToString();
            }
            tables["game"] = versionConfig.gameId;
            var url = string.Concat(VERSION_URL[urlIndex % VERSION_URL.Length], HttpRequest.HashtablaToString(tables));
            urlIndex++;
            versionUrl = url;
            Debug.Log("http地址:versionUrl  " + url);
            HttpRequest.Instance.RequestHttpGet(url, HttpRequest.defaultHttpContentType, 1, OnVersionCheckResult);
        }
        catch (Exception ex)
        {
            Debug.LogError($"RequestVersionCheck failed: {ex}");
        }
        tables["game"] = versionConfig.gameId;
        var url = string.Concat(VERSION_URL[urlIndex % VERSION_URL.Length], HttpRequest.HashtablaToString(tables));
        urlIndex++;
        versionUrl = url;
        Debug.Log("http地址:versionUrl  " + url);
        HttpRequest.Instance.RequestHttpGet(url, HttpRequest.defaultHttpContentType, 1, OnVersionCheckResult);
    }
    private async void OnVersionCheckResult(bool _ok, string _result)
    private void OnVersionCheckResult(bool _ok, string _result)
    {
        if (_ok)
        {
            versionUrlResult = _result.Replace("{}", "null");
            versionInfo = JsonMapper.ToObject<VersionInfo>(versionUrlResult);
#if UNITY_EDITOR
            assetVersions = localAssetVersions;
            step = LoadDllStep.ReadBytes;
#else
            var versionConfig = await VersionConfigEx.Get();
            if (versionConfig.assetAccess == VersionConfigEx.InstalledAsset.IngoreDownLoad)
        // try
        // {
            if (_ok)
            {
                assetVersions = localAssetVersions;
                step = LoadDllStep.ReadBytes;
                return;
                Debug.Log("OK OnVersionCheckResult " + _result);
                Launch.Instance.InitYooAssetEarlyAsync().ContinueWith(() =>
                {
                    if (YooAssetInitializer.Instance.State != YooAssetInitializer.InitState.Ready)
                    {
                        Debug.LogError($"[LocalResManager] YooAsset 初始化失败(State={YooAssetInitializer.Instance.State}),无法继续加载资源");
                        return;
                    }
                    versionUrlResult = NormalizeVersionJson(_result);
                    try
                    {
                        versionInfo = JsonMapper.ToObject<VersionInfo>(versionUrlResult);
                    }
                    catch (Exception ex)
                    {
                        var firstChar = versionUrlResult.Length > 0 ? ((int)versionUrlResult[0]).ToString() : "<empty>";
                        var preview = versionUrlResult.Length > 32 ? versionUrlResult.Substring(0, 32) : versionUrlResult;
                        Debug.LogError($"[LocalResManager] Version json parse failed. firstChar={firstChar}, preview='{preview}', error={ex}");
                        return;
                    }
                    step = LoadDllStep.ReadBytes;
                }).Forget();
            }
            step = LoadDllStep.PrepareDownLoad;
#endif
            else
            {
                Debug.Log("http 数据通讯: VersionUtility:" + versionUrl + "  result:" + versionUrlResult);
                Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestVersionCheck);
            }
        // }
        // catch (Exception ex)
        // {
        //     Debug.LogError($"OnVersionCheckResult failed: {ex}");
        // }
    }
        }
        else
    private static string NormalizeVersionJson(string raw)
    {
        if (string.IsNullOrEmpty(raw))
        {
            Debug.Log("http 数据通讯: VersionUtility:" + versionUrl + "  result:" + versionUrlResult);
            Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestVersionCheck);
            return string.Empty;
        }
        var normalized = raw.Trim();
        normalized = normalized.TrimStart('\uFEFF', '\u200B', '\0');
        if (normalized == "{}")
        {
            return "null";
        }
        return normalized;
    }
    public string GetAssetFilePath(string _assetKey)
    {
#if UNITY_WEBGL
        return Path.Combine(StreamingAssetPath, _assetKey);
#else
        var path = Path.Combine(ExternalStorePath, _assetKey);
        if (!File.Exists(path))
        {
            path = Path.Combine(StreamingAssetPath, _assetKey);
        }
        return path;
    }
    /// <summary>
    /// 同步加载 Sprite。
    /// 优先使用 YooAsset(若已初始化),否则回退到传统 AssetBundle 加载。
    /// </summary>
    public Sprite LoadSprite(string name)
    {
        Sprite sprite = null;
#if UNITY_EDITOR
        if (excludePngs.Contains(StringUtility.Concat(name, ".png")))
        {
            var path = StringUtility.Concat("Assets/ResourcesOut/BuiltIn/Sprites/", name, ".png");
            sprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>(path);
        }
        else
        {
            var spriteAtlas = UnityEditor.AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/ResourcesOut/BuiltIn/Sprites/sprites.spriteatlasv2");
            sprite = spriteAtlas.GetSprite(name);
        }
#else
        if (IsYooAssetReady)
        {
            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetSync<Sprite>(name);
            sprite = handle.AssetObject as Sprite;
        }
        else
        {
            // Legacy fallback — AssetBundle.LoadFromFile
            if (spriteBundle == null)
            {
                string _path = GetAssetFilePath("builtin/sprites");
                spriteBundle = AssetBundle.LoadFromFile(_path);
            }
            sprite = spriteBundle.LoadAsset(name, typeof(Sprite)) as Sprite;
        }
#endif
        if (sprite == null)
        {
            Debug.LogErrorFormat("LoadSprite() => 加载不到资源: {0}.", name);
        }
        return sprite;
    }
    /// <summary>
    /// 异步加载 Sprite(WebGL 兼容)。
    /// 使用 YooAsset 异步加载 API,适用于所有平台。
    /// </summary>
    public async UniTask<Sprite> LoadSpriteAsync(string name, CancellationToken cancellationToken = default)
    public async UniTask<Sprite> LoadSpriteAsync(string name)
    {
        Sprite sprite = null;
#if UNITY_EDITOR
@@ -314,18 +322,18 @@
            var atlas = UnityEditor.AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/ResourcesOut/BuiltIn/Sprites/sprites.spriteatlasv2");
            sprite = atlas.GetSprite(name);
        }
        await UniTask.Yield(); // Simulate async for editor loading
#else
        if (IsYooAssetReady)
        {
            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetAsync<Sprite>(name);
            await handle.ToUniTask(cancellationToken: cancellationToken);
            sprite = handle.AssetObject as Sprite;
            var path = $"Assets/ResourcesOut/BuiltIn/Sprites/{name}.png";
            sprite = await LoadAssetWithRetryAsync<Sprite>(path);
        }
        else
        {
            // Fallback to sync if YooAsset not ready (should not happen in normal flow)
            Debug.LogWarning($"[LocalResManager] LoadSpriteAsync: YooAsset not ready, falling back to sync for '{name}'");
            sprite = LoadSprite(name);
            Debug.LogError($"[LocalResManager] LoadSpriteAsync: YooAsset not ready, cannot load '{name}'");
            await UniTask.Yield();
        }
#endif
        if (sprite == null)
@@ -339,42 +347,42 @@
    /// 同步加载内置预制体。
    /// 优先使用 YooAsset(若已初始化),否则回退到传统 AssetBundle 加载。
    /// </summary>
    public GameObject LoadBuiltInPrefab(string name)
    {
        GameObject prefab = null;
#if UNITY_EDITOR
        var path = string.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, ".prefab");
        prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
#else
        if (IsYooAssetReady)
        {
            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetSync<GameObject>(name);
            prefab = handle.AssetObject as GameObject;
        }
        else
        {
            // Legacy fallback — AssetBundle.LoadFromFile
            if (prefabBundle == null)
            {
                string _path = GetAssetFilePath("builtin/prefabs");
                prefabBundle = AssetBundle.LoadFromFile(_path);
            }
            prefab = prefabBundle.LoadAsset(name) as GameObject;
        }
#endif
        if (prefab == null)
        {
            Debug.LogErrorFormat("LoadBuiltInPrefab() => 加载不到资源: {0}.", name);
        }
//     public GameObject LoadBuiltInPrefab(string name)
//     {
//         GameObject prefab = null;
// #if UNITY_EDITOR
//         var path = string.Concat("Assets/ResourcesOut/BuiltIn/Prefabs/", name, ".prefab");
//         prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
// #else
//         if (IsYooAssetReady)
//         {
//             var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetSync<GameObject>(name);
//             prefab = handle.AssetObject as GameObject;
//         }
//         else
//         {
//             // Legacy fallback — AssetBundle.LoadFromFile
//             if (prefabBundle == null)
//             {
//                 string _path = GetAssetFilePath("builtin/prefabs");
//                 prefabBundle = AssetBundle.LoadFromFile(_path);
//             }
//             prefab = prefabBundle.LoadAsset(name) as GameObject;
//         }
// #endif
//         if (prefab == null)
//         {
//             Debug.LogErrorFormat("LoadBuiltInPrefab() => 加载不到资源: {0}.", name);
//         }
        return prefab;
    }
//         return prefab;
//     }
    /// <summary>
    /// 异步加载内置预制体(WebGL 兼容)。
    /// 使用 YooAsset 异步加载 API,适用于所有平台。
    /// </summary>
    public async UniTask<GameObject> LoadBuiltInPrefabAsync(string name, CancellationToken cancellationToken = default)
    public async UniTask<GameObject> LoadBuiltInPrefabAsync(string name)
    {
        GameObject prefab = null;
#if UNITY_EDITOR
@@ -383,14 +391,12 @@
#else
        if (IsYooAssetReady)
        {
            var handle = YooAssetInitializer.Instance.DefaultPackage.LoadAssetAsync<GameObject>(name);
            await handle.ToUniTask(cancellationToken: cancellationToken);
            prefab = handle.AssetObject as GameObject;
            var path = $"Assets/ResourcesOut/BuiltIn/Prefabs/{name}.prefab";
            prefab = await LoadAssetWithRetryAsync<GameObject>(path);
        }
        else
        {
            Debug.LogWarning($"[LocalResManager] LoadBuiltInPrefabAsync: YooAsset not ready, falling back to sync for '{name}'");
            prefab = LoadBuiltInPrefab(name);
            Debug.LogError($"[LocalResManager] LoadBuiltInPrefabAsync: YooAsset not ready, cannot load '{name}'");
        }
#endif
        if (prefab == null)
@@ -435,114 +441,44 @@
        Debug.LogFormat("系统语言:{0} 设置为{1}", Application.systemLanguage, Id);
    }
    
    //LogicBytes文件的MD5信息
    public async void RequestLogicBytes()
    // 通过 YooAsset 加载 TextAsset 类型的文本文件。
    // location: 完整的 YooAsset 路径,如 "Assets/ResourcesOut/Config/InitialFunction.txt"
    // Editor 下直接读物理文件(剥离 Assets/ 前缀后拼 Application.dataPath)
    private async UniTask ReadText(string location, Action<bool, string> OnComplete = null)
    {
        var config = await VersionConfigEx.Get();
        var remoteURL = string.Concat(versionInfo.GetResourcesURL(config.branch), fixPath, "/logicbytes.txt");
        //var localURL = string.Concat(.ExternalStorePath, "/logicbytes.txt");
        assetBytesUrl = remoteURL;
        Debug.Log("http地址:logicbytesUrl  " + assetBytesUrl);
        //HttpRequest.Instance.RequestHttpGet(assetBytesUrl, HttpRequest.defaultHttpContentType, 3, OnGetAssetVersionFile);
        HttpRequest.Instance.UnityWebRequestGet(assetBytesUrl, 5, OnGetAssetVersionFile);
    }
    private void OnGetAssetVersionFile(bool _ok, string _result)
    {
        Debug.LogFormat("RequestLogicBytes文件结果:时间 {0},结果 {1}, 文件大小 {2}", DateTime.Now, _ok, _result.Length);
        if (_ok)
        {
            UpdateAssetVersions(_result);
            step = LoadDllStep.DownLoad;
        }
        else
        {
            Debug.Log("http 数据通讯: RequestLogicBytes:" + assetBytesUrl + "  result:" + _result);
            Clock.AlarmAt(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond * 3), RequestLogicBytes);
        }
    }
    public Dictionary<string, AssetVersion> UpdateAssetVersions(string _assetVersionFile)
    {
        var lines = _assetVersionFile.Split(new string[] { FileExtersion.lineSplit }, StringSplitOptions.RemoveEmptyEntries);
        assetVersions.Clear();
        for (int i = 0; i < lines.Length; i++)
        {
            var assetVersion = new AssetVersion(lines[i]);
            assetVersions[assetVersion.relativePath] = assetVersion;
        }
        assetVersionsForHotCheck = assetVersions;
        return assetVersions;
    }
    //读表 使用UnityWebRequest 考虑安卓环境
    private async UniTask ReadText(string table, Action<bool, string> OnComplete = null, string filePath = "")
    {
        var path = string.Empty;
        string content = string.Empty;
        bool result = false;
        if (filePath != "")
        {
            path = Path.Combine(filePath + $"{table}.txt");
        }
        else
        {
#if UNITY_EDITOR
            path = CONFIG_FODLER + $"/{table}.txt";
#else
        path = GetAssetFilePath($"config/{table}.txt");
#endif
        }
        if (!path.Contains("file:"))
        // location 形如 "Assets/ResourcesOut/Config/Foo.txt" → 物理路径
        var editorPath = Application.dataPath + "/" + location.Substring("Assets/".Length);
        if (File.Exists(editorPath))
        {
            //ExternalStorePath 路径需要添加
            path = "file://" + path;
            content = File.ReadAllText(editorPath);
            result = true;
        }
        Debug.LogFormat("ReadText() => path: {0}", path);
        UnityWebRequest www = UnityWebRequest.Get(path);
        await www.SendWebRequest();
#if UNITY_2020_1_OR_NEWER
    if (www.result != UnityWebRequest.Result.Success)
    {
        Debug.Log(www.error);
        OnComplete(result, content);
    }
#else
        if (www.isHttpError || www.isNetworkError)
        {
            Debug.Log(www.error);
            OnComplete(result, content);
        }
#endif
        else
        {
            content = www.downloadHandler.text;
            Debug.Log($"table:{table}  size:{content.Length}");
            result = true;
            OnComplete(result, content);
            Debug.LogError($"ReadText: file not found at '{editorPath}'");
        }
        await UniTask.Yield();
#else
        var textAsset = await LoadAssetWithRetryAsync<TextAsset>(location);
        if (textAsset != null)
        {
            content = textAsset.text;
            result = true;
            Debug.Log($"ReadText '{location}' size:{content.Length}");
        }
#endif
        OnComplete?.Invoke(result, content);
    }
    public async void InitTable(Action OnComplete = null)
    public async UniTask InitTable(Action OnComplete = null)
    {
        if (isPCTestDownLoad || Application.isMobilePlatform)// || VersionConfigEx.Get().assetAccess == VersionConfigEx.InstalledAsset.IngoreDownLoad)
        {
            //读取的一定是StreamingAssetPath路径
            await ReadText("logicbytes", (isOK, value) =>
            {
                if (isOK)
                {
                    InitLocalLogicbytes(value);
        await Launch.Instance.InitYooAssetEarlyAsync();
                }
                else
                    Debug.LogWarning("InitTable logicbytes error");
            }, StreamingAssetPath);
        }
        await ReadText("InitialFunction", (isOK, value) =>
        await ReadText("Assets/ResourcesOut/Config/InitialFunction.txt", (isOK, value) =>
        {
            if (isOK)
            {
@@ -554,32 +490,6 @@
                Debug.LogError("InitTable InitialFunctionConfig error");
            }
        });
    }
    //随包安装的资源不同平台不一定可以获取FileInfo,所以需要下载一个文件来获取资源的MD5信息
    //该文件在打包时生成 记录随包的所有资源的信息
    //该文件记录的资源在包中肯定存在,所以不用去取指定的资源文件获得FileInfo 计算MD5
    //随包LogicBytes文件的MD5信息 用于下载对比
    void InitLocalLogicbytes(string content)
    {
        using (StringReader reader = new StringReader(content))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                try
                {
                    var assetVersion = new AssetVersion(line);
                    assetVersion.localValid = true;
                    localAssetVersions[assetVersion.relativePath] = assetVersion;
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
        }
    }
    public class VersionInfo
@@ -614,10 +524,8 @@
    public enum LoadDllStep
    {
        None,
        Wait,   //每个阶段的等待时间 比如在下载中就处于等待状态,完成后再进入下一个阶段
        Wait,
        RequestVersion,
        PrepareDownLoad,
        DownLoad,
        ReadBytes,
        Completed,
    }
Assets/Launch/Manager/YooAssetInitializer.cs
@@ -38,16 +38,20 @@
    // ====================================================================
    /// <summary>默认包名 — Prefab 包含启动必需资源</summary>
    public const string DEFAULT_PACKAGE_NAME = "Prefab";
    public const string DEFAULT_PACKAGE_NAME = "Builtin";
    public const string CONFIG_PACKAGE_NAME = "Prefab";
    /// <summary>
    /// Launch 阶段需要初始化的包名(与 Collector 一致)。
    /// </summary>
    private static readonly string[] LAUNCH_PACKAGES = new[] { "Prefab", "UI", "UIEffect", "Battle", "Audio" };
    private static readonly string[] LAUNCH_PACKAGES = new[] { "Prefab", "UI", "UIEffect", "Battle", "Audio", "Builtin", "Video", "Dll" };
    private EPlayMode _playMode;
    private IRemoteServices _remoteServices;
    private ResourcePackage _defaultPackage;
    private ResourcePackage _prefabPackage;
    private readonly Dictionary<string, ResourcePackage> _packages = new Dictionary<string, ResourcePackage>();
    /// <summary>
@@ -64,6 +68,8 @@
    /// 获取已初始化的默认包裹(向后兼容 LocalResManager)
    /// </summary>
    public ResourcePackage DefaultPackage => _defaultPackage;
    public ResourcePackage PrefabPackage => _prefabPackage;
    /// <summary>
    /// 当前运行模式
@@ -137,7 +143,7 @@
                    if (initOp.Status != EOperationStatus.Succeed)
                    {
                        Debug.LogWarning($"[YooAssetInitializer] Package '{pkgName}' init failed: {initOp.Error}");
                        Debug.LogError($"[YooAssetInitializer] Package '{pkgName}' init failed: {initOp.Error}");
                        // 清理失败的包裹,避免僵尸包裹
                        try
                        {
@@ -157,6 +163,12 @@
                    {
                        _defaultPackage = package;
                        YooAssets.SetDefaultPackage(package);
                    }
                    // CONFIG_PACKAGE_NAME 包作为配置包
                    if (pkgName == CONFIG_PACKAGE_NAME)
                    {
                        _prefabPackage = package;
                    }
                    Debug.Log($"[YooAssetInitializer] Package '{pkgName}' initialized.");
@@ -182,7 +194,7 @@
                        }
                        catch { /* ignore cleanup errors */ }
                    }
                    Debug.LogWarning($"[YooAssetInitializer] Package '{pkgName}' init exception (skipped): {ex.Message}");
                    Debug.LogError($"[YooAssetInitializer] Package '{pkgName}' init exception (skipped): {ex.Message}");
                }
            }
@@ -440,4 +452,16 @@
        LastError = null;
        State = InitState.Uninitialized;
    }
#if UNITY_EDITOR
    /// <summary>
    /// 支持 Enter Play Mode 未启用 Domain Reload 时的状态重置。
    /// YooAssets 自身已通过 SubsystemRegistration 清空 packages,此处同步重置 Initializer 状态。
    /// </summary>
    [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.SubsystemRegistration)]
    private static void ResetOnDomainReload()
    {
        Singleton<YooAssetInitializer>.Instance.Release();
    }
#endif
}
Assets/Launch/UI/LaunchWins/LaunchExWin.cs
@@ -1,4 +1,4 @@
using System.Collections;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
@@ -36,13 +36,15 @@
        // var sprite = LocalResManager.Instance.LoadSprite("Launch_1");
        // m_BackGround.overrideSprite = sprite;
        // m_BackGround.preserveAspect = true;
        sliderText = InitialFunctionConfig.Get("Language").Numerical3;
        // 同步加载保留(YooAsset 初始化后走 YooAsset sync API,否则走 legacy AB)
        imagebg1.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
        imagebg2.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
        imageCircle.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH2");
        imagebg3.sprite = LocalResManager.Instance.LoadSprite("LoadingBottom");
        imageloding.sprite = LocalResManager.Instance.LoadSprite("LoadingSlider");
        InitSpritesAsync().Forget();
        //
        // sliderText = InitialFunctionConfig.Get("Language").Numerical3;
        // // 同步加载保留(YooAsset 初始化后走 YooAsset sync API,否则走 legacy AB)
        // imagebg1.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
        // imagebg2.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH1");
        // imageCircle.sprite = LocalResManager.Instance.LoadSprite("TY_TB_JH2");
        // imagebg3.sprite = LocalResManager.Instance.LoadSprite("LoadingBottom");
        // imageloding.sprite = LocalResManager.Instance.LoadSprite("LoadingSlider");
    }
    /// <summary>
@@ -92,12 +94,11 @@
            m_IosProgressContainer.gameObject.SetActive(false);
            //打包版本 + 功能版本 + 语言ID
            VersionConfigEx.Get().ContinueWith(config =>
             {
                 if (this == null) return; // destroyed check after await
                 m_Version.text = StringUtility.Concat(config.version, "_", config.buildIndex.ToString(),
                     "_", InitialFunctionConfig.Get("version").Numerical1, " ", LocalResManager.Id);
             }).Forget();
            var config = VersionConfigEx.config;
                m_Version.text = StringUtility.Concat(config.version, "_", config.buildIndex.ToString(),
                    "_", InitialFunctionConfig.Get("version").Numerical1, " ", LocalResManager.Id);
            // m_Version.text = StringUtility.Concat(VersionConfigEx.Get().version, "_", VersionConfigEx.Get().buildIndex.ToString(),
            //     "_", InitialFunctionConfig.Get("version").Numerical1, " ", LocalResManager.Id);
        }
@@ -136,11 +137,9 @@
    private void UpdateProgress()
    {
        float value;
        if (LocalResManager.step == LocalResManager.LoadDllStep.None)
            value = 0.05f;
        else
            value = DownLoadAndDiscompressTask.Instance.progress;
        float value = LocalResManager.step == LocalResManager.LoadDllStep.None
            ? 0.05f
            : Mathf.Max(0.05f, Launch.DllLoadProgress);
        if (float.IsNaN(value) || value < 0.05)
        {
@@ -159,36 +158,10 @@
    }
    public static GameObject OpenWindow()
    public static async UniTask<GameObject> OpenWindow()
    {
        GameObject window = GameObject.Instantiate(LocalResManager.Instance.LoadBuiltInPrefab("LaunchExWin"));
        GameObject window = GameObject.Instantiate(await LocalResManager.Instance.LoadBuiltInPrefabAsync("LaunchExWin"));
        window.transform.localScale = Vector3.zero;
        return window;
    }
    /// <summary>
    /// 异步打开 Launch 窗口(WebGL 兼容)。
    /// 通过 YooAsset 异步加载预制体和精灵,适用于所有平台。
    /// </summary>
    public static async UniTask<GameObject> OpenWindowAsync()
    {
        var prefab = await LocalResManager.Instance.LoadBuiltInPrefabAsync("LaunchExWin");
        if (prefab == null)
        {
            Debug.LogError("[LaunchExWin] Failed to load LaunchExWin prefab asynchronously.");
            return null;
        }
        GameObject window = GameObject.Instantiate(prefab);
        window.transform.localScale = Vector3.zero;
        // 异步加载精灵
        var launchWin = window.GetComponent<LaunchExWin>();
        if (launchWin != null)
        {
            await launchWin.InitSpritesAsync();
        }
        return window;
    }
}
Assets/Launch/Utility/LaunchUtility.cs
@@ -19,6 +19,12 @@
        MajorUpdate     // 大版本更新,需要重新下载
    }
    //复制到剪贴板
#if UNITY_WEBGL && !UNITY_EDITOR
    [System.Runtime.InteropServices.DllImport("__Internal")]
    public static extern void UIHelper_CopyToClipboard(string text);
#endif
    /// <summary>
    /// 比较版本并返回更新类型
    /// </summary>
@@ -117,7 +123,9 @@
        try
        {
            // 首先尝试从Resources加载版本文件
            TextAsset versionAsset = Resources.Load<TextAsset>("version");
            var resRequest = Resources.LoadAsync<TextAsset>("version");
            await resRequest;
            TextAsset versionAsset = resRequest.asset as TextAsset;
            
            if (versionAsset != null)
            {
Assets/Launch/VersionConfigEx.cs
@@ -66,20 +66,8 @@
    {
        get
        {
            if (string.IsNullOrEmpty(m_GameId))
            {
                var gameText = Resources.Load<TextAsset>("Game");
                if (gameText != null)
                {
                    m_GameId = gameText.text;
                }
                else
                {
                    m_GameId = "xssg";
                }
            }
            return m_GameId;
            // m_GameId 由 Get() 异步预加载,此处直接返回缓存值
            return string.IsNullOrEmpty(m_GameId) ? "xssg" : m_GameId;
        }
    }
@@ -159,7 +147,7 @@
        set { m_SdkFileName = value; }
    }
    static VersionConfigEx config = null;
    public static VersionConfigEx config = null;
    public async static UniTask<VersionConfigEx> Get()
    {
        if (config == null)
@@ -173,6 +161,15 @@
            }
        }
        // 预加载 gameId
        if (config != null && string.IsNullOrEmpty(config.m_GameId))
        {
            var gameReq = Resources.LoadAsync<TextAsset>("Game");
            await gameReq;
            TextAsset gameText = gameReq.asset as TextAsset;
            config.m_GameId = gameText != null ? gameText.text : "xssg";
        }
        return config;
    }
Assets/Plugins/Android/launcherTemplate.gradle
@@ -5,6 +5,7 @@
    }
android {
    namespace "**NAMESPACE**"
    ndkPath "**NDKPATH**"
    compileSdkVersion **APIVERSION**
Assets/Plugins/Android/mainTemplate.gradle
@@ -3,8 +3,8 @@
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation(name: 'vndjgp_v', ext: 'aar') //x.x.x为具体版本
    //SDK基础能力
    implementation(name: 'vndjgp_v', ext: 'aar') //x.x.xΪ����汾
    //SDK��������
    implementation 'com.appsflyer:af-android-sdk:6.9.0'
    implementation 'com.android.installreferrer:installreferrer:2.2'
    api 'androidx.annotation:annotation:1.5.0'
@@ -19,21 +19,22 @@
    }
    //base  theme
    api 'androidx.appcompat:appcompat:1.2.0'
    //ald ui用
    //ald ui��
    api 'androidx.cardview:cardview:1.0.0'
    //谷歌能力
    implementation 'com.google.android.gms:play-services-auth:20.1.0'  //google服务
    implementation("com.android.billingclient:billing:7.0.0")  // google内购
    implementation 'androidx.percentlayout:percentlayout:1.0.0'  //google提供的支持库
    implementation 'com.google.android.play:review:2.0.1'  //google评价
    //�ȸ�����
    implementation 'com.google.android.gms:play-services-auth:20.1.0'  //google����
    implementation("com.android.billingclient:billing:7.0.0")  // google�ڹ�
    implementation 'androidx.percentlayout:percentlayout:1.0.0'  //google�ṩ��֧�ֿ�
    implementation 'com.google.android.play:review:2.0.1'  //google����
    //facebook能力
    //facebook����
    implementation 'com.facebook.android:facebook-login:latest.release'
    implementation 'com.facebook.android:facebook-share:latest.release'
**DEPS**}
android {
    namespace "com.unity3d.player"
    ndkPath "**NDKPATH**"
    compileSdkVersion **APIVERSION**
Assets/Plugins/NativeWebSocket/Assets/WebSocket/WebSocket.jslib
@@ -198,7 +198,26 @@
            if (webSocketState.onError) {
                var msg = "WebSocket error.";
                var pageProtocol = (typeof window !== 'undefined' && window.location) ? window.location.protocol : 'unknown:';
                var pageHref = (typeof window !== 'undefined' && window.location) ? window.location.href : 'unknown';
                var readyState = instance.ws ? instance.ws.readyState : -1;
                var hints = [];
                if (pageProtocol === 'https:' && instance.url.indexOf('ws://') === 0)
                    hints.push('HTTPS 页面不能连接非安全 ws://,需要改为 wss://');
                if (readyState === 3)
                    hints.push('连接在握手阶段已关闭,常见原因:目标端口不是 WebSocket 服务、服务端未处理 Upgrade 握手、端口未开放或反向代理未透传 Upgrade 头');
                var msg = '[JSLIB WebSocket] error url=' + instance.url +
                    ' pageProtocol=' + pageProtocol +
                    ' readyState=' + readyState +
                    ' hasSubProtocols=' + (instance.subprotocols && instance.subprotocols.length > 0 ? 'true' : 'false') +
                    ' page=' + pageHref;
                if (hints.length > 0)
                    msg += ' hints=' + hints.join(' | ');
                var length = lengthBytesUTF8(msg) + 1;
                var buffer = _malloc(length);
                stringToUTF8(msg, buffer, length);
@@ -218,6 +237,24 @@
            if (webSocketState.debug)
                console.log("[JSLIB WebSocket] Closed.");
            if (webSocketState.onError && ev.code === 1006) {
                var pageProtocol = (typeof window !== 'undefined' && window.location) ? window.location.protocol : 'unknown:';
                var msg = '[JSLIB WebSocket] abnormal close code=1006 url=' + instance.url +
                    ' pageProtocol=' + pageProtocol +
                    ' reason=' + (ev.reason || '') +
                    ' wasClean=' + (ev.wasClean ? 'true' : 'false') +
                    ' hint=通常表示握手失败或网络层直接拒绝;如果当前端口原本是 TCP 游戏服端口,需要单独提供 WebSocket 网关';
                var length = lengthBytesUTF8(msg) + 1;
                var buffer = _malloc(length);
                stringToUTF8(msg, buffer, length);
                try {
                    Module.dynCall_vii(webSocketState.onError, instanceId, buffer);
                } finally {
                    _free(buffer);
                }
            }
            if (webSocketState.onClose)
                Module.dynCall_vii(webSocketState.onClose, instanceId, ev.code);
Assets/Plugins/WebGL.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a9f0f8eb5c775554f921082286aae669
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/WebGL/Clipboard.jslib
New file
@@ -0,0 +1,21 @@
mergeInto(LibraryManager.library, {
  UIHelper_CopyToClipboard: function(textPtr) {
    var text = UTF8ToString(textPtr);
    if (navigator.clipboard && navigator.clipboard.writeText) {
      navigator.clipboard.writeText(text).catch(function(err) {
        console.warn("navigator.clipboard.writeText failed: " + err);
      });
    } else {
      // 降级方案:execCommand(部分旧浏览器)
      var el = document.createElement("textarea");
      el.value = text;
      el.style.position = "fixed";
      el.style.opacity = "0";
      document.body.appendChild(el);
      el.focus();
      el.select();
      try { document.execCommand("copy"); } catch(e) {}
      document.body.removeChild(el);
    }
  }
});
Assets/Plugins/WebGL/Clipboard.jslib.meta
New file
@@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: ccfd2e77c51e4b745a0a42d02c271480
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 0
      settings:
        DefaultValueInitialized: true
  - first:
      WebGL: WebGL
    second:
      enabled: 1
      settings: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Resources/Scenes/Launch.unity
@@ -152,8 +152,8 @@
  m_Script: {fileID: 11500000, guid: b3c8dbd062ed4d5459217dccb0ee389f, type: 3}
  m_Name: 
  m_EditorClassIdentifier: 
  isOpenConfigTesting: 0
  isOpenBattleDebug: 1
  isOpenSkillLogFile: 0
--- !u!4 &421128702
Transform:
  m_ObjectHideFlags: 0
Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs
@@ -812,6 +812,19 @@
                }
                this.meshRenderer.materials = maskMaterials.materialsOutsideMask;
            }
#if UNITY_EDITOR
                if (Application.isPlaying)
                {
                    for (int i = 0; i < meshRenderer.materials.Length; i++) {
                        Material _material = meshRenderer.materials[i];
                        if (_material != null)
                        {
                            _material.shader = Shader.Find(_material.shader.name);
                        }
                    }
                }
#endif
        }
        private bool InitSpriteMaskMaterialsInsideMask () {
Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader
@@ -1,4 +1,4 @@
// Spine/Skeleton PMA Screen
// Spine/Skeleton PMA Screen
// - single color multiply tint
// - unlit
// - Premultiplied alpha Multiply blending
@@ -48,7 +48,7 @@
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
            ENDCG
        }
Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Multiply.shader
@@ -1,4 +1,4 @@
// Spine/Skeleton PMA Multiply
// Spine/Skeleton PMA Multiply
// - single color multiply tint
// - unlit
// - Premultiplied alpha Multiply blending
@@ -48,7 +48,7 @@
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
            ENDCG
        }
Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Screen.shader
@@ -1,4 +1,4 @@
// Spine/Skeleton PMA Screen
// Spine/Skeleton PMA Screen
// - single color multiply tint
// - unlit
// - Premultiplied alpha Multiply blending
@@ -48,7 +48,7 @@
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #include "../CGIncludes/Spine-BlendModes-NormalPass.cginc"
            ENDCG
        }
Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader
@@ -66,8 +66,8 @@
            #pragma vertex vertOutlineGraphic
            #pragma fragment fragOutline
            #define SKELETON_GRAPHIC
            #pragma shader_feature _ _USE8NEIGHBOURHOOD_ON
            #pragma shader_feature _ _USE_SCREENSPACE_OUTLINE_WIDTH
            #pragma multi_compile _ _USE8NEIGHBOURHOOD_ON
            #pragma multi_compile _ _USE_SCREENSPACE_OUTLINE_WIDTH
            #include "../CGIncludes/Spine-Outline-Pass.cginc"
            ENDCG
        }
Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader
@@ -41,9 +41,9 @@
            CGPROGRAM
            #pragma vertex vertOutline
            #pragma fragment fragOutline
            #pragma shader_feature _ _USE8NEIGHBOURHOOD_ON
            #pragma shader_feature _ _USE_SCREENSPACE_OUTLINE_WIDTH
            #pragma shader_feature _ _OUTLINE_FILL_INSIDE
            #pragma multi_compile _ _USE8NEIGHBOURHOOD_ON
            #pragma multi_compile _ _USE_SCREENSPACE_OUTLINE_WIDTH
            #pragma multi_compile _ _OUTLINE_FILL_INSIDE
            #include "CGIncludes/Spine-Outline-Pass.cginc"
            ENDCG
        }
Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader
@@ -55,9 +55,9 @@
            CGPROGRAM
            #pragma vertex vertOutline
            #pragma fragment fragOutline
            #pragma shader_feature _ _USE8NEIGHBOURHOOD_ON
            #pragma shader_feature _ _USE_SCREENSPACE_OUTLINE_WIDTH
            #pragma shader_feature _ _OUTLINE_FILL_INSIDE
            #pragma multi_compile _ _USE8NEIGHBOURHOOD_ON
            #pragma multi_compile _ _USE_SCREENSPACE_OUTLINE_WIDTH
            #pragma multi_compile _ _OUTLINE_FILL_INSIDE
            #include "CGIncludes/Spine-Outline-Pass.cginc"
            ENDCG
        }
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Additive.shader
@@ -65,8 +65,8 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Fill.shader
@@ -65,8 +65,8 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Grayscale.shader
@@ -63,8 +63,8 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Multiply.shader
@@ -65,8 +65,8 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic-Screen.shader
@@ -65,8 +65,8 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/Spine-SkeletonGraphic.shader
@@ -65,8 +65,8 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Additive.shader
@@ -66,9 +66,9 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Multiply.shader
@@ -66,9 +66,9 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack-Screen.shader
@@ -66,9 +66,9 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
Assets/Spine/Runtime/spine-unity/Shaders/SkeletonGraphic/TintBlack/Spine-SkeletonGraphic-TintBlack.shader
@@ -66,9 +66,9 @@
            Name "Normal"
        CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
            #pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _CANVAS_GROUP_COMPATIBLE
            #pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Fill.shader
@@ -41,7 +41,7 @@
            Name "Normal"
            CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader
@@ -46,9 +46,9 @@
            Blend One OneMinusSrcAlpha
            CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _DOUBLE_SIDED_LIGHTING
            #pragma shader_feature _ _LIGHT_AFFECTS_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _DOUBLE_SIDED_LIGHTING
            #pragma multi_compile _ _LIGHT_AFFECTS_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader
@@ -45,9 +45,9 @@
            Blend One OneMinusSrcAlpha
            CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _DOUBLE_SIDED_LIGHTING
            #pragma shader_feature _ _LIGHT_AFFECTS_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _DOUBLE_SIDED_LIGHTING
            #pragma multi_compile _ _LIGHT_AFFECTS_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 2.0
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Tint.shader
@@ -47,8 +47,8 @@
            Name "Normal"
            CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-TintBlack.shader
@@ -50,8 +50,8 @@
            Name "Normal"
            CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma shader_feature _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _DARK_COLOR_ALPHA_ADDITIVE
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader
@@ -38,7 +38,7 @@
            Name "Normal"
            CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
Assets/Spine/Runtime/spine-unity/Shaders/Spine-Special-Skeleton-Grayscale.shader
@@ -41,7 +41,7 @@
            Name "Normal"
            CGPROGRAM
            #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
            #pragma multi_compile _ _STRAIGHT_ALPHA_INPUT
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesPixelLit.shader
@@ -85,21 +85,21 @@
            CGPROGRAM
                #pragma target 3.0
                #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
                #pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
                #pragma shader_feature _NORMALMAP
                #pragma shader_feature _ALPHA_CLIP
                #pragma shader_feature _EMISSION
                #pragma shader_feature _RIM_LIGHTING
                #pragma shader_feature _DIFFUSE_RAMP
                #pragma shader_feature _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
                #pragma shader_feature _COLOR_ADJUST
                #pragma shader_feature _TEXTURE_BLEND
                #pragma shader_feature _SPHERICAL_HARMONICS
                #pragma shader_feature _FOG
                #pragma shader_feature _LIGHT_AFFECTS_ADDITIVE
                #pragma shader_feature _TINT_BLACK_ON
                #pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma multi_compile _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
                #pragma multi_compile _ _SPECULAR _SPECULAR_GLOSSMAP
                #pragma multi_compile _NORMALMAP
                #pragma multi_compile _ALPHA_CLIP
                #pragma multi_compile _EMISSION
                #pragma multi_compile _RIM_LIGHTING
                #pragma multi_compile _DIFFUSE_RAMP
                #pragma multi_compile _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
                #pragma multi_compile _COLOR_ADJUST
                #pragma multi_compile _TEXTURE_BLEND
                #pragma multi_compile _SPHERICAL_HARMONICS
                #pragma multi_compile _FOG
                #pragma multi_compile _LIGHT_AFFECTS_ADDITIVE
                #pragma multi_compile _TINT_BLACK_ON
                #pragma multi_compile_fwdbase
                #pragma fragmentoption ARB_precision_hint_fastest
@@ -124,16 +124,16 @@
            CGPROGRAM
                #pragma target 3.0
                #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
                #pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
                #pragma shader_feature _NORMALMAP
                #pragma shader_feature _ALPHA_CLIP
                #pragma shader_feature _DIFFUSE_RAMP
                #pragma shader_feature _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
                #pragma shader_feature _COLOR_ADJUST
                #pragma shader_feature _TEXTURE_BLEND
                #pragma shader_feature _FOG
                #pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma multi_compile _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
                #pragma multi_compile _ _SPECULAR _SPECULAR_GLOSSMAP
                #pragma multi_compile _NORMALMAP
                #pragma multi_compile _ALPHA_CLIP
                #pragma multi_compile _DIFFUSE_RAMP
                #pragma multi_compile _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
                #pragma multi_compile _COLOR_ADJUST
                #pragma multi_compile _TEXTURE_BLEND
                #pragma multi_compile _FOG
                #pragma multi_compile_fwdadd_fullshadows
                #pragma fragmentoption ARB_precision_hint_fastest
Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader
@@ -66,12 +66,12 @@
            Lighting Off
            CGPROGRAM
                #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma shader_feature _ALPHA_CLIP
                #pragma shader_feature _TEXTURE_BLEND
                #pragma shader_feature _COLOR_ADJUST
                #pragma shader_feature _FOG
                #pragma shader_feature _TINT_BLACK_ON
                #pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma multi_compile _ALPHA_CLIP
                #pragma multi_compile _TEXTURE_BLEND
                #pragma multi_compile _COLOR_ADJUST
                #pragma multi_compile _FOG
                #pragma multi_compile _TINT_BLACK_ON
                #pragma fragmentoption ARB_precision_hint_fastest
                #pragma multi_compile_fog
Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesVertexLit.shader
@@ -86,21 +86,21 @@
            CGPROGRAM
                #pragma target 3.0
                #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
                #pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
                #pragma shader_feature _NORMALMAP
                #pragma shader_feature _ALPHA_CLIP
                #pragma shader_feature _EMISSION
                #pragma shader_feature _DIFFUSE_RAMP
                #pragma shader_feature _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
                #pragma shader_feature _COLOR_ADJUST
                #pragma shader_feature _RIM_LIGHTING
                #pragma shader_feature _TEXTURE_BLEND
                #pragma shader_feature _SPHERICAL_HARMONICS
                #pragma shader_feature _FOG
                #pragma shader_feature _LIGHT_AFFECTS_ADDITIVE
                #pragma shader_feature _TINT_BLACK_ON
                #pragma multi_compile _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
                #pragma multi_compile _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
                #pragma multi_compile _ _SPECULAR _SPECULAR_GLOSSMAP
                #pragma multi_compile _NORMALMAP
                #pragma multi_compile _ALPHA_CLIP
                #pragma multi_compile _EMISSION
                #pragma multi_compile _DIFFUSE_RAMP
                #pragma multi_compile _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
                #pragma multi_compile _COLOR_ADJUST
                #pragma multi_compile _RIM_LIGHTING
                #pragma multi_compile _TEXTURE_BLEND
                #pragma multi_compile _SPHERICAL_HARMONICS
                #pragma multi_compile _FOG
                #pragma multi_compile _LIGHT_AFFECTS_ADDITIVE
                #pragma multi_compile _TINT_BLACK_ON
                #pragma fragmentoption ARB_precision_hint_fastest
                #pragma multi_compile_fog
ProjectSettings/GraphicsSettings.asset
@@ -3,7 +3,7 @@
--- !u!30 &1
GraphicsSettings:
  m_ObjectHideFlags: 0
  serializedVersion: 13
  serializedVersion: 15
  m_Deferred:
    m_Mode: 1
    m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
@@ -13,9 +13,6 @@
  m_ScreenSpaceShadows:
    m_Mode: 1
    m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
  m_LegacyDeferred:
    m_Mode: 1
    m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
  m_DepthNormals:
    m_Mode: 1
    m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
@@ -37,7 +34,14 @@
  - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
  - {fileID: 4800000, guid: fa95b0fb6983c0f40a152e6f9aa82bfb, type: 3}
  - {fileID: 4800000, guid: a1e4ab34b07f81e4e94f0d241c416669, type: 3}
  - {fileID: 4800000, guid: c02377d9afbb50e49ab27049e59fb5f8, type: 3}
  - {fileID: 4800000, guid: 81eed00979b4e554cb3022dc0b83b517, type: 3}
  - {fileID: 4800000, guid: cfbf95ed0fe6c554c8c2ee6c8325937c, type: 3}
  - {fileID: 4800000, guid: c61244023592f95479fddd71b5067683, type: 3}
  m_PreloadedShaders: []
  m_PreloadShadersBatchTimeLimit: -1
  m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
  m_CustomRenderPipeline: {fileID: 0}
  m_TransparencySortMode: 0
@@ -48,6 +52,7 @@
  m_LightmapStripping: 0
  m_FogStripping: 0
  m_InstancingStripping: 0
  m_BrgStripping: 0
  m_LightmapKeepPlain: 1
  m_LightmapKeepDirCombined: 1
  m_LightmapKeepDynamicPlain: 1
@@ -62,3 +67,7 @@
  m_LightsUseColorTemperature: 0
  m_DefaultRenderingLayerMask: 1
  m_LogWhenShaderIsCompiled: 0
  m_SRPDefaultSettings: {}
  m_LightProbeOutsideHullStrategy: 0
  m_CameraRelativeLightCulling: 0
  m_CameraRelativeShadowCulling: 0
ProjectSettings/ProjectSettings.asset
@@ -44,8 +44,8 @@
  m_HolographicTrackingLossScreen: {fileID: 0}
  defaultScreenWidth: 1920
  defaultScreenHeight: 1080
  defaultScreenWidthWeb: 960
  defaultScreenHeightWeb: 600
  defaultScreenWidthWeb: 750
  defaultScreenHeightWeb: 1334
  m_StereoRenderingPath: 0
  m_ActiveColorSpace: 0
  unsupportedMSAAFallback: 0
@@ -175,7 +175,7 @@
  AndroidTargetSdkVersion: 0
  AndroidPreferredInstallLocation: 1
  aotOptions: 
  stripEngineCode: 1
  stripEngineCode: 0
  iPhoneStrippingLevel: 0
  iPhoneScriptCallOptimization: 0
  ForceInternetPermission: 0
@@ -673,21 +673,21 @@
  blurSplashScreenBackground: 0
  spritePackerPolicy: 
  webGLMemorySize: 32
  webGLExceptionSupport: 1
  webGLExceptionSupport: 3
  webGLNameFilesAsHashes: 0
  webGLShowDiagnostics: 0
  webGLDataCaching: 1
  webGLDebugSymbols: 0
  webGLDataCaching: 0
  webGLDebugSymbols: 2
  webGLEmscriptenArgs: 
  webGLModulesDirectory: 
  webGLTemplate: APPLICATION:Default
  webGLAnalyzeBuildSize: 0
  webGLUseEmbeddedResources: 0
  webGLCompressionFormat: 0
  webGLCompressionFormat: 2
  webGLWasmArithmeticExceptions: 0
  webGLLinkerTarget: 1
  webGLThreadsSupport: 0
  webGLDecompressionFallback: 0
  webGLDecompressionFallback: 1
  webGLInitialMemorySize: 32
  webGLMaximumMemorySize: 2048
  webGLMemoryGrowthMode: 2
@@ -717,6 +717,7 @@
  platformArchitecture: {}
  scriptingBackend:
    Android: 1
    Standalone: 1
  il2cppCompilerConfiguration: {}
  il2cppCodeGeneration: {}
  managedStrippingLevel: