diff --git a/AcDream.slnx b/AcDream.slnx
index b003cfca..134a5e72 100644
--- a/AcDream.slnx
+++ b/AcDream.slnx
@@ -16,7 +16,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 00000000..60cfc63c
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,20 @@
+
+
+
+ net10.0
+ enable
+ enable
+ latest
+ latest
+ true
+ true
+
+
+ true
+ $(MSBuildProjectDirectory)/packages.neutral.lock.json
+ $(MSBuildProjectDirectory)/packages.$(RuntimeIdentifier).lock.json
+
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 00000000..8b8a2d8f
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,38 @@
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/NuGet.Config b/NuGet.Config
new file mode 100644
index 00000000..1ca993fd
--- /dev/null
+++ b/NuGet.Config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/release-gate.md b/docs/release-gate.md
index 9f3dfdb0..7294156d 100644
--- a/docs/release-gate.md
+++ b/docs/release-gate.md
@@ -7,10 +7,36 @@ The default release gate is repository-owned and uses the SDK feature band in
pwsh ./tools/run-release-gate.ps1
```
-The command restores and builds `AcDream.slnx`, discovers every project under
-`tests/` that declares `Microsoft.NET.Test.Sdk` or `IsTestProject`, verifies
-that the solution includes it, and runs each test assembly once in a fresh
-Release process. It does not retry failures.
+The command verifies that `AcDream.slnx` contains every `.csproj` under `src/`,
+`tests/`, and `tools/`, performs a locked restore, builds that complete graph,
+then discovers and runs every default test assembly once in a fresh Release
+process. It does not retry failures. The graph currently contains 44 projects,
+including all 13 maintained .NET tools; data-dependent tools are built but are
+not executed as tests.
+
+Build and dependency policy is repository-owned:
+
+- `global.json` pins the accepted .NET SDK feature band;
+- `Directory.Build.props` supplies the common target framework, language,
+ nullable, analyzer, warnings-as-errors, deterministic-build, and lock-file
+ settings;
+- `Directory.Packages.props` is the only direct package-version table;
+- `NuGet.Config` clears machine sources and permits only `nuget.org`; and
+- each supported project commits its own `packages.neutral.lock.json`; shipped
+ source projects also commit `packages.win-x64.lock.json` and
+ `packages.linux-x64.lock.json` for RID-specific publishes.
+
+The nonstandard neutral name is intentional. NuGet always prefers a
+conventional `packages.lock.json` when one exists, even when
+`NuGetLockFilePath` selects a RID-specific file. Do not introduce conventional
+lock files beside these three repository-owned graphs.
+
+The gate uses `dotnet restore --locked-mode --force-evaluate`. The forced
+evaluation makes the result independent of stale `obj/` assets; locked mode
+still prevents rewriting. If a project or central package version disagrees
+with a committed lock file, restore fails instead of silently changing the
+dependency graph. The launcher's nested Bake publish uses the matching
+RID-specific lock and the same forced locked evaluation.
Each restore, build, and test process has an outer hard timeout. Every test
also runs with VSTest blame-hang enabled: after three minutes in one test, the
@@ -24,7 +50,7 @@ Evidence is written to `artifacts/release-gate/`:
RID, bounds, process outcomes, assembly list, and
executed/passed/skipped/failed totals;
- `environment.txt` records `dotnet --info`, configured NuGet sources, and the
- discovered test-project set;
+ supported project set, package-lock hashes, and discovered test-project set;
- `test-results/` contains one TRX per assembly plus any VSTest hang sequence
and dump files;
- `logs/` contains the exact command and complete output for every child
@@ -32,10 +58,39 @@ Evidence is written to `artifacts/release-gate/`:
- `SHA256SUMS.txt` hashes the evidence bundle.
The complete gate runs on Windows because it exercises the full product and
-launcher surface. `.github/workflows/headless-portability.yml` remains the
-focused Windows/Linux portability and Vulkan evidence workflow; those jobs are
-not substitutes for the complete gate.
+launcher surface. Hosted GitHub Actions execution is deliberately parked as of
+2026-08-18 while runner policy is decided; the checked-in workflow definitions
+are preserved for later use. Until then, the repository command above is the
+authoritative gate. Focused portability or Vulkan jobs are not substitutes for
+the complete gate.
Environment-dependent tests retain their current skip behavior and are counted
explicitly in the JSON/TRX report. Classifying or replacing those tests belongs
to R3, not to this gate checkpoint.
+
+## Updating dependencies
+
+Do not edit lock files by hand. To make an intentional dependency change:
+
+1. Change the version once in `Directory.Packages.props` (or add/remove a
+ versionless `PackageReference` in a project).
+2. Regenerate the neutral graph and both supported release-RID graphs from the
+ repository root:
+
+ ```powershell
+ pwsh ./tools/update-package-locks.ps1
+ ```
+
+3. Review the central-version and `packages.*.lock.json` diffs.
+4. Prove locked resolution and run the gate:
+
+ ```powershell
+ dotnet restore AcDream.slnx --locked-mode --force-evaluate
+ pwsh ./tools/run-release-gate.ps1
+ ```
+
+The one site-scoped `xUnit1025` suppression in
+`MotionInterpreterTests.ContactAllowsMove_GroundedPosture_StillAllowsMove`
+preserves a known redundant historical input until R3. It is deliberately not
+in the central warning policy, so any new duplicate theory row still fails the
+build.
diff --git a/src/AcDream.App/AcDream.App.csproj b/src/AcDream.App/AcDream.App.csproj
index 80489ef1..050a4894 100644
--- a/src/AcDream.App/AcDream.App.csproj
+++ b/src/AcDream.App/AcDream.App.csproj
@@ -26,32 +26,32 @@
independent of the deleted GL classes. The package stays; NuGet
PackageReferences are not forwarded from ProjectReferences so we must
declare it explicitly here. -->
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/AcDream.App/packages.linux-x64.lock.json b/src/AcDream.App/packages.linux-x64.lock.json
new file mode 100644
index 00000000..74f93d51
--- /dev/null
+++ b/src/AcDream.App/packages.linux-x64.lock.json
@@ -0,0 +1,546 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Arch": {
+ "type": "Direct",
+ "requested": "[2.1.0, )",
+ "resolved": "2.1.0",
+ "contentHash": "Z9zxQztEvD/c2tsdW+LDm5E3Rd04JKeWRa6S0JOBfEFE7800+JLa7pgMAL6I/hvOY6q93QXvQ6Y+5E/TPc5Tfw==",
+ "dependencies": {
+ "Arch.LowLevel": "1.1.5",
+ "Collections.Pooled": "2.0.0-preview.27",
+ "CommunityToolkit.HighPerformance": "8.2.2",
+ "Microsoft.Extensions.ObjectPool": "7.0.0",
+ "ZeroAllocJobScheduler": "1.1.2"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "Direct",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "Serilog.Sinks.Console": {
+ "type": "Direct",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
+ "dependencies": {
+ "Serilog": "4.0.0"
+ }
+ },
+ "Silk.NET.Input": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "O8EaDRWGOcKniZ2VxKD/xOmugzUJz747KpqGRw3cezDsz8nD66OZW217o1rT06cG76f8eYigy/yY6eRdhRqHHQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.Creative": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "++3+P3G2CuV4ZbD9EG81XAxsu2enofp6jFhz6GmqEf96ZrC+3COMJPgzFtjDnPswuNOFK8FWzTCucdbw1jGXBQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.EXT": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "nhn0wv7o+RFqcxv5QTbHyEcZAf4ojqyK5aE4xoIyBubIlHBPXvV46O7w7ybo0z0ChZCBBS/teP42vaxx5YP+tQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Soft.Native": {
+ "type": "Direct",
+ "requested": "[1.23.1, )",
+ "resolved": "1.23.1",
+ "contentHash": "gZIbksInoiXbJZmepYnTs5O6Edg5O5k86c1+Uus0zSaVnQx5WRbInGz2VTlvudbs0qAqXs/asL1YvJzco/nfAQ=="
+ },
+ "Silk.NET.Vulkan": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "3/irtlSWXZ3eTi8N6nelI6L34NTB8ZJHpqVMNzZx2aX7Ek9YEQ34NoQW8/Tljrtmkg8KRhHW8hKTEzZaKV8PgA==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.EXT": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "+Oth189ksRiL6HvGCwIdnsYHawqrbO8y49u1H61z3wsfcHhQZeVDYe/wF5LD7fk3NcdgDvwFD3mLm1QWhdZySw==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.KHR": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "uRaf4j+SmH3DumjSSSUbFg33BnsGZUyXGj93O9NgGKZSJN3OTmNmQDxRew+/KiVLcgH6qzbto8aNGZ++j9GFWg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "OPNPmt/lRyUKVYrFLQXVxyATqD3MKLc1iY1oKx1/2GppgmZxVZPwN12tekrQ4C7408kgB1L5JD1Wnirqqeb2kg==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "Direct",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "Direct",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ },
+ "Arch.LowLevel": {
+ "type": "Transitive",
+ "resolved": "1.1.5",
+ "contentHash": "kc6T2qAsgzdb5RV+RIqVQ33LROhgXmA5fZRUhXRK+AJ1J58NML1i2M6XTKIj1ISirCwuqgYnM4qYkhqGcngG1g==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.2.2"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "Collections.Pooled": {
+ "type": "Transitive",
+ "resolved": "2.0.0-preview.27",
+ "contentHash": "VS3uHc1GNamanS1i1hQ3PoZUddIagCswVMWvucAgqWwY2KVwgL2Q7raGu0hTqP/CWuROoq0RiNbIvu4ST1bMzg=="
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "ZeroAllocJobScheduler": {
+ "type": "Transitive",
+ "resolved": "1.1.2",
+ "contentHash": "PKu/zSvwV1fWxt8+CEW15O9OlQ2zB9UoeAaor/aJJ0QeTKxxSjigczYLoVPKjYLAQu3ddZQd7Z3zplVTtUgigQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "acdream.ui.abstractions": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ }
+ },
+ "net10.0/linux-x64": {
+ "Silk.NET.OpenAL.Soft.Native": {
+ "type": "Direct",
+ "requested": "[1.23.1, )",
+ "resolved": "1.23.1",
+ "contentHash": "gZIbksInoiXbJZmepYnTs5O6Edg5O5k86c1+Uus0zSaVnQx5WRbInGz2VTlvudbs0qAqXs/asL1YvJzco/nfAQ=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.App/packages.neutral.lock.json b/src/AcDream.App/packages.neutral.lock.json
new file mode 100644
index 00000000..cad90ae7
--- /dev/null
+++ b/src/AcDream.App/packages.neutral.lock.json
@@ -0,0 +1,533 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Arch": {
+ "type": "Direct",
+ "requested": "[2.1.0, )",
+ "resolved": "2.1.0",
+ "contentHash": "Z9zxQztEvD/c2tsdW+LDm5E3Rd04JKeWRa6S0JOBfEFE7800+JLa7pgMAL6I/hvOY6q93QXvQ6Y+5E/TPc5Tfw==",
+ "dependencies": {
+ "Arch.LowLevel": "1.1.5",
+ "Collections.Pooled": "2.0.0-preview.27",
+ "CommunityToolkit.HighPerformance": "8.2.2",
+ "Microsoft.Extensions.ObjectPool": "7.0.0",
+ "ZeroAllocJobScheduler": "1.1.2"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "Direct",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "Serilog.Sinks.Console": {
+ "type": "Direct",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
+ "dependencies": {
+ "Serilog": "4.0.0"
+ }
+ },
+ "Silk.NET.Input": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "O8EaDRWGOcKniZ2VxKD/xOmugzUJz747KpqGRw3cezDsz8nD66OZW217o1rT06cG76f8eYigy/yY6eRdhRqHHQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.Creative": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "++3+P3G2CuV4ZbD9EG81XAxsu2enofp6jFhz6GmqEf96ZrC+3COMJPgzFtjDnPswuNOFK8FWzTCucdbw1jGXBQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.EXT": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "nhn0wv7o+RFqcxv5QTbHyEcZAf4ojqyK5aE4xoIyBubIlHBPXvV46O7w7ybo0z0ChZCBBS/teP42vaxx5YP+tQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Soft.Native": {
+ "type": "Direct",
+ "requested": "[1.23.1, )",
+ "resolved": "1.23.1",
+ "contentHash": "gZIbksInoiXbJZmepYnTs5O6Edg5O5k86c1+Uus0zSaVnQx5WRbInGz2VTlvudbs0qAqXs/asL1YvJzco/nfAQ=="
+ },
+ "Silk.NET.Vulkan": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "3/irtlSWXZ3eTi8N6nelI6L34NTB8ZJHpqVMNzZx2aX7Ek9YEQ34NoQW8/Tljrtmkg8KRhHW8hKTEzZaKV8PgA==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.EXT": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "+Oth189ksRiL6HvGCwIdnsYHawqrbO8y49u1H61z3wsfcHhQZeVDYe/wF5LD7fk3NcdgDvwFD3mLm1QWhdZySw==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.KHR": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "uRaf4j+SmH3DumjSSSUbFg33BnsGZUyXGj93O9NgGKZSJN3OTmNmQDxRew+/KiVLcgH6qzbto8aNGZ++j9GFWg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "OPNPmt/lRyUKVYrFLQXVxyATqD3MKLc1iY1oKx1/2GppgmZxVZPwN12tekrQ4C7408kgB1L5JD1Wnirqqeb2kg==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "Direct",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "Direct",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ },
+ "Arch.LowLevel": {
+ "type": "Transitive",
+ "resolved": "1.1.5",
+ "contentHash": "kc6T2qAsgzdb5RV+RIqVQ33LROhgXmA5fZRUhXRK+AJ1J58NML1i2M6XTKIj1ISirCwuqgYnM4qYkhqGcngG1g==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.2.2"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "Collections.Pooled": {
+ "type": "Transitive",
+ "resolved": "2.0.0-preview.27",
+ "contentHash": "VS3uHc1GNamanS1i1hQ3PoZUddIagCswVMWvucAgqWwY2KVwgL2Q7raGu0hTqP/CWuROoq0RiNbIvu4ST1bMzg=="
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "ZeroAllocJobScheduler": {
+ "type": "Transitive",
+ "resolved": "1.1.2",
+ "contentHash": "PKu/zSvwV1fWxt8+CEW15O9OlQ2zB9UoeAaor/aJJ0QeTKxxSjigczYLoVPKjYLAQu3ddZQd7Z3zplVTtUgigQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "acdream.ui.abstractions": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.App/packages.win-x64.lock.json b/src/AcDream.App/packages.win-x64.lock.json
new file mode 100644
index 00000000..bc4c7d4b
--- /dev/null
+++ b/src/AcDream.App/packages.win-x64.lock.json
@@ -0,0 +1,546 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Arch": {
+ "type": "Direct",
+ "requested": "[2.1.0, )",
+ "resolved": "2.1.0",
+ "contentHash": "Z9zxQztEvD/c2tsdW+LDm5E3Rd04JKeWRa6S0JOBfEFE7800+JLa7pgMAL6I/hvOY6q93QXvQ6Y+5E/TPc5Tfw==",
+ "dependencies": {
+ "Arch.LowLevel": "1.1.5",
+ "Collections.Pooled": "2.0.0-preview.27",
+ "CommunityToolkit.HighPerformance": "8.2.2",
+ "Microsoft.Extensions.ObjectPool": "7.0.0",
+ "ZeroAllocJobScheduler": "1.1.2"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "Direct",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "Serilog.Sinks.Console": {
+ "type": "Direct",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
+ "dependencies": {
+ "Serilog": "4.0.0"
+ }
+ },
+ "Silk.NET.Input": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "O8EaDRWGOcKniZ2VxKD/xOmugzUJz747KpqGRw3cezDsz8nD66OZW217o1rT06cG76f8eYigy/yY6eRdhRqHHQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.Creative": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "++3+P3G2CuV4ZbD9EG81XAxsu2enofp6jFhz6GmqEf96ZrC+3COMJPgzFtjDnPswuNOFK8FWzTCucdbw1jGXBQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.EXT": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "nhn0wv7o+RFqcxv5QTbHyEcZAf4ojqyK5aE4xoIyBubIlHBPXvV46O7w7ybo0z0ChZCBBS/teP42vaxx5YP+tQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Soft.Native": {
+ "type": "Direct",
+ "requested": "[1.23.1, )",
+ "resolved": "1.23.1",
+ "contentHash": "gZIbksInoiXbJZmepYnTs5O6Edg5O5k86c1+Uus0zSaVnQx5WRbInGz2VTlvudbs0qAqXs/asL1YvJzco/nfAQ=="
+ },
+ "Silk.NET.Vulkan": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "3/irtlSWXZ3eTi8N6nelI6L34NTB8ZJHpqVMNzZx2aX7Ek9YEQ34NoQW8/Tljrtmkg8KRhHW8hKTEzZaKV8PgA==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.EXT": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "+Oth189ksRiL6HvGCwIdnsYHawqrbO8y49u1H61z3wsfcHhQZeVDYe/wF5LD7fk3NcdgDvwFD3mLm1QWhdZySw==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.KHR": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "uRaf4j+SmH3DumjSSSUbFg33BnsGZUyXGj93O9NgGKZSJN3OTmNmQDxRew+/KiVLcgH6qzbto8aNGZ++j9GFWg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "OPNPmt/lRyUKVYrFLQXVxyATqD3MKLc1iY1oKx1/2GppgmZxVZPwN12tekrQ4C7408kgB1L5JD1Wnirqqeb2kg==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "Direct",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "Direct",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ },
+ "Arch.LowLevel": {
+ "type": "Transitive",
+ "resolved": "1.1.5",
+ "contentHash": "kc6T2qAsgzdb5RV+RIqVQ33LROhgXmA5fZRUhXRK+AJ1J58NML1i2M6XTKIj1ISirCwuqgYnM4qYkhqGcngG1g==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.2.2"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "Collections.Pooled": {
+ "type": "Transitive",
+ "resolved": "2.0.0-preview.27",
+ "contentHash": "VS3uHc1GNamanS1i1hQ3PoZUddIagCswVMWvucAgqWwY2KVwgL2Q7raGu0hTqP/CWuROoq0RiNbIvu4ST1bMzg=="
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "ZeroAllocJobScheduler": {
+ "type": "Transitive",
+ "resolved": "1.1.2",
+ "contentHash": "PKu/zSvwV1fWxt8+CEW15O9OlQ2zB9UoeAaor/aJJ0QeTKxxSjigczYLoVPKjYLAQu3ddZQd7Z3zplVTtUgigQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "acdream.ui.abstractions": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ }
+ },
+ "net10.0/win-x64": {
+ "Silk.NET.OpenAL.Soft.Native": {
+ "type": "Direct",
+ "requested": "[1.23.1, )",
+ "resolved": "1.23.1",
+ "contentHash": "gZIbksInoiXbJZmepYnTs5O6Edg5O5k86c1+Uus0zSaVnQx5WRbInGz2VTlvudbs0qAqXs/asL1YvJzco/nfAQ=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Bake/AcDream.Bake.csproj b/src/AcDream.Bake/AcDream.Bake.csproj
index 3557add4..d49a3212 100644
--- a/src/AcDream.Bake/AcDream.Bake.csproj
+++ b/src/AcDream.Bake/AcDream.Bake.csproj
@@ -19,8 +19,8 @@
-
-
+
+
diff --git a/src/AcDream.Bake/packages.linux-x64.lock.json b/src/AcDream.Bake/packages.linux-x64.lock.json
new file mode 100644
index 00000000..7eebf860
--- /dev/null
+++ b/src/AcDream.Bake/packages.linux-x64.lock.json
@@ -0,0 +1,275 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net": {
+ "type": "Direct",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "Direct",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Bake/packages.neutral.lock.json b/src/AcDream.Bake/packages.neutral.lock.json
new file mode 100644
index 00000000..c0754a22
--- /dev/null
+++ b/src/AcDream.Bake/packages.neutral.lock.json
@@ -0,0 +1,307 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Direct",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Bake/packages.win-x64.lock.json b/src/AcDream.Bake/packages.win-x64.lock.json
new file mode 100644
index 00000000..13e5a04e
--- /dev/null
+++ b/src/AcDream.Bake/packages.win-x64.lock.json
@@ -0,0 +1,308 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Direct",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Cli/AcDream.Cli.csproj b/src/AcDream.Cli/AcDream.Cli.csproj
index e964e5cb..3561d4f8 100644
--- a/src/AcDream.Cli/AcDream.Cli.csproj
+++ b/src/AcDream.Cli/AcDream.Cli.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -8,11 +8,11 @@
-
+
-
+
diff --git a/src/AcDream.Cli/packages.linux-x64.lock.json b/src/AcDream.Cli/packages.linux-x64.lock.json
new file mode 100644
index 00000000..7eebf860
--- /dev/null
+++ b/src/AcDream.Cli/packages.linux-x64.lock.json
@@ -0,0 +1,275 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net": {
+ "type": "Direct",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "Direct",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Cli/packages.neutral.lock.json b/src/AcDream.Cli/packages.neutral.lock.json
new file mode 100644
index 00000000..91f4ebb2
--- /dev/null
+++ b/src/AcDream.Cli/packages.neutral.lock.json
@@ -0,0 +1,285 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "Direct",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Cli/packages.win-x64.lock.json b/src/AcDream.Cli/packages.win-x64.lock.json
new file mode 100644
index 00000000..c2855510
--- /dev/null
+++ b/src/AcDream.Cli/packages.win-x64.lock.json
@@ -0,0 +1,275 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net": {
+ "type": "Direct",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "Direct",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Content/AcDream.Content.csproj b/src/AcDream.Content/AcDream.Content.csproj
index be0e8d9e..92233d79 100644
--- a/src/AcDream.Content/AcDream.Content.csproj
+++ b/src/AcDream.Content/AcDream.Content.csproj
@@ -16,8 +16,8 @@
-
-
+
+
-
-
-
+
+
+
-
+
diff --git a/src/AcDream.Core/packages.linux-x64.lock.json b/src/AcDream.Core/packages.linux-x64.lock.json
new file mode 100644
index 00000000..7eebf860
--- /dev/null
+++ b/src/AcDream.Core/packages.linux-x64.lock.json
@@ -0,0 +1,275 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net": {
+ "type": "Direct",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "Direct",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Core/packages.neutral.lock.json b/src/AcDream.Core/packages.neutral.lock.json
new file mode 100644
index 00000000..67befe4e
--- /dev/null
+++ b/src/AcDream.Core/packages.neutral.lock.json
@@ -0,0 +1,274 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net": {
+ "type": "Direct",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "Direct",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Core/packages.win-x64.lock.json b/src/AcDream.Core/packages.win-x64.lock.json
new file mode 100644
index 00000000..c2855510
--- /dev/null
+++ b/src/AcDream.Core/packages.win-x64.lock.json
@@ -0,0 +1,275 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net": {
+ "type": "Direct",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "Direct",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Headless/packages.linux-x64.lock.json b/src/AcDream.Headless/packages.linux-x64.lock.json
new file mode 100644
index 00000000..8700d5cf
--- /dev/null
+++ b/src/AcDream.Headless/packages.linux-x64.lock.json
@@ -0,0 +1,286 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Headless/packages.neutral.lock.json b/src/AcDream.Headless/packages.neutral.lock.json
new file mode 100644
index 00000000..12717047
--- /dev/null
+++ b/src/AcDream.Headless/packages.neutral.lock.json
@@ -0,0 +1,323 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Headless/packages.win-x64.lock.json b/src/AcDream.Headless/packages.win-x64.lock.json
new file mode 100644
index 00000000..64561bb2
--- /dev/null
+++ b/src/AcDream.Headless/packages.win-x64.lock.json
@@ -0,0 +1,286 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Launcher.Core/packages.linux-x64.lock.json b/src/AcDream.Launcher.Core/packages.linux-x64.lock.json
new file mode 100644
index 00000000..9d53f004
--- /dev/null
+++ b/src/AcDream.Launcher.Core/packages.linux-x64.lock.json
@@ -0,0 +1,11 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "acdream.platform": {
+ "type": "Project"
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Launcher.Core/packages.neutral.lock.json b/src/AcDream.Launcher.Core/packages.neutral.lock.json
new file mode 100644
index 00000000..b03a14c9
--- /dev/null
+++ b/src/AcDream.Launcher.Core/packages.neutral.lock.json
@@ -0,0 +1,10 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "acdream.platform": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Launcher.Core/packages.win-x64.lock.json b/src/AcDream.Launcher.Core/packages.win-x64.lock.json
new file mode 100644
index 00000000..0f43b377
--- /dev/null
+++ b/src/AcDream.Launcher.Core/packages.win-x64.lock.json
@@ -0,0 +1,7 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {},
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Launcher/AcDream.Launcher.csproj b/src/AcDream.Launcher/AcDream.Launcher.csproj
index 5ae49a22..f1e597cf 100644
--- a/src/AcDream.Launcher/AcDream.Launcher.csproj
+++ b/src/AcDream.Launcher/AcDream.Launcher.csproj
@@ -63,9 +63,9 @@
-
-
-
+
+
+
@@ -101,7 +101,7 @@
+ Properties="Configuration=$(Configuration);RuntimeIdentifier=$(_BakeBuildRid);SelfContained=true;PublishSingleFile=true;IncludeNativeLibrariesForSelfExtract=true;EnableSingleFileAnalyzer=false;PublishDir=$(_BakeBuildStagingDirectory);PublishBakeTool=false;CoDeployBakeToolOnBuild=false;RestoreLockedMode=true;RestoreForceEvaluate=true" />
@@ -128,6 +128,6 @@
+ Properties="Configuration=$(Configuration);RuntimeIdentifier=$(RuntimeIdentifier);SelfContained=true;PublishSingleFile=true;IncludeNativeLibrariesForSelfExtract=true;EnableSingleFileAnalyzer=false;PublishDir=$(_BakePublishDirectory);PublishBakeTool=false;RestoreLockedMode=true;RestoreForceEvaluate=true" />
diff --git a/src/AcDream.Launcher/packages.linux-x64.lock.json b/src/AcDream.Launcher/packages.linux-x64.lock.json
new file mode 100644
index 00000000..80769733
--- /dev/null
+++ b/src/AcDream.Launcher/packages.linux-x64.lock.json
@@ -0,0 +1,254 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Avalonia": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "o8pZ1oE9AQ6gklpGM0lnOBp/JlVH0J/0mYszBf0GsSAcEnzHNCLM9NnrPZwKu4j2q9oNbVHYzzEPkszQeuqaKw==",
+ "dependencies": {
+ "Avalonia.BuildServices": "11.3.2",
+ "Avalonia.Remote.Protocol": "12.1.1",
+ "MicroCom.Runtime": "0.11.6"
+ }
+ },
+ "Avalonia.Desktop": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "qZIw0njeXs1ziGJBz2WNduPI38zm9UqOksNrl2lALO2JkuzzMElYGQ3+4+Nl7VEnZSvmcbAZnOdvNYfnXGlOSw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.HarfBuzz": "12.1.1",
+ "Avalonia.Native": "12.1.1",
+ "Avalonia.Skia": "12.1.1",
+ "Avalonia.Win32": "12.1.1",
+ "Avalonia.X11": "12.1.1"
+ }
+ },
+ "Avalonia.Themes.Fluent": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "7vdtZsM9o8I8LpU9dyiB/Ah7WB8a5V3JHLsExe4T433ynn5x57F+DBskctZuNOxml8hbe1GmtNUNkBDsqSVKVg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Microsoft.NET.ILLink.Tasks": {
+ "type": "Direct",
+ "requested": "[10.0.8, )",
+ "resolved": "10.0.8",
+ "contentHash": "dVbSXGIFNR5nZcv2tOLoWI+a9T4jtFd77IYjuND+QVe360qWgAF7H0WtoopYhRw/+SgpGUTyrkrh+65+ClNnfw=="
+ },
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.BuildServices": {
+ "type": "Transitive",
+ "resolved": "11.3.2",
+ "contentHash": "qHDToxto1e3hci5YqbG9n0Ty8mlp3zBUN5wT66wKqaDVzXyQ0do3EnRILd4Ke9jpvsktaPpgE0YjEk7hornryQ=="
+ },
+ "Avalonia.FreeDesktop": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "dMMW6vJGsaUD+3e5lA3dGYyNu+Tv/yl0sSrUQLlOQ2RVhmNLkybWdgebHx94lznV3RF9cRGUd9Q+J5XpJ7xfJw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Tmds.DBus.Protocol": "0.94.1"
+ }
+ },
+ "Avalonia.FreeDesktop.AtSpi": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "BJ2oGBM6pSayLvjhliMPph4LYhPmzDCRjyXQ4jdttrK7cetTViyniW0gMVpNAPNjr4sn6rbN4EHiWknPQq2pLg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.HarfBuzz": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "vgd/Fl4bIXgv3QtYk6WCd6iGAag4i3OOAozo6/DW3xPr5dWjpi1MmJaeE9MYoZBEDJ4egD0gfHz6nYhkDADz9g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3"
+ }
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "jbgCUIhgQGD7d9mLN1oe4J8EpzDa0aY9PS77PZuRUDcNyr/V+vFNdyYXSJs3imrm0NOzTsCcFtK2NSXGDmJ1dw==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.Remote.Protocol": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "0u77tnOwJnHtVLu+WBY7T56fN9W8n7++Uq9kHW6J+bfv5y13WZUMVS+PBzoBe32taYvz/oSomDGO1V41AHaFcQ=="
+ },
+ "Avalonia.Skia": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "Q0jRMXb212RYIZNV7p6L/zWx8lyPck9dFFW+l86moeN4dNxHjPBdJS3nLdLvAd20Eno7JC4gwRa5Fewg52td8g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3",
+ "SkiaSharp": "3.119.4",
+ "SkiaSharp.NativeAssets.Linux": "3.119.4",
+ "SkiaSharp.NativeAssets.WebAssembly": "3.119.4"
+ }
+ },
+ "Avalonia.Win32": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "W7FKmHqoyI09dlCnrt0T9QSLk92qVJwXEHPwMI4zIM09Q6H5NzKfvwoadwxIc8S5gydvFypop3DfKX8x9SILug==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.Angle.Windows.Natives": "2.1.27548.20260419"
+ }
+ },
+ "Avalonia.X11": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "s7eRJO+QHTmuyGZ7ZClljdgOVTT2OhfEc+Hk5hTgsjI7y84uM5skTvnm+M+Qzlmr1Ru6MLeFUQaTlFA4Aea35Q==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.FreeDesktop": "12.1.1",
+ "Avalonia.FreeDesktop.AtSpi": "12.1.1",
+ "Avalonia.Skia": "12.1.1"
+ }
+ },
+ "HarfBuzzSharp": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "NGZ2+ZVNPM+NdHB/asW0/ykWngyHWwcqjrbN2nDeH1B/aptPGlCUl8wkQ2cSJxw5fdWgdmIPmNuTPWpLwNVXWg==",
+ "dependencies": {
+ "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.3"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "w2QfdNm9Uz/sUa0B5D+OnVQhyq3G/fBq6ibQMdWBlQqqwh0g0/5j3RFvYqZAmRZ5+RzvjVe8o8SFFnWYUSkuxA=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "MicroCom.Runtime": {
+ "type": "Transitive",
+ "resolved": "0.11.6",
+ "contentHash": "NdNWGDiZ6eS/Mf/9+QHR91cj1K7Hy+PX9yrHI/zM7xFYuj9IWT2uxtB6sCHjrnxAeLV9fut1R6zHDUGKX6f9lQ=="
+ },
+ "SkiaSharp": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "53NOSUZ1Us+91Sm0uCkIivh/k7jOowRErZT2sIWwPFN9mLUvdxnE6rS4sWo4255+Rd2MWUSF+j0NMZHD6Cke+Q==",
+ "dependencies": {
+ "SkiaSharp.NativeAssets.Win32": "3.119.4",
+ "SkiaSharp.NativeAssets.macOS": "3.119.4"
+ }
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "S1HOxtBbD4bYDtA2e9WH5TX+lxqRrTPvKjrjttRhxnHNNu7YY8VFo/LeCP7tNqoTA6PV+8vsvNbmRUEC2ip8RQ=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ },
+ "Tmds.DBus.Protocol": {
+ "type": "Transitive",
+ "resolved": "0.94.1",
+ "contentHash": "11YMr7FnAbL83bQmVxlhbIKHvSLxjO81D12Ej0QMSGXMDTxNA9MTOa4MQxx43nv5el/efuPHwzyrj6a5ha2gug=="
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ }
+ },
+ "net10.0/linux-x64": {
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "jbgCUIhgQGD7d9mLN1oe4J8EpzDa0aY9PS77PZuRUDcNyr/V+vFNdyYXSJs3imrm0NOzTsCcFtK2NSXGDmJ1dw==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Launcher/packages.neutral.lock.json b/src/AcDream.Launcher/packages.neutral.lock.json
new file mode 100644
index 00000000..deaad7cb
--- /dev/null
+++ b/src/AcDream.Launcher/packages.neutral.lock.json
@@ -0,0 +1,254 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Avalonia": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "o8pZ1oE9AQ6gklpGM0lnOBp/JlVH0J/0mYszBf0GsSAcEnzHNCLM9NnrPZwKu4j2q9oNbVHYzzEPkszQeuqaKw==",
+ "dependencies": {
+ "Avalonia.BuildServices": "11.3.2",
+ "Avalonia.Remote.Protocol": "12.1.1",
+ "MicroCom.Runtime": "0.11.6"
+ }
+ },
+ "Avalonia.Desktop": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "qZIw0njeXs1ziGJBz2WNduPI38zm9UqOksNrl2lALO2JkuzzMElYGQ3+4+Nl7VEnZSvmcbAZnOdvNYfnXGlOSw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.HarfBuzz": "12.1.1",
+ "Avalonia.Native": "12.1.1",
+ "Avalonia.Skia": "12.1.1",
+ "Avalonia.Win32": "12.1.1",
+ "Avalonia.X11": "12.1.1"
+ }
+ },
+ "Avalonia.Themes.Fluent": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "7vdtZsM9o8I8LpU9dyiB/Ah7WB8a5V3JHLsExe4T433ynn5x57F+DBskctZuNOxml8hbe1GmtNUNkBDsqSVKVg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Microsoft.NET.ILLink.Tasks": {
+ "type": "Direct",
+ "requested": "[10.0.8, )",
+ "resolved": "10.0.8",
+ "contentHash": "dVbSXGIFNR5nZcv2tOLoWI+a9T4jtFd77IYjuND+QVe360qWgAF7H0WtoopYhRw/+SgpGUTyrkrh+65+ClNnfw=="
+ },
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.BuildServices": {
+ "type": "Transitive",
+ "resolved": "11.3.2",
+ "contentHash": "qHDToxto1e3hci5YqbG9n0Ty8mlp3zBUN5wT66wKqaDVzXyQ0do3EnRILd4Ke9jpvsktaPpgE0YjEk7hornryQ=="
+ },
+ "Avalonia.FreeDesktop": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "dMMW6vJGsaUD+3e5lA3dGYyNu+Tv/yl0sSrUQLlOQ2RVhmNLkybWdgebHx94lznV3RF9cRGUd9Q+J5XpJ7xfJw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Tmds.DBus.Protocol": "0.94.1"
+ }
+ },
+ "Avalonia.FreeDesktop.AtSpi": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "BJ2oGBM6pSayLvjhliMPph4LYhPmzDCRjyXQ4jdttrK7cetTViyniW0gMVpNAPNjr4sn6rbN4EHiWknPQq2pLg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.HarfBuzz": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "vgd/Fl4bIXgv3QtYk6WCd6iGAag4i3OOAozo6/DW3xPr5dWjpi1MmJaeE9MYoZBEDJ4egD0gfHz6nYhkDADz9g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3"
+ }
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "jbgCUIhgQGD7d9mLN1oe4J8EpzDa0aY9PS77PZuRUDcNyr/V+vFNdyYXSJs3imrm0NOzTsCcFtK2NSXGDmJ1dw==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.Remote.Protocol": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "0u77tnOwJnHtVLu+WBY7T56fN9W8n7++Uq9kHW6J+bfv5y13WZUMVS+PBzoBe32taYvz/oSomDGO1V41AHaFcQ=="
+ },
+ "Avalonia.Skia": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "Q0jRMXb212RYIZNV7p6L/zWx8lyPck9dFFW+l86moeN4dNxHjPBdJS3nLdLvAd20Eno7JC4gwRa5Fewg52td8g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3",
+ "SkiaSharp": "3.119.4",
+ "SkiaSharp.NativeAssets.Linux": "3.119.4",
+ "SkiaSharp.NativeAssets.WebAssembly": "3.119.4"
+ }
+ },
+ "Avalonia.Win32": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "W7FKmHqoyI09dlCnrt0T9QSLk92qVJwXEHPwMI4zIM09Q6H5NzKfvwoadwxIc8S5gydvFypop3DfKX8x9SILug==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.Angle.Windows.Natives": "2.1.27548.20260419"
+ }
+ },
+ "Avalonia.X11": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "s7eRJO+QHTmuyGZ7ZClljdgOVTT2OhfEc+Hk5hTgsjI7y84uM5skTvnm+M+Qzlmr1Ru6MLeFUQaTlFA4Aea35Q==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.FreeDesktop": "12.1.1",
+ "Avalonia.FreeDesktop.AtSpi": "12.1.1",
+ "Avalonia.Skia": "12.1.1"
+ }
+ },
+ "HarfBuzzSharp": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "NGZ2+ZVNPM+NdHB/asW0/ykWngyHWwcqjrbN2nDeH1B/aptPGlCUl8wkQ2cSJxw5fdWgdmIPmNuTPWpLwNVXWg==",
+ "dependencies": {
+ "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.3"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "w2QfdNm9Uz/sUa0B5D+OnVQhyq3G/fBq6ibQMdWBlQqqwh0g0/5j3RFvYqZAmRZ5+RzvjVe8o8SFFnWYUSkuxA=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "MicroCom.Runtime": {
+ "type": "Transitive",
+ "resolved": "0.11.6",
+ "contentHash": "NdNWGDiZ6eS/Mf/9+QHR91cj1K7Hy+PX9yrHI/zM7xFYuj9IWT2uxtB6sCHjrnxAeLV9fut1R6zHDUGKX6f9lQ=="
+ },
+ "SkiaSharp": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "53NOSUZ1Us+91Sm0uCkIivh/k7jOowRErZT2sIWwPFN9mLUvdxnE6rS4sWo4255+Rd2MWUSF+j0NMZHD6Cke+Q==",
+ "dependencies": {
+ "SkiaSharp.NativeAssets.Win32": "3.119.4",
+ "SkiaSharp.NativeAssets.macOS": "3.119.4"
+ }
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "S1HOxtBbD4bYDtA2e9WH5TX+lxqRrTPvKjrjttRhxnHNNu7YY8VFo/LeCP7tNqoTA6PV+8vsvNbmRUEC2ip8RQ=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ },
+ "Tmds.DBus.Protocol": {
+ "type": "Transitive",
+ "resolved": "0.94.1",
+ "contentHash": "11YMr7FnAbL83bQmVxlhbIKHvSLxjO81D12Ej0QMSGXMDTxNA9MTOa4MQxx43nv5el/efuPHwzyrj6a5ha2gug=="
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ }
+ },
+ "net10.0/win-x64": {
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "jbgCUIhgQGD7d9mLN1oe4J8EpzDa0aY9PS77PZuRUDcNyr/V+vFNdyYXSJs3imrm0NOzTsCcFtK2NSXGDmJ1dw==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Launcher/packages.win-x64.lock.json b/src/AcDream.Launcher/packages.win-x64.lock.json
new file mode 100644
index 00000000..deaad7cb
--- /dev/null
+++ b/src/AcDream.Launcher/packages.win-x64.lock.json
@@ -0,0 +1,254 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Avalonia": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "o8pZ1oE9AQ6gklpGM0lnOBp/JlVH0J/0mYszBf0GsSAcEnzHNCLM9NnrPZwKu4j2q9oNbVHYzzEPkszQeuqaKw==",
+ "dependencies": {
+ "Avalonia.BuildServices": "11.3.2",
+ "Avalonia.Remote.Protocol": "12.1.1",
+ "MicroCom.Runtime": "0.11.6"
+ }
+ },
+ "Avalonia.Desktop": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "qZIw0njeXs1ziGJBz2WNduPI38zm9UqOksNrl2lALO2JkuzzMElYGQ3+4+Nl7VEnZSvmcbAZnOdvNYfnXGlOSw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.HarfBuzz": "12.1.1",
+ "Avalonia.Native": "12.1.1",
+ "Avalonia.Skia": "12.1.1",
+ "Avalonia.Win32": "12.1.1",
+ "Avalonia.X11": "12.1.1"
+ }
+ },
+ "Avalonia.Themes.Fluent": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "7vdtZsM9o8I8LpU9dyiB/Ah7WB8a5V3JHLsExe4T433ynn5x57F+DBskctZuNOxml8hbe1GmtNUNkBDsqSVKVg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Microsoft.NET.ILLink.Tasks": {
+ "type": "Direct",
+ "requested": "[10.0.8, )",
+ "resolved": "10.0.8",
+ "contentHash": "dVbSXGIFNR5nZcv2tOLoWI+a9T4jtFd77IYjuND+QVe360qWgAF7H0WtoopYhRw/+SgpGUTyrkrh+65+ClNnfw=="
+ },
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.BuildServices": {
+ "type": "Transitive",
+ "resolved": "11.3.2",
+ "contentHash": "qHDToxto1e3hci5YqbG9n0Ty8mlp3zBUN5wT66wKqaDVzXyQ0do3EnRILd4Ke9jpvsktaPpgE0YjEk7hornryQ=="
+ },
+ "Avalonia.FreeDesktop": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "dMMW6vJGsaUD+3e5lA3dGYyNu+Tv/yl0sSrUQLlOQ2RVhmNLkybWdgebHx94lznV3RF9cRGUd9Q+J5XpJ7xfJw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Tmds.DBus.Protocol": "0.94.1"
+ }
+ },
+ "Avalonia.FreeDesktop.AtSpi": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "BJ2oGBM6pSayLvjhliMPph4LYhPmzDCRjyXQ4jdttrK7cetTViyniW0gMVpNAPNjr4sn6rbN4EHiWknPQq2pLg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.HarfBuzz": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "vgd/Fl4bIXgv3QtYk6WCd6iGAag4i3OOAozo6/DW3xPr5dWjpi1MmJaeE9MYoZBEDJ4egD0gfHz6nYhkDADz9g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3"
+ }
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "jbgCUIhgQGD7d9mLN1oe4J8EpzDa0aY9PS77PZuRUDcNyr/V+vFNdyYXSJs3imrm0NOzTsCcFtK2NSXGDmJ1dw==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.Remote.Protocol": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "0u77tnOwJnHtVLu+WBY7T56fN9W8n7++Uq9kHW6J+bfv5y13WZUMVS+PBzoBe32taYvz/oSomDGO1V41AHaFcQ=="
+ },
+ "Avalonia.Skia": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "Q0jRMXb212RYIZNV7p6L/zWx8lyPck9dFFW+l86moeN4dNxHjPBdJS3nLdLvAd20Eno7JC4gwRa5Fewg52td8g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3",
+ "SkiaSharp": "3.119.4",
+ "SkiaSharp.NativeAssets.Linux": "3.119.4",
+ "SkiaSharp.NativeAssets.WebAssembly": "3.119.4"
+ }
+ },
+ "Avalonia.Win32": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "W7FKmHqoyI09dlCnrt0T9QSLk92qVJwXEHPwMI4zIM09Q6H5NzKfvwoadwxIc8S5gydvFypop3DfKX8x9SILug==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.Angle.Windows.Natives": "2.1.27548.20260419"
+ }
+ },
+ "Avalonia.X11": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "s7eRJO+QHTmuyGZ7ZClljdgOVTT2OhfEc+Hk5hTgsjI7y84uM5skTvnm+M+Qzlmr1Ru6MLeFUQaTlFA4Aea35Q==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.FreeDesktop": "12.1.1",
+ "Avalonia.FreeDesktop.AtSpi": "12.1.1",
+ "Avalonia.Skia": "12.1.1"
+ }
+ },
+ "HarfBuzzSharp": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "NGZ2+ZVNPM+NdHB/asW0/ykWngyHWwcqjrbN2nDeH1B/aptPGlCUl8wkQ2cSJxw5fdWgdmIPmNuTPWpLwNVXWg==",
+ "dependencies": {
+ "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.3"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "w2QfdNm9Uz/sUa0B5D+OnVQhyq3G/fBq6ibQMdWBlQqqwh0g0/5j3RFvYqZAmRZ5+RzvjVe8o8SFFnWYUSkuxA=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "MicroCom.Runtime": {
+ "type": "Transitive",
+ "resolved": "0.11.6",
+ "contentHash": "NdNWGDiZ6eS/Mf/9+QHR91cj1K7Hy+PX9yrHI/zM7xFYuj9IWT2uxtB6sCHjrnxAeLV9fut1R6zHDUGKX6f9lQ=="
+ },
+ "SkiaSharp": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "53NOSUZ1Us+91Sm0uCkIivh/k7jOowRErZT2sIWwPFN9mLUvdxnE6rS4sWo4255+Rd2MWUSF+j0NMZHD6Cke+Q==",
+ "dependencies": {
+ "SkiaSharp.NativeAssets.Win32": "3.119.4",
+ "SkiaSharp.NativeAssets.macOS": "3.119.4"
+ }
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "S1HOxtBbD4bYDtA2e9WH5TX+lxqRrTPvKjrjttRhxnHNNu7YY8VFo/LeCP7tNqoTA6PV+8vsvNbmRUEC2ip8RQ=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ },
+ "Tmds.DBus.Protocol": {
+ "type": "Transitive",
+ "resolved": "0.94.1",
+ "contentHash": "11YMr7FnAbL83bQmVxlhbIKHvSLxjO81D12Ej0QMSGXMDTxNA9MTOa4MQxx43nv5el/efuPHwzyrj6a5ha2gug=="
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ }
+ },
+ "net10.0/win-x64": {
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "jbgCUIhgQGD7d9mLN1oe4J8EpzDa0aY9PS77PZuRUDcNyr/V+vFNdyYXSJs3imrm0NOzTsCcFtK2NSXGDmJ1dw==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Platform/packages.linux-x64.lock.json b/src/AcDream.Platform/packages.linux-x64.lock.json
new file mode 100644
index 00000000..d4eccf7d
--- /dev/null
+++ b/src/AcDream.Platform/packages.linux-x64.lock.json
@@ -0,0 +1,7 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {},
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Platform/packages.neutral.lock.json b/src/AcDream.Platform/packages.neutral.lock.json
new file mode 100644
index 00000000..6afd6786
--- /dev/null
+++ b/src/AcDream.Platform/packages.neutral.lock.json
@@ -0,0 +1,6 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Platform/packages.win-x64.lock.json b/src/AcDream.Platform/packages.win-x64.lock.json
new file mode 100644
index 00000000..0f43b377
--- /dev/null
+++ b/src/AcDream.Platform/packages.win-x64.lock.json
@@ -0,0 +1,7 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {},
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Plugin.Abstractions/packages.linux-x64.lock.json b/src/AcDream.Plugin.Abstractions/packages.linux-x64.lock.json
new file mode 100644
index 00000000..d4eccf7d
--- /dev/null
+++ b/src/AcDream.Plugin.Abstractions/packages.linux-x64.lock.json
@@ -0,0 +1,7 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {},
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Plugin.Abstractions/packages.neutral.lock.json b/src/AcDream.Plugin.Abstractions/packages.neutral.lock.json
new file mode 100644
index 00000000..6afd6786
--- /dev/null
+++ b/src/AcDream.Plugin.Abstractions/packages.neutral.lock.json
@@ -0,0 +1,6 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Plugin.Abstractions/packages.win-x64.lock.json b/src/AcDream.Plugin.Abstractions/packages.win-x64.lock.json
new file mode 100644
index 00000000..0f43b377
--- /dev/null
+++ b/src/AcDream.Plugin.Abstractions/packages.win-x64.lock.json
@@ -0,0 +1,7 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {},
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Plugins.Smoke/packages.linux-x64.lock.json b/src/AcDream.Plugins.Smoke/packages.linux-x64.lock.json
new file mode 100644
index 00000000..fe625889
--- /dev/null
+++ b/src/AcDream.Plugins.Smoke/packages.linux-x64.lock.json
@@ -0,0 +1,11 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Plugins.Smoke/packages.neutral.lock.json b/src/AcDream.Plugins.Smoke/packages.neutral.lock.json
new file mode 100644
index 00000000..3924e2e2
--- /dev/null
+++ b/src/AcDream.Plugins.Smoke/packages.neutral.lock.json
@@ -0,0 +1,10 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Plugins.Smoke/packages.win-x64.lock.json b/src/AcDream.Plugins.Smoke/packages.win-x64.lock.json
new file mode 100644
index 00000000..0f43b377
--- /dev/null
+++ b/src/AcDream.Plugins.Smoke/packages.win-x64.lock.json
@@ -0,0 +1,7 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {},
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Runtime/packages.linux-x64.lock.json b/src/AcDream.Runtime/packages.linux-x64.lock.json
new file mode 100644
index 00000000..7eebf860
--- /dev/null
+++ b/src/AcDream.Runtime/packages.linux-x64.lock.json
@@ -0,0 +1,275 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net": {
+ "type": "Direct",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "Direct",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "Direct",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "Direct",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Runtime/packages.neutral.lock.json b/src/AcDream.Runtime/packages.neutral.lock.json
new file mode 100644
index 00000000..5564331c
--- /dev/null
+++ b/src/AcDream.Runtime/packages.neutral.lock.json
@@ -0,0 +1,313 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.Runtime/packages.win-x64.lock.json b/src/AcDream.Runtime/packages.win-x64.lock.json
new file mode 100644
index 00000000..0b1f001d
--- /dev/null
+++ b/src/AcDream.Runtime/packages.win-x64.lock.json
@@ -0,0 +1,297 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "Direct",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "Direct",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/win-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.UI.Abstractions/AcDream.UI.Abstractions.csproj b/src/AcDream.UI.Abstractions/AcDream.UI.Abstractions.csproj
index 79dc2e2c..a52a54b4 100644
--- a/src/AcDream.UI.Abstractions/AcDream.UI.Abstractions.csproj
+++ b/src/AcDream.UI.Abstractions/AcDream.UI.Abstractions.csproj
@@ -7,7 +7,7 @@
true
-
+
diff --git a/src/AcDream.UI.Abstractions/packages.linux-x64.lock.json b/src/AcDream.UI.Abstractions/packages.linux-x64.lock.json
new file mode 100644
index 00000000..766ff38d
--- /dev/null
+++ b/src/AcDream.UI.Abstractions/packages.linux-x64.lock.json
@@ -0,0 +1,314 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/linux-x64": {}
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.UI.Abstractions/packages.neutral.lock.json b/src/AcDream.UI.Abstractions/packages.neutral.lock.json
new file mode 100644
index 00000000..37feff0e
--- /dev/null
+++ b/src/AcDream.UI.Abstractions/packages.neutral.lock.json
@@ -0,0 +1,406 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Silk.NET.Input": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AcDream.UI.Abstractions/packages.win-x64.lock.json b/src/AcDream.UI.Abstractions/packages.win-x64.lock.json
new file mode 100644
index 00000000..0dddacea
--- /dev/null
+++ b/src/AcDream.UI.Abstractions/packages.win-x64.lock.json
@@ -0,0 +1,413 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Silk.NET.Input": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ },
+ "net10.0/win-x64": {
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.App.Tests/AcDream.App.Tests.csproj b/tests/AcDream.App.Tests/AcDream.App.Tests.csproj
index 8f82d7ba..2a7a6d82 100644
--- a/tests/AcDream.App.Tests/AcDream.App.Tests.csproj
+++ b/tests/AcDream.App.Tests/AcDream.App.Tests.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.App.Tests/Composition/HostInputCameraCompositionTests.cs b/tests/AcDream.App.Tests/Composition/HostInputCameraCompositionTests.cs
index 267bb3ee..6c25f115 100644
--- a/tests/AcDream.App.Tests/Composition/HostInputCameraCompositionTests.cs
+++ b/tests/AcDream.App.Tests/Composition/HostInputCameraCompositionTests.cs
@@ -166,8 +166,11 @@ public sealed class HostInputCameraCompositionTests
public CameraController? Camera { get; private set; }
public CameraPointerInputController? Pointer { get; private set; }
- public void PublishGpuFrameFlights(GpuFrameFlightController value) =>
- GpuFrames = PublishOnce(GpuFrames, value);
+ public void PublishGpuFrameFlights(GpuFrameFlightController? value)
+ {
+ if (value is not null)
+ GpuFrames = PublishOnce(GpuFrames, value);
+ }
public void PublishGpuDevice(IGpuDevice value) =>
GpuDevice = PublishOnce(GpuDevice, value);
diff --git a/tests/AcDream.App.Tests/Composition/WorldRenderCompositionTests.cs b/tests/AcDream.App.Tests/Composition/WorldRenderCompositionTests.cs
index c4059be7..386c0c26 100644
--- a/tests/AcDream.App.Tests/Composition/WorldRenderCompositionTests.cs
+++ b/tests/AcDream.App.Tests/Composition/WorldRenderCompositionTests.cs
@@ -282,7 +282,7 @@ public sealed class WorldRenderCompositionTests
public WorldTerrainBuildContext CreateTerrainBuildContext(
uint initialCenterLandblockId,
float[] heightTable,
- TerrainAtlas atlas) =>
+ TerrainAtlas? atlas) =>
new(
initialCenterLandblockId,
0xA9,
@@ -315,7 +315,7 @@ public sealed class WorldRenderCompositionTests
public void RegisterResidencySources(
ResidencyManager manager,
- WbMeshAdapter meshes,
+ WbMeshAdapter? meshes,
TextureCache textures,
IPreparedAssetSource preparedAssets,
IAnimationLoader animations,
diff --git a/tests/AcDream.App.Tests/UI/Layout/DatStringResolverTemplateTests.cs b/tests/AcDream.App.Tests/UI/Layout/DatStringResolverTemplateTests.cs
index f590f962..bbfb86a2 100644
--- a/tests/AcDream.App.Tests/UI/Layout/DatStringResolverTemplateTests.cs
+++ b/tests/AcDream.App.Tests/UI/Layout/DatStringResolverTemplateTests.cs
@@ -116,10 +116,9 @@ public sealed class DatStringResolverTemplateTests
fragments: ["one\\nline", "two\\tcol"],
variables: []);
- Assert.Equal(
- ["one\nline", "two\tcol"],
- resolver.ResolveAll(
- TableId, DatStringResolver.ComputeHash("ID_Variants")));
+ string[] variants = Assert.IsType(resolver.ResolveAll(
+ TableId, DatStringResolver.ComputeHash("ID_Variants")));
+ Assert.Equal(["one\nline", "two\tcol"], variants);
}
///
diff --git a/tests/AcDream.App.Tests/UI/Layout/OptionsPanelLiveMountProbeTests.cs b/tests/AcDream.App.Tests/UI/Layout/OptionsPanelLiveMountProbeTests.cs
index 9ec226f7..d5c8e694 100644
--- a/tests/AcDream.App.Tests/UI/Layout/OptionsPanelLiveMountProbeTests.cs
+++ b/tests/AcDream.App.Tests/UI/Layout/OptionsPanelLiveMountProbeTests.cs
@@ -34,7 +34,8 @@ public sealed class OptionsPanelLiveMountProbeTests
// The production mount: host 0x2100006E slot 0x1000018D (the shape
// OptionsPanelController documents; RetailUiRuntime.MountOptionsPanel
// resolves the SAME way — keep in sync with it).
- ElementInfo root = LayoutImporter.ImportInfos(dats, 0x2100006Eu, 0x1000018Du);
+ ElementInfo root = Assert.IsType(
+ LayoutImporter.ImportInfos(dats, 0x2100006Eu, 0x1000018Du));
ImportedLayout layout = LayoutImporter.Build(root, _ => (0u, 0, 0), null);
Console.WriteLine($"[probe] root id=0x{root.Id:X8} type={root.Type} children={root.Children.Count}");
@@ -106,7 +107,8 @@ public sealed class OptionsPanelLiveMountProbeTests
using var dats = new DatCollection(datDir, DatAccessType.Read);
var strings = new DatStringResolver(dats);
- ElementInfo root = LayoutImporter.ImportInfos(dats, 0x2100006Eu, 0x1000018Du);
+ ElementInfo root = Assert.IsType(
+ LayoutImporter.ImportInfos(dats, 0x2100006Eu, 0x1000018Du));
ImportedLayout layout = LayoutImporter.Build(
root, _ => (1u, 8, 8), null, null, strings.Resolve);
diff --git a/tests/AcDream.App.Tests/packages.neutral.lock.json b/tests/AcDream.App.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..352f6040
--- /dev/null
+++ b/tests/AcDream.App.Tests/packages.neutral.lock.json
@@ -0,0 +1,658 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Arch.LowLevel": {
+ "type": "Transitive",
+ "resolved": "1.1.5",
+ "contentHash": "kc6T2qAsgzdb5RV+RIqVQ33LROhgXmA5fZRUhXRK+AJ1J58NML1i2M6XTKIj1ISirCwuqgYnM4qYkhqGcngG1g==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.2.2"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "Collections.Pooled": {
+ "type": "Transitive",
+ "resolved": "2.0.0-preview.27",
+ "contentHash": "VS3uHc1GNamanS1i1hQ3PoZUddIagCswVMWvucAgqWwY2KVwgL2Q7raGu0hTqP/CWuROoq0RiNbIvu4ST1bMzg=="
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZeroAllocJobScheduler": {
+ "type": "Transitive",
+ "resolved": "1.1.2",
+ "contentHash": "PKu/zSvwV1fWxt8+CEW15O9OlQ2zB9UoeAaor/aJJ0QeTKxxSjigczYLoVPKjYLAQu3ddZQd7Z3zplVTtUgigQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.app": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "AcDream.UI.Abstractions": "[1.0.0, )",
+ "Arch": "[2.1.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Serilog": "[4.0.2, )",
+ "Serilog.Sinks.Console": "[6.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )",
+ "Silk.NET.OpenAL": "[2.23.0, )",
+ "Silk.NET.OpenAL.Extensions.Creative": "[2.23.0, )",
+ "Silk.NET.OpenAL.Extensions.EXT": "[2.23.0, )",
+ "Silk.NET.OpenAL.Soft.Native": "[1.23.1, )",
+ "Silk.NET.Vulkan": "[2.23.0, )",
+ "Silk.NET.Vulkan.Extensions.EXT": "[2.23.0, )",
+ "Silk.NET.Vulkan.Extensions.KHR": "[2.23.0, )",
+ "Silk.NET.Windowing": "[2.23.0, )",
+ "SixLabors.ImageSharp": "[3.1.12, )",
+ "StbTrueTypeSharp": "[1.26.12, )"
+ }
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "acdream.ui.abstractions": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )"
+ }
+ },
+ "Arch": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.0, )",
+ "resolved": "2.1.0",
+ "contentHash": "Z9zxQztEvD/c2tsdW+LDm5E3Rd04JKeWRa6S0JOBfEFE7800+JLa7pgMAL6I/hvOY6q93QXvQ6Y+5E/TPc5Tfw==",
+ "dependencies": {
+ "Arch.LowLevel": "1.1.5",
+ "Collections.Pooled": "2.0.0-preview.27",
+ "CommunityToolkit.HighPerformance": "8.2.2",
+ "Microsoft.Extensions.ObjectPool": "7.0.0",
+ "ZeroAllocJobScheduler": "1.1.2"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "Serilog.Sinks.Console": {
+ "type": "CentralTransitive",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
+ "dependencies": {
+ "Serilog": "4.0.0"
+ }
+ },
+ "Silk.NET.Input": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "O8EaDRWGOcKniZ2VxKD/xOmugzUJz747KpqGRw3cezDsz8nD66OZW217o1rT06cG76f8eYigy/yY6eRdhRqHHQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.Creative": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "++3+P3G2CuV4ZbD9EG81XAxsu2enofp6jFhz6GmqEf96ZrC+3COMJPgzFtjDnPswuNOFK8FWzTCucdbw1jGXBQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.EXT": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "nhn0wv7o+RFqcxv5QTbHyEcZAf4ojqyK5aE4xoIyBubIlHBPXvV46O7w7ybo0z0ChZCBBS/teP42vaxx5YP+tQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Soft.Native": {
+ "type": "CentralTransitive",
+ "requested": "[1.23.1, )",
+ "resolved": "1.23.1",
+ "contentHash": "gZIbksInoiXbJZmepYnTs5O6Edg5O5k86c1+Uus0zSaVnQx5WRbInGz2VTlvudbs0qAqXs/asL1YvJzco/nfAQ=="
+ },
+ "Silk.NET.Vulkan": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "3/irtlSWXZ3eTi8N6nelI6L34NTB8ZJHpqVMNzZx2aX7Ek9YEQ34NoQW8/Tljrtmkg8KRhHW8hKTEzZaKV8PgA==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.EXT": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "+Oth189ksRiL6HvGCwIdnsYHawqrbO8y49u1H61z3wsfcHhQZeVDYe/wF5LD7fk3NcdgDvwFD3mLm1QWhdZySw==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.KHR": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "uRaf4j+SmH3DumjSSSUbFg33BnsGZUyXGj93O9NgGKZSJN3OTmNmQDxRew+/KiVLcgH6qzbto8aNGZ++j9GFWg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "OPNPmt/lRyUKVYrFLQXVxyATqD3MKLc1iY1oKx1/2GppgmZxVZPwN12tekrQ4C7408kgB1L5JD1Wnirqqeb2kg==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Bake.Tests/AcDream.Bake.Tests.csproj b/tests/AcDream.Bake.Tests/AcDream.Bake.Tests.csproj
index d67af0e8..f92b9c92 100644
--- a/tests/AcDream.Bake.Tests/AcDream.Bake.Tests.csproj
+++ b/tests/AcDream.Bake.Tests/AcDream.Bake.Tests.csproj
@@ -10,10 +10,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.Bake.Tests/packages.neutral.lock.json b/tests/AcDream.Bake.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..9d5c0f3f
--- /dev/null
+++ b/tests/AcDream.Bake.Tests/packages.neutral.lock.json
@@ -0,0 +1,408 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream-bake": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Microsoft.Extensions.Logging.Abstractions": "[9.0.9, )"
+ }
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Cli.Tests/AcDream.Cli.Tests.csproj b/tests/AcDream.Cli.Tests/AcDream.Cli.Tests.csproj
index 2f2bccdd..1508d15f 100644
--- a/tests/AcDream.Cli.Tests/AcDream.Cli.Tests.csproj
+++ b/tests/AcDream.Cli.Tests/AcDream.Cli.Tests.csproj
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/tests/AcDream.Cli.Tests/packages.neutral.lock.json b/tests/AcDream.Cli.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..444d322f
--- /dev/null
+++ b/tests/AcDream.Cli.Tests/packages.neutral.lock.json
@@ -0,0 +1,379 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.cli": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Content.Tests/AcDream.Content.Tests.csproj b/tests/AcDream.Content.Tests/AcDream.Content.Tests.csproj
index dc64fa3c..f93c94ff 100644
--- a/tests/AcDream.Content.Tests/AcDream.Content.Tests.csproj
+++ b/tests/AcDream.Content.Tests/AcDream.Content.Tests.csproj
@@ -10,11 +10,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/AcDream.Content.Tests/packages.neutral.lock.json b/tests/AcDream.Content.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..fd68955d
--- /dev/null
+++ b/tests/AcDream.Content.Tests/packages.neutral.lock.json
@@ -0,0 +1,396 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Direct",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Core.Net.Tests/AcDream.Core.Net.Tests.csproj b/tests/AcDream.Core.Net.Tests/AcDream.Core.Net.Tests.csproj
index 88c158a0..a77f941d 100644
--- a/tests/AcDream.Core.Net.Tests/AcDream.Core.Net.Tests.csproj
+++ b/tests/AcDream.Core.Net.Tests/AcDream.Core.Net.Tests.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.Core.Net.Tests/packages.neutral.lock.json b/tests/AcDream.Core.Net.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..e67a02b3
--- /dev/null
+++ b/tests/AcDream.Core.Net.Tests/packages.neutral.lock.json
@@ -0,0 +1,383 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Core.Tests.Fixtures.HelloPlugin/packages.neutral.lock.json b/tests/AcDream.Core.Tests.Fixtures.HelloPlugin/packages.neutral.lock.json
new file mode 100644
index 00000000..3924e2e2
--- /dev/null
+++ b/tests/AcDream.Core.Tests.Fixtures.HelloPlugin/packages.neutral.lock.json
@@ -0,0 +1,10 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Core.Tests/AcDream.Core.Tests.csproj b/tests/AcDream.Core.Tests/AcDream.Core.Tests.csproj
index f848e8ac..3d78c875 100644
--- a/tests/AcDream.Core.Tests/AcDream.Core.Tests.csproj
+++ b/tests/AcDream.Core.Tests/AcDream.Core.Tests.csproj
@@ -1,4 +1,4 @@
-
+
net10.0
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.Core.Tests/Conformance/DatConcurrencyStressTests.cs b/tests/AcDream.Core.Tests/Conformance/DatConcurrencyStressTests.cs
index 6ab79f9e..542c7724 100644
--- a/tests/AcDream.Core.Tests/Conformance/DatConcurrencyStressTests.cs
+++ b/tests/AcDream.Core.Tests/Conformance/DatConcurrencyStressTests.cs
@@ -217,7 +217,7 @@ public class DatConcurrencyStressTests
private static Golden ReadRaw(DatCollection dats, FileRef r)
{
var db = Db(dats, r.Source);
- if (!db.TryGetFileBytes(r.Id, out byte[] bytes))
+ if (!db.TryGetFileBytes(r.Id, out byte[]? bytes) || bytes is null)
return new Golden(false, 0, 0);
return new Golden(true, bytes.Length, Fnv(bytes));
}
diff --git a/tests/AcDream.Core.Tests/Physics/CellArrayTests.cs b/tests/AcDream.Core.Tests/Physics/CellArrayTests.cs
index 1aeabde8..ab3c8562 100644
--- a/tests/AcDream.Core.Tests/Physics/CellArrayTests.cs
+++ b/tests/AcDream.Core.Tests/Physics/CellArrayTests.cs
@@ -33,8 +33,8 @@ public class CellArrayTests
{
var a = new CellArray();
a.Add(0xA9B40170u);
- Assert.True(a.Contains(0xA9B40170u));
- Assert.False(a.Contains(0xA9B40171u));
+ Assert.Contains(0xA9B40170u, a);
+ Assert.DoesNotContain(0xA9B40171u, a);
}
[Fact]
diff --git a/tests/AcDream.Core.Tests/Physics/CellGraphMembershipTests.cs b/tests/AcDream.Core.Tests/Physics/CellGraphMembershipTests.cs
index 802e1eef..99007e0f 100644
--- a/tests/AcDream.Core.Tests/Physics/CellGraphMembershipTests.cs
+++ b/tests/AcDream.Core.Tests/Physics/CellGraphMembershipTests.cs
@@ -26,7 +26,7 @@ public class CellGraphMembershipTests
{
VertexArray = new VertexArray { Vertices = new Dictionary() },
Polygons = new Dictionary(),
- PhysicsBSP = null,
+ PhysicsBSP = null!,
CellBSP = new CellBSPTree
{
Root = new CellBSPNode { Type = DatReaderWriter.Enums.BSPNodeType.Leaf },
diff --git a/tests/AcDream.Core.Tests/Physics/DoorSetupGfxObjInspectionTests.cs b/tests/AcDream.Core.Tests/Physics/DoorSetupGfxObjInspectionTests.cs
index 0b187159..4bd1bac0 100644
--- a/tests/AcDream.Core.Tests/Physics/DoorSetupGfxObjInspectionTests.cs
+++ b/tests/AcDream.Core.Tests/Physics/DoorSetupGfxObjInspectionTests.cs
@@ -388,21 +388,26 @@ public class DoorSetupGfxObjInspectionTests
_out.WriteLine($" CellStruct polygons = {cellStruct.Polygons?.Count ?? 0} (visible)");
_out.WriteLine($" CellStruct physicsPolys = {cellStruct.PhysicsPolygons?.Count ?? 0}");
+ var physicsPolygons = cellStruct.PhysicsPolygons
+ ?? throw new InvalidDataException("CellStruct has no physics polygons collection.");
+ var vertices = cellStruct.VertexArray?.Vertices
+ ?? throw new InvalidDataException("CellStruct has no vertex array.");
+
// Dump ALL physics polygons (collision walls/floor) in world frame
// so we can see what blocks a sphere at world (133.655, 17.59).
_out.WriteLine($" CellStruct PHYSICS polys (world frame):");
var cellOrigin = envCell.Position.Origin;
var cellRot = envCell.Position.Orientation;
- for (int pi = 0; pi < cellStruct.PhysicsPolygons.Count; pi++)
+ for (int pi = 0; pi < physicsPolygons.Count; pi++)
{
- var (pid, poly) = (cellStruct.PhysicsPolygons.Keys.ElementAt(pi),
- cellStruct.PhysicsPolygons.Values.ElementAt(pi));
+ var (pid, poly) = (physicsPolygons.Keys.ElementAt(pi),
+ physicsPolygons.Values.ElementAt(pi));
float wxMin = float.MaxValue, wxMax = float.MinValue;
float wyMin = float.MaxValue, wyMax = float.MinValue;
float wzMin = float.MaxValue, wzMax = float.MinValue;
foreach (var vid in poly.VertexIds)
{
- if (!cellStruct.VertexArray.Vertices.TryGetValue((ushort)vid, out var sv)) continue;
+ if (!vertices.TryGetValue((ushort)vid, out var sv)) continue;
var rotated = System.Numerics.Vector3.Transform(sv.Origin, cellRot);
var world = cellOrigin + rotated;
if (world.X < wxMin) wxMin = world.X; if (world.X > wxMax) wxMax = world.X;
@@ -425,7 +430,7 @@ public class DoorSetupGfxObjInspectionTests
continue;
}
// Resolve vertex positions.
- var vs = poly.VertexIds.Select(vid => cellStruct.VertexArray.Vertices[(ushort)vid].Origin).ToList();
+ var vs = poly.VertexIds.Select(vid => vertices[(ushort)vid].Origin).ToList();
string vlist = string.Join(",", vs.Select(v => $"({v.X:F2},{v.Y:F2},{v.Z:F2})"));
// Compute the plane using the first three verts (normal = (v1-v0) x (v2-v0), d = -dot(n, v0)).
diff --git a/tests/AcDream.Core.Tests/Physics/FlatCollisionInstalledDatTests.cs b/tests/AcDream.Core.Tests/Physics/FlatCollisionInstalledDatTests.cs
index 8a493228..43ed3820 100644
--- a/tests/AcDream.Core.Tests/Physics/FlatCollisionInstalledDatTests.cs
+++ b/tests/AcDream.Core.Tests/Physics/FlatCollisionInstalledDatTests.cs
@@ -143,7 +143,7 @@ public sealed class FlatCollisionInstalledDatTests
FlatCollisionAssetBuilder.FlattenGfxObj(gfxObj);
AssertPhysicsSourceMatches(
- source.BSP.Root,
+ source.BSP?.Root,
source.Resolved,
flat.PhysicsBsp);
AssertNullableSphereBits(source.BoundingSphere, flat.BoundingSphere);
diff --git a/tests/AcDream.Core.Tests/Physics/Motion/RemoteChaseEndToEndHarnessTests.cs b/tests/AcDream.Core.Tests/Physics/Motion/RemoteChaseEndToEndHarnessTests.cs
index 6d53856e..5e3ff004 100644
--- a/tests/AcDream.Core.Tests/Physics/Motion/RemoteChaseEndToEndHarnessTests.cs
+++ b/tests/AcDream.Core.Tests/Physics/Motion/RemoteChaseEndToEndHarnessTests.cs
@@ -127,8 +127,8 @@ internal sealed class RemoteChaseHarness
public double Now;
// Counters (the live-probe equivalents).
- public int BeginTurnBlocked;
- public int BeginTurnUnblocked;
+ public int BeginTurnBlocked = 0;
+ public int BeginTurnUnblocked = 0;
public int RunInstalls; // substate transitions INTO RunForward/Walk fwd
public int TicksInRun;
public int TicksInWalkFwd;
@@ -176,7 +176,7 @@ internal sealed class RemoteChaseHarness
{
var mtm = new MoveToManager(
Interp,
- stopCompletely: () => Movement.PerformMovement(
+ stopCompletely: () => Movement!.PerformMovement(
new MovementStruct { Type = MovementType.StopCompletely }),
getPosition: () => new CorePosition(1u, Body.Position, Body.Orientation),
getHeading: () => MoveToMath.GetHeading(Body.Orientation),
@@ -202,8 +202,8 @@ internal sealed class RemoteChaseHarness
curTime: () => Now);
// R5-V3 (#171) sticky seam binds (BeginNextNode arrival
// StickTo @0x00529d3a, PerformMovement-head Unstick).
- mtm.StickTo = (tlid, radius, height) => Pm.StickTo(tlid, radius, height);
- mtm.Unstick = Pm.UnStick;
+ mtm.StickTo = (tlid, radius, height) => Pm!.StickTo(tlid, radius, height);
+ mtm.Unstick = Pm!.UnStick;
return mtm;
},
};
diff --git a/tests/AcDream.Core.Tests/Physics/MotionInterpreterDoMotionFamilyTests.cs b/tests/AcDream.Core.Tests/Physics/MotionInterpreterDoMotionFamilyTests.cs
index f767a887..cd9950d5 100644
--- a/tests/AcDream.Core.Tests/Physics/MotionInterpreterDoMotionFamilyTests.cs
+++ b/tests/AcDream.Core.Tests/Physics/MotionInterpreterDoMotionFamilyTests.cs
@@ -24,7 +24,7 @@ namespace AcDream.Core.Tests.Physics;
/// configurable, matching the ground-lifecycle test file's convention.
file sealed class FakeWeenie : IWeenieObject
{
- public bool IsThePlayerResult;
+ public bool IsThePlayerResult = false;
public bool IsCreatureResult = true;
public bool CanJumpResult = true;
diff --git a/tests/AcDream.Core.Tests/Physics/MotionInterpreterTests.cs b/tests/AcDream.Core.Tests/Physics/MotionInterpreterTests.cs
index 982c7788..e25596af 100644
--- a/tests/AcDream.Core.Tests/Physics/MotionInterpreterTests.cs
+++ b/tests/AcDream.Core.Tests/Physics/MotionInterpreterTests.cs
@@ -488,6 +488,9 @@ public sealed class MotionInterpreterTests
// links). Verified against the live retail-observer trace
// (RetailObserverTraceConformanceTests, 183/183 dispatch conformant).
+ // R3 owns removal of the known redundant row. Keep this one historical
+ // input unchanged during R2 while ensuring any new duplicate still fails.
+#pragma warning disable xUnit1025
[Theory]
[InlineData(MotionCommand.Fallen)]
[InlineData(MotionCommand.Dead)]
@@ -505,6 +508,7 @@ public sealed class MotionInterpreterTests
Assert.True(allowed);
}
+#pragma warning restore xUnit1025
[Fact]
public void ContactAllowsMove_AirborneCreature_AcceptsFallingAndTurns_BlocksWalk()
diff --git a/tests/AcDream.Core.Tests/Properties/ItemWireEnumConformanceTests.cs b/tests/AcDream.Core.Tests/Properties/ItemWireEnumConformanceTests.cs
index 8c4c1bad..b031732e 100644
--- a/tests/AcDream.Core.Tests/Properties/ItemWireEnumConformanceTests.cs
+++ b/tests/AcDream.Core.Tests/Properties/ItemWireEnumConformanceTests.cs
@@ -128,6 +128,6 @@ public sealed class ItemWireEnumConformanceTests
uint naiveUnion = (uint)ItemUseable.ObjSelf | (uint)ItemUseable.Contained
| ((uint)ItemUseable.Contained << 16);
- Assert.NotEqual(naiveUnion, (uint)ItemUseable.SourceContainedTargetObjSelfOrContained);
+ Assert.NotEqual((uint)ItemUseable.SourceContainedTargetObjSelfOrContained, naiveUnion);
}
}
diff --git a/tests/AcDream.Core.Tests/Streaming/StreamingControllerTwoTierTests.cs b/tests/AcDream.Core.Tests/Streaming/StreamingControllerTwoTierTests.cs
index d6c92889..20114571 100644
--- a/tests/AcDream.Core.Tests/Streaming/StreamingControllerTwoTierTests.cs
+++ b/tests/AcDream.Core.Tests/Streaming/StreamingControllerTwoTierTests.cs
@@ -59,7 +59,7 @@ public class StreamingControllerTwoTierTests
Rotation = System.Numerics.Quaternion.Identity,
MeshRefs = System.Array.Empty() } });
state.AddLandblock(lb100);
- Assert.Equal(1, state.Entities.Count);
+ Assert.Single(state.Entities);
var ctrl = new StreamingController(
enqueueLoad: (id, kind) => loads.Add((id, kind)),
@@ -151,7 +151,7 @@ public class StreamingControllerTwoTierTests
// Promoted routes to AddEntitiesToExistingLandblock — the entity is now
// merged into the existing LB record.
Assert.Equal(1, applyPromotedCount);
- Assert.Equal(1, state.Entities.Count);
+ Assert.Single(state.Entities);
Assert.Equal(7u, state.Entities[0].Id);
}
}
diff --git a/tests/AcDream.Core.Tests/packages.neutral.lock.json b/tests/AcDream.Core.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..f8dddef4
--- /dev/null
+++ b/tests/AcDream.Core.Tests/packages.neutral.lock.json
@@ -0,0 +1,652 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Arch.LowLevel": {
+ "type": "Transitive",
+ "resolved": "1.1.5",
+ "contentHash": "kc6T2qAsgzdb5RV+RIqVQ33LROhgXmA5fZRUhXRK+AJ1J58NML1i2M6XTKIj1ISirCwuqgYnM4qYkhqGcngG1g==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.2.2"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "Collections.Pooled": {
+ "type": "Transitive",
+ "resolved": "2.0.0-preview.27",
+ "contentHash": "VS3uHc1GNamanS1i1hQ3PoZUddIagCswVMWvucAgqWwY2KVwgL2Q7raGu0hTqP/CWuROoq0RiNbIvu4ST1bMzg=="
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.ObjectPool": {
+ "type": "Transitive",
+ "resolved": "7.0.0",
+ "contentHash": "udvKco0sAVgYGTBnHUb0tY9JQzJ/nPDiv/8PIyz69wl1AibeCDZOLVVI+6156dPfHmJH7ws5oUJRiW4ZmAvuuA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZeroAllocJobScheduler": {
+ "type": "Transitive",
+ "resolved": "1.1.2",
+ "contentHash": "PKu/zSvwV1fWxt8+CEW15O9OlQ2zB9UoeAaor/aJJ0QeTKxxSjigczYLoVPKjYLAQu3ddZQd7Z3zplVTtUgigQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.app": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "AcDream.UI.Abstractions": "[1.0.0, )",
+ "Arch": "[2.1.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Serilog": "[4.0.2, )",
+ "Serilog.Sinks.Console": "[6.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )",
+ "Silk.NET.OpenAL": "[2.23.0, )",
+ "Silk.NET.OpenAL.Extensions.Creative": "[2.23.0, )",
+ "Silk.NET.OpenAL.Extensions.EXT": "[2.23.0, )",
+ "Silk.NET.OpenAL.Soft.Native": "[1.23.1, )",
+ "Silk.NET.Vulkan": "[2.23.0, )",
+ "Silk.NET.Vulkan.Extensions.EXT": "[2.23.0, )",
+ "Silk.NET.Vulkan.Extensions.KHR": "[2.23.0, )",
+ "Silk.NET.Windowing": "[2.23.0, )",
+ "SixLabors.ImageSharp": "[3.1.12, )",
+ "StbTrueTypeSharp": "[1.26.12, )"
+ }
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "acdream.ui.abstractions": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )"
+ }
+ },
+ "Arch": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.0, )",
+ "resolved": "2.1.0",
+ "contentHash": "Z9zxQztEvD/c2tsdW+LDm5E3Rd04JKeWRa6S0JOBfEFE7800+JLa7pgMAL6I/hvOY6q93QXvQ6Y+5E/TPc5Tfw==",
+ "dependencies": {
+ "Arch.LowLevel": "1.1.5",
+ "Collections.Pooled": "2.0.0-preview.27",
+ "CommunityToolkit.HighPerformance": "8.2.2",
+ "Microsoft.Extensions.ObjectPool": "7.0.0",
+ "ZeroAllocJobScheduler": "1.1.2"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "Serilog.Sinks.Console": {
+ "type": "CentralTransitive",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
+ "dependencies": {
+ "Serilog": "4.0.0"
+ }
+ },
+ "Silk.NET.Input": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "O8EaDRWGOcKniZ2VxKD/xOmugzUJz747KpqGRw3cezDsz8nD66OZW217o1rT06cG76f8eYigy/yY6eRdhRqHHQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.Creative": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "++3+P3G2CuV4ZbD9EG81XAxsu2enofp6jFhz6GmqEf96ZrC+3COMJPgzFtjDnPswuNOFK8FWzTCucdbw1jGXBQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Extensions.EXT": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "nhn0wv7o+RFqcxv5QTbHyEcZAf4ojqyK5aE4xoIyBubIlHBPXvV46O7w7ybo0z0ChZCBBS/teP42vaxx5YP+tQ==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.OpenAL": "2.23.0"
+ }
+ },
+ "Silk.NET.OpenAL.Soft.Native": {
+ "type": "CentralTransitive",
+ "requested": "[1.23.1, )",
+ "resolved": "1.23.1",
+ "contentHash": "gZIbksInoiXbJZmepYnTs5O6Edg5O5k86c1+Uus0zSaVnQx5WRbInGz2VTlvudbs0qAqXs/asL1YvJzco/nfAQ=="
+ },
+ "Silk.NET.Vulkan": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "3/irtlSWXZ3eTi8N6nelI6L34NTB8ZJHpqVMNzZx2aX7Ek9YEQ34NoQW8/Tljrtmkg8KRhHW8hKTEzZaKV8PgA==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.EXT": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "+Oth189ksRiL6HvGCwIdnsYHawqrbO8y49u1H61z3wsfcHhQZeVDYe/wF5LD7fk3NcdgDvwFD3mLm1QWhdZySw==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Vulkan.Extensions.KHR": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "uRaf4j+SmH3DumjSSSUbFg33BnsGZUyXGj93O9NgGKZSJN3OTmNmQDxRew+/KiVLcgH6qzbto8aNGZ++j9GFWg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Vulkan": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "OPNPmt/lRyUKVYrFLQXVxyATqD3MKLc1iY1oKx1/2GppgmZxVZPwN12tekrQ4C7408kgB1L5JD1Wnirqqeb2kg==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Headless.Tests/AcDream.Headless.Tests.csproj b/tests/AcDream.Headless.Tests/AcDream.Headless.Tests.csproj
index fa871545..2d02e37f 100644
--- a/tests/AcDream.Headless.Tests/AcDream.Headless.Tests.csproj
+++ b/tests/AcDream.Headless.Tests/AcDream.Headless.Tests.csproj
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.Headless.Tests/packages.neutral.lock.json b/tests/AcDream.Headless.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..1074d048
--- /dev/null
+++ b/tests/AcDream.Headless.Tests/packages.neutral.lock.json
@@ -0,0 +1,427 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream-headless": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Runtime": "[1.0.0, )"
+ }
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Launcher.Core.Tests.Fixtures.ConsoleSignalChild/packages.neutral.lock.json b/tests/AcDream.Launcher.Core.Tests.Fixtures.ConsoleSignalChild/packages.neutral.lock.json
new file mode 100644
index 00000000..6afd6786
--- /dev/null
+++ b/tests/AcDream.Launcher.Core.Tests.Fixtures.ConsoleSignalChild/packages.neutral.lock.json
@@ -0,0 +1,6 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {}
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Launcher.Core.Tests.Fixtures.ConsolelessSupervisorParent/packages.neutral.lock.json b/tests/AcDream.Launcher.Core.Tests.Fixtures.ConsolelessSupervisorParent/packages.neutral.lock.json
new file mode 100644
index 00000000..afa23c62
--- /dev/null
+++ b/tests/AcDream.Launcher.Core.Tests.Fixtures.ConsolelessSupervisorParent/packages.neutral.lock.json
@@ -0,0 +1,16 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Launcher.Core.Tests.Fixtures.InstallLeaseHolder/packages.neutral.lock.json b/tests/AcDream.Launcher.Core.Tests.Fixtures.InstallLeaseHolder/packages.neutral.lock.json
new file mode 100644
index 00000000..68130134
--- /dev/null
+++ b/tests/AcDream.Launcher.Core.Tests.Fixtures.InstallLeaseHolder/packages.neutral.lock.json
@@ -0,0 +1,322 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream-bake": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Microsoft.Extensions.Logging.Abstractions": "[9.0.9, )"
+ }
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Launcher.Core.Tests/AcDream.Launcher.Core.Tests.csproj b/tests/AcDream.Launcher.Core.Tests/AcDream.Launcher.Core.Tests.csproj
index f1677cc9..da23eca1 100644
--- a/tests/AcDream.Launcher.Core.Tests/AcDream.Launcher.Core.Tests.csproj
+++ b/tests/AcDream.Launcher.Core.Tests/AcDream.Launcher.Core.Tests.csproj
@@ -8,10 +8,10 @@
true
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.Launcher.Core.Tests/packages.neutral.lock.json b/tests/AcDream.Launcher.Core.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..a01d88aa
--- /dev/null
+++ b/tests/AcDream.Launcher.Core.Tests/packages.neutral.lock.json
@@ -0,0 +1,113 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Launcher.Tests/AcDream.Launcher.Tests.csproj b/tests/AcDream.Launcher.Tests/AcDream.Launcher.Tests.csproj
index ef2da372..23aedde8 100644
--- a/tests/AcDream.Launcher.Tests/AcDream.Launcher.Tests.csproj
+++ b/tests/AcDream.Launcher.Tests/AcDream.Launcher.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/AcDream.Launcher.Tests/LauncherProjectBoundaryTests.cs b/tests/AcDream.Launcher.Tests/LauncherProjectBoundaryTests.cs
index 5a5379a9..111145e4 100644
--- a/tests/AcDream.Launcher.Tests/LauncherProjectBoundaryTests.cs
+++ b/tests/AcDream.Launcher.Tests/LauncherProjectBoundaryTests.cs
@@ -13,7 +13,7 @@ public sealed class LauncherProjectBoundaryTests
];
[Fact]
- public void LauncherReferencesOnlyLauncherCoreAndPinsOneAvaloniaVersion()
+ public void LauncherReferencesOnlyLauncherCoreAndUsesCentralAvaloniaVersion()
{
string root = FindRepositoryRoot();
string projectPath = Path.Combine(
@@ -31,16 +31,29 @@ public sealed class LauncherProjectBoundaryTests
projectReference,
StringComparison.Ordinal);
- (string Name, string Version)[] packages = project
+ (string Name, string? Version)[] packages = project
.Descendants("PackageReference")
.Select(element => (
element.Attribute("Include")?.Value ?? string.Empty,
- element.Attribute("Version")?.Value ?? string.Empty))
+ element.Attribute("Version")?.Value))
.OrderBy(package => package.Item1, StringComparer.Ordinal)
.ToArray();
Assert.Equal(ExpectedAvaloniaPackages, packages.Select(package => package.Name));
- Assert.All(packages, package => Assert.Equal("12.1.1", package.Version));
+ Assert.All(packages, package => Assert.Null(package.Version));
+
+ XDocument centralVersions = XDocument.Load(Path.Combine(root, "Directory.Packages.props"));
+ (string Name, string Version)[] centralAvaloniaPackages = centralVersions
+ .Descendants("PackageVersion")
+ .Select(element => (
+ element.Attribute("Include")?.Value ?? string.Empty,
+ element.Attribute("Version")?.Value ?? string.Empty))
+ .Where(package => ExpectedAvaloniaPackages.Contains(package.Item1, StringComparer.Ordinal))
+ .OrderBy(package => package.Item1, StringComparer.Ordinal)
+ .ToArray();
+
+ Assert.Equal(ExpectedAvaloniaPackages, centralAvaloniaPackages.Select(package => package.Name));
+ Assert.All(centralAvaloniaPackages, package => Assert.Equal("12.1.1", package.Version));
}
[Fact]
diff --git a/tests/AcDream.Launcher.Tests/MainWindowViewTests.cs b/tests/AcDream.Launcher.Tests/MainWindowViewTests.cs
index 62a1cf6c..0fd62668 100644
--- a/tests/AcDream.Launcher.Tests/MainWindowViewTests.cs
+++ b/tests/AcDream.Launcher.Tests/MainWindowViewTests.cs
@@ -114,52 +114,57 @@ public sealed class MainWindowViewTests
}
}
- [AvaloniaTheory]
- [InlineData(ProfileEditorKind.AddServer, "ServerNameTextBox")]
- [InlineData(ProfileEditorKind.EditServer, "ServerNameTextBox")]
- [InlineData(ProfileEditorKind.AddAccount, "AccountNameTextBox")]
- [InlineData(ProfileEditorKind.EditAccount, "AccountNameTextBox")]
- [InlineData(ProfileEditorKind.AddCharacter, "CharacterNameTextBox")]
- [InlineData(ProfileEditorKind.EditCharacter, "CharacterNameTextBox")]
- [InlineData(ProfileEditorKind.Remove, "EditorSubmitButton")]
- public void OpeningEachEditorKindFocusesItsPrimaryFieldAndClosingRunsTheFallbackWithoutThrowing(
- ProfileEditorKind kind,
- string expectedFocusFieldName)
+ [AvaloniaFact]
+ public void OpeningEveryEditorKindFocusesItsPrimaryFieldAndClosingRunsTheFallbackWithoutThrowing()
{
- using LauncherWindowViewModel viewModel = CreateViewModel();
- var window = new MainWindow { DataContext = viewModel };
- try
+ (ProfileEditorKind Kind, string FocusFieldName)[] cases =
+ [
+ (ProfileEditorKind.AddServer, "ServerNameTextBox"),
+ (ProfileEditorKind.EditServer, "ServerNameTextBox"),
+ (ProfileEditorKind.AddAccount, "AccountNameTextBox"),
+ (ProfileEditorKind.EditAccount, "AccountNameTextBox"),
+ (ProfileEditorKind.AddCharacter, "CharacterNameTextBox"),
+ (ProfileEditorKind.EditCharacter, "CharacterNameTextBox"),
+ (ProfileEditorKind.Remove, "EditorSubmitButton"),
+ ];
+
+ foreach ((ProfileEditorKind kind, string expectedFocusFieldName) in cases)
{
- window.Show();
+ using LauncherWindowViewModel viewModel = CreateViewModel();
+ var window = new MainWindow { DataContext = viewModel };
+ try
+ {
+ window.Show();
- viewModel.EditorDialog.Open(kind, "Fixture title", _ => { });
- Assert.True(viewModel.EditorDialog.IsOpen);
- Dispatcher.UIThread.RunJobs();
+ viewModel.EditorDialog.Open(kind, "Fixture title", _ => { });
+ Assert.True(viewModel.EditorDialog.IsOpen);
+ Dispatcher.UIThread.RunJobs();
- Control expectedFocus = (Control)GetNamedField(window, expectedFocusFieldName)!;
- Assert.Same(expectedFocus, CurrentFocus(window));
+ Control expectedFocus = (Control)GetNamedField(window, expectedFocusFieldName)!;
+ Assert.Same(expectedFocus, CurrentFocus(window));
- viewModel.EditorDialog.Close();
- Assert.False(viewModel.EditorDialog.IsOpen);
+ viewModel.EditorDialog.Close();
+ Assert.False(viewModel.EditorDialog.IsOpen);
- // Nothing held focus before the dialog opened, so
- // OnViewModelPropertyChanged's close branch posts the fallback
- // (ProfilesTree.Focus()). Pumping the dispatcher is what actually
- // *runs* FocusActiveModal's caller and its ProfilesTree
- // dereference — this is the #398 defect class: with
- // AvaloniaXamlLoader.Load(this) instead of InitializeComponent(),
- // ProfilesTree is null here and this throws
- // NullReferenceException out of the dispatcher. TreeView's Fluent
- // template sets Focusable="False" (focus lives on TreeViewItem
- // rows, not the tree itself), so a successful, non-throwing
- // ProfilesTree.Focus() call still leaves focus at null — that is
- // expected, not a failure.
- Dispatcher.UIThread.RunJobs();
- Assert.NotSame(expectedFocus, CurrentFocus(window));
- }
- finally
- {
- CloseTestWindow(window);
+ // Nothing held focus before the dialog opened, so
+ // OnViewModelPropertyChanged's close branch posts the fallback
+ // (ProfilesTree.Focus()). Pumping the dispatcher is what actually
+ // *runs* FocusActiveModal's caller and its ProfilesTree
+ // dereference — this is the #398 defect class: with
+ // AvaloniaXamlLoader.Load(this) instead of InitializeComponent(),
+ // ProfilesTree is null here and this throws
+ // NullReferenceException out of the dispatcher. TreeView's Fluent
+ // template sets Focusable="False" (focus lives on TreeViewItem
+ // rows, not the tree itself), so a successful, non-throwing
+ // ProfilesTree.Focus() call still leaves focus at null — that is
+ // expected, not a failure.
+ Dispatcher.UIThread.RunJobs();
+ Assert.NotSame(expectedFocus, CurrentFocus(window));
+ }
+ finally
+ {
+ CloseTestWindow(window);
+ }
}
}
diff --git a/tests/AcDream.Launcher.Tests/packages.neutral.lock.json b/tests/AcDream.Launcher.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..35b26e1f
--- /dev/null
+++ b/tests/AcDream.Launcher.Tests/packages.neutral.lock.json
@@ -0,0 +1,407 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Avalonia.Headless.XUnit": {
+ "type": "Direct",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "74CbU8pPHpJzVu84CiKtsDzd1jpt/aZHKVXQPp/EyHMOsWbe5IG1Q/od4LffJhilPFSFAvopxxMVeRau73ipNg==",
+ "dependencies": {
+ "Avalonia.Headless": "12.1.1",
+ "xunit.v3.extensibility.core": "3.2.2"
+ }
+ },
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "xunit.v3": {
+ "type": "Direct",
+ "requested": "[3.2.2, )",
+ "resolved": "3.2.2",
+ "contentHash": "L+4/4y0Uqcg8/d6hfnxhnwh4j9FaeULvefTwrk30rr1o4n/vdPfyUQ8k0yzH8VJx7bmFEkDdcRfbtbjEHlaYcA==",
+ "dependencies": {
+ "xunit.v3.mtp-v1": "[3.2.2]"
+ }
+ },
+ "Avalonia.Angle.Windows.Natives": {
+ "type": "Transitive",
+ "resolved": "2.1.27548.20260419",
+ "contentHash": "l17nI3XVDN3oMnpjf2pnmJg0YTwK4m6NLsn/itAjDMdObTFxN77D5F1M9sRMSfViSY3KKcse1ROczwgoWLJsnA=="
+ },
+ "Avalonia.BuildServices": {
+ "type": "Transitive",
+ "resolved": "11.3.2",
+ "contentHash": "qHDToxto1e3hci5YqbG9n0Ty8mlp3zBUN5wT66wKqaDVzXyQ0do3EnRILd4Ke9jpvsktaPpgE0YjEk7hornryQ=="
+ },
+ "Avalonia.Fonts.Inter": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "V2d7OM1jybcl31KThdhf8XSl5SjQ6Ll/tXIfwQ00kMeWuPegRcOx8DLVpECHOOEKO9JZelXW0enuUu1D7Svikg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.FreeDesktop": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "dMMW6vJGsaUD+3e5lA3dGYyNu+Tv/yl0sSrUQLlOQ2RVhmNLkybWdgebHx94lznV3RF9cRGUd9Q+J5XpJ7xfJw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Tmds.DBus.Protocol": "0.94.1"
+ }
+ },
+ "Avalonia.FreeDesktop.AtSpi": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "BJ2oGBM6pSayLvjhliMPph4LYhPmzDCRjyXQ4jdttrK7cetTViyniW0gMVpNAPNjr4sn6rbN4EHiWknPQq2pLg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.HarfBuzz": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "vgd/Fl4bIXgv3QtYk6WCd6iGAag4i3OOAozo6/DW3xPr5dWjpi1MmJaeE9MYoZBEDJ4egD0gfHz6nYhkDADz9g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3"
+ }
+ },
+ "Avalonia.Headless": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "+iIeqFnh3/Z91hrQjlhpR6I72fV7q6zjAksQvenPblqgHvsF2PY63eXfBz7H7bmk0WHtuROiFQKLxx//AHInJQ==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.Fonts.Inter": "12.1.1",
+ "Avalonia.HarfBuzz": "12.1.1"
+ }
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "jbgCUIhgQGD7d9mLN1oe4J8EpzDa0aY9PS77PZuRUDcNyr/V+vFNdyYXSJs3imrm0NOzTsCcFtK2NSXGDmJ1dw==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ },
+ "Avalonia.Remote.Protocol": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "0u77tnOwJnHtVLu+WBY7T56fN9W8n7++Uq9kHW6J+bfv5y13WZUMVS+PBzoBe32taYvz/oSomDGO1V41AHaFcQ=="
+ },
+ "Avalonia.Skia": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "Q0jRMXb212RYIZNV7p6L/zWx8lyPck9dFFW+l86moeN4dNxHjPBdJS3nLdLvAd20Eno7JC4gwRa5Fewg52td8g==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "HarfBuzzSharp": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.Linux": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.WebAssembly": "8.3.1.3",
+ "SkiaSharp": "3.119.4",
+ "SkiaSharp.NativeAssets.Linux": "3.119.4",
+ "SkiaSharp.NativeAssets.WebAssembly": "3.119.4"
+ }
+ },
+ "Avalonia.Win32": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "W7FKmHqoyI09dlCnrt0T9QSLk92qVJwXEHPwMI4zIM09Q6H5NzKfvwoadwxIc8S5gydvFypop3DfKX8x9SILug==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.Angle.Windows.Natives": "2.1.27548.20260419"
+ }
+ },
+ "Avalonia.X11": {
+ "type": "Transitive",
+ "resolved": "12.1.1",
+ "contentHash": "s7eRJO+QHTmuyGZ7ZClljdgOVTT2OhfEc+Hk5hTgsjI7y84uM5skTvnm+M+Qzlmr1Ru6MLeFUQaTlFA4Aea35Q==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.FreeDesktop": "12.1.1",
+ "Avalonia.FreeDesktop.AtSpi": "12.1.1",
+ "Avalonia.Skia": "12.1.1"
+ }
+ },
+ "HarfBuzzSharp": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "NGZ2+ZVNPM+NdHB/asW0/ykWngyHWwcqjrbN2nDeH1B/aptPGlCUl8wkQ2cSJxw5fdWgdmIPmNuTPWpLwNVXWg==",
+ "dependencies": {
+ "HarfBuzzSharp.NativeAssets.Win32": "8.3.1.3",
+ "HarfBuzzSharp.NativeAssets.macOS": "8.3.1.3"
+ }
+ },
+ "HarfBuzzSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "RI6A1LgmooU30+4QIyFt5rmBCzP0VzTR+587IJSGvYIsHHWlahFufihYxtraLfsIhW7I8dn6+xX+DZGygOPKWQ=="
+ },
+ "HarfBuzzSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "KPTq0xnslkI6nAo0jh3ptcQPJvZZr7MWYXa2jUe4SnHc9q+JlHElmNXp0sfFoiTgoCX7WOYpYsurypuH9Gehxw=="
+ },
+ "HarfBuzzSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "w2QfdNm9Uz/sUa0B5D+OnVQhyq3G/fBq6ibQMdWBlQqqwh0g0/5j3RFvYqZAmRZ5+RzvjVe8o8SFFnWYUSkuxA=="
+ },
+ "HarfBuzzSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "8.3.1.3",
+ "contentHash": "bx8CE8Js+XGX8PUxAHCBDEORt5aaBYtMN4Hr9QFs57Xithh6yjUyYqksizH6eRDhJkwsGI+SXWmPmMm8lZC9Pw=="
+ },
+ "MicroCom.Runtime": {
+ "type": "Transitive",
+ "resolved": "0.11.6",
+ "contentHash": "NdNWGDiZ6eS/Mf/9+QHR91cj1K7Hy+PX9yrHI/zM7xFYuj9IWT2uxtB6sCHjrnxAeLV9fut1R6zHDUGKX6f9lQ=="
+ },
+ "Microsoft.ApplicationInsights": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "nWArUZTdU7iqZLycLKWe0TDms48KKGE6pONH2terYNa8REXiqixrMOkf1sk5DHGMaUTqONU2YkS4SAXBhLStgw=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "6.0.0",
+ "contentHash": "UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Testing.Extensions.Telemetry": {
+ "type": "Transitive",
+ "resolved": "1.9.1",
+ "contentHash": "No5AudZMmSb+uNXjlgL2y3/stHD2IT4uxqc5yHwkE+/nNux9jbKcaJMvcp9SwgP4DVD8L9/P3OUz8mmmcvEIdQ==",
+ "dependencies": {
+ "Microsoft.ApplicationInsights": "2.23.0",
+ "Microsoft.Testing.Platform": "1.9.1"
+ }
+ },
+ "Microsoft.Testing.Extensions.TrxReport.Abstractions": {
+ "type": "Transitive",
+ "resolved": "1.9.1",
+ "contentHash": "AL46Xe1WBi85Ntd4mNPvat5ZSsZ2uejiVqoKCypr8J3wK0elA5xJ3AN4G/Q4GIwzUFnggZoH/DBjnr9J18IO/g==",
+ "dependencies": {
+ "Microsoft.Testing.Platform": "1.9.1"
+ }
+ },
+ "Microsoft.Testing.Platform": {
+ "type": "Transitive",
+ "resolved": "1.9.1",
+ "contentHash": "QafNtNSmEI0zazdebnsIkDKmFtTSpmx/5PLOjURWwozcPb3tvRxzosQSL8xwYNM1iPhhKiBksXZyRSE2COisrA=="
+ },
+ "Microsoft.Testing.Platform.MSBuild": {
+ "type": "Transitive",
+ "resolved": "1.9.1",
+ "contentHash": "oTUtyR4X/s9ytuiNA29FGsNCCH0rNmY5Wdm14NCKLjTM1cT9edVSlA+rGS/mVmusPqcP0l/x9qOnMXg16v87RQ==",
+ "dependencies": {
+ "Microsoft.Testing.Platform": "1.9.1"
+ }
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "SkiaSharp": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "53NOSUZ1Us+91Sm0uCkIivh/k7jOowRErZT2sIWwPFN9mLUvdxnE6rS4sWo4255+Rd2MWUSF+j0NMZHD6Cke+Q==",
+ "dependencies": {
+ "SkiaSharp.NativeAssets.Win32": "3.119.4",
+ "SkiaSharp.NativeAssets.macOS": "3.119.4"
+ }
+ },
+ "SkiaSharp.NativeAssets.Linux": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "UAyVzbqNfZsZbKbzj68zXLyUyF/SbTKmzTfOO6qDu++dtIUMMTzPBe8oOuzU/DiewpfKoUUlOSsJmqWc6blxBw=="
+ },
+ "SkiaSharp.NativeAssets.macOS": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "fgBOWEqbY012x7gMfJU4ezgz6dfhJb30Z6YdW35h85Zoe39+a8YNbAAwL29ihPfWoppg5AjvyKNzD1oCvlqWwA=="
+ },
+ "SkiaSharp.NativeAssets.WebAssembly": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "S1HOxtBbD4bYDtA2e9WH5TX+lxqRrTPvKjrjttRhxnHNNu7YY8VFo/LeCP7tNqoTA6PV+8vsvNbmRUEC2ip8RQ=="
+ },
+ "SkiaSharp.NativeAssets.Win32": {
+ "type": "Transitive",
+ "resolved": "3.119.4",
+ "contentHash": "XOpbx/4CReO2wYsq2s6rbvdauc6dntG4Zv499sHGTJ87bwZaFXszFkwql3+FIZMc8kUPeaj3Mx2ezIJmo8a1Kg=="
+ },
+ "Tmds.DBus.Protocol": {
+ "type": "Transitive",
+ "resolved": "0.94.1",
+ "contentHash": "11YMr7FnAbL83bQmVxlhbIKHvSLxjO81D12Ej0QMSGXMDTxNA9MTOa4MQxx43nv5el/efuPHwzyrj6a5ha2gug=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.27.0",
+ "contentHash": "y/pxIQaLvk/kxAoDkZW9GnHLCEqzwl5TW0vtX3pweyQpjizB9y3DXhb9pkw2dGeUqhLjsxvvJM1k89JowU6z3g=="
+ },
+ "xunit.v3.assert": {
+ "type": "Transitive",
+ "resolved": "3.2.2",
+ "contentHash": "BPciBghgEEaJN/JG00QfCYDfEfnLgQhfnYEy+j1izoeHVNYd5+3Wm8GJ6JgYysOhpBPYGE+sbf75JtrRc7jrdA=="
+ },
+ "xunit.v3.common": {
+ "type": "Transitive",
+ "resolved": "3.2.2",
+ "contentHash": "Hj775PEH6GTbbg0wfKRvG2hNspDCvTH9irXhH4qIWgdrOSV1sQlqPie+DOvFeigsFg2fxSM3ZAaaCDQs+KreFA==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "6.0.0"
+ }
+ },
+ "xunit.v3.core.mtp-v1": {
+ "type": "Transitive",
+ "resolved": "3.2.2",
+ "contentHash": "Ga5aA2Ca9ktz+5k3g5ukzwfexwoqwDUpV6z7atSEUvqtd6JuybU1XopHqg1oFd78QdTfZgZE9h5sHpO4qYIi5w==",
+ "dependencies": {
+ "Microsoft.Testing.Extensions.Telemetry": "1.9.1",
+ "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.9.1",
+ "Microsoft.Testing.Platform": "1.9.1",
+ "Microsoft.Testing.Platform.MSBuild": "1.9.1",
+ "xunit.v3.extensibility.core": "[3.2.2]",
+ "xunit.v3.runner.inproc.console": "[3.2.2]"
+ }
+ },
+ "xunit.v3.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "3.2.2",
+ "contentHash": "srY8z/oMPvh/t8axtO2DwrHajhFMH7tnqKildvYrVQIfICi8fOn3yIBWkVPAcrKmHMwvXRJ/XsQM3VMR6DOYfQ==",
+ "dependencies": {
+ "xunit.v3.common": "[3.2.2]"
+ }
+ },
+ "xunit.v3.mtp-v1": {
+ "type": "Transitive",
+ "resolved": "3.2.2",
+ "contentHash": "O41aAzYKBT5PWqATa1oEWVNCyEUypFQ4va6K0kz37dduV3EKzXNMaV2UnEhufzU4Cce1I33gg0oldS8tGL5I0A==",
+ "dependencies": {
+ "xunit.analyzers": "1.27.0",
+ "xunit.v3.assert": "[3.2.2]",
+ "xunit.v3.core.mtp-v1": "[3.2.2]"
+ }
+ },
+ "xunit.v3.runner.common": {
+ "type": "Transitive",
+ "resolved": "3.2.2",
+ "contentHash": "/hkHkQCzGrugelOAehprm7RIWdsUFVmIVaD6jDH/8DNGCymTlKKPTbGokD5czbAfqfex47mBP0sb0zbHYwrO/g==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0]",
+ "xunit.v3.common": "[3.2.2]"
+ }
+ },
+ "xunit.v3.runner.inproc.console": {
+ "type": "Transitive",
+ "resolved": "3.2.2",
+ "contentHash": "ulWOdSvCk+bPXijJZ73bth9NyoOHsAs1ZOvamYbCkD4DNLX/Bd29Ve2ZNUwBbK0MqfIYWXHZViy/HKrdEC/izw==",
+ "dependencies": {
+ "xunit.v3.extensibility.core": "[3.2.2]",
+ "xunit.v3.runner.common": "[3.2.2]"
+ }
+ },
+ "acdream-launcher": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Launcher.Core": "[1.0.0, )",
+ "Avalonia": "[12.1.1, )",
+ "Avalonia.Desktop": "[12.1.1, )",
+ "Avalonia.Themes.Fluent": "[12.1.1, )"
+ }
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "Avalonia": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "o8pZ1oE9AQ6gklpGM0lnOBp/JlVH0J/0mYszBf0GsSAcEnzHNCLM9NnrPZwKu4j2q9oNbVHYzzEPkszQeuqaKw==",
+ "dependencies": {
+ "Avalonia.BuildServices": "11.3.2",
+ "Avalonia.Remote.Protocol": "12.1.1",
+ "MicroCom.Runtime": "0.11.6"
+ }
+ },
+ "Avalonia.Desktop": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "qZIw0njeXs1ziGJBz2WNduPI38zm9UqOksNrl2lALO2JkuzzMElYGQ3+4+Nl7VEnZSvmcbAZnOdvNYfnXGlOSw==",
+ "dependencies": {
+ "Avalonia": "12.1.1",
+ "Avalonia.HarfBuzz": "12.1.1",
+ "Avalonia.Native": "12.1.1",
+ "Avalonia.Skia": "12.1.1",
+ "Avalonia.Win32": "12.1.1",
+ "Avalonia.X11": "12.1.1"
+ }
+ },
+ "Avalonia.Themes.Fluent": {
+ "type": "CentralTransitive",
+ "requested": "[12.1.1, )",
+ "resolved": "12.1.1",
+ "contentHash": "7vdtZsM9o8I8LpU9dyiB/Ah7WB8a5V3JHLsExe4T433ynn5x57F+DBskctZuNOxml8hbe1GmtNUNkBDsqSVKVg==",
+ "dependencies": {
+ "Avalonia": "12.1.1"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Platform.Tests/AcDream.Platform.Tests.csproj b/tests/AcDream.Platform.Tests/AcDream.Platform.Tests.csproj
index 4a538c5b..485b8a15 100644
--- a/tests/AcDream.Platform.Tests/AcDream.Platform.Tests.csproj
+++ b/tests/AcDream.Platform.Tests/AcDream.Platform.Tests.csproj
@@ -8,10 +8,10 @@
true
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.Platform.Tests/packages.neutral.lock.json b/tests/AcDream.Platform.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..dcf26bc5
--- /dev/null
+++ b/tests/AcDream.Platform.Tests/packages.neutral.lock.json
@@ -0,0 +1,107 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Plugin.Tests.Fixtures.HostPlugin/packages.neutral.lock.json b/tests/AcDream.Plugin.Tests.Fixtures.HostPlugin/packages.neutral.lock.json
new file mode 100644
index 00000000..3924e2e2
--- /dev/null
+++ b/tests/AcDream.Plugin.Tests.Fixtures.HostPlugin/packages.neutral.lock.json
@@ -0,0 +1,10 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.Runtime.Tests/AcDream.Runtime.Tests.csproj b/tests/AcDream.Runtime.Tests/AcDream.Runtime.Tests.csproj
index 868e48f2..c845ce8a 100644
--- a/tests/AcDream.Runtime.Tests/AcDream.Runtime.Tests.csproj
+++ b/tests/AcDream.Runtime.Tests/AcDream.Runtime.Tests.csproj
@@ -8,10 +8,10 @@
true
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.Runtime.Tests/packages.neutral.lock.json b/tests/AcDream.Runtime.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..e3ec7b82
--- /dev/null
+++ b/tests/AcDream.Runtime.Tests/packages.neutral.lock.json
@@ -0,0 +1,421 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.launcher.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Platform": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/AcDream.UI.Abstractions.Tests/AcDream.UI.Abstractions.Tests.csproj b/tests/AcDream.UI.Abstractions.Tests/AcDream.UI.Abstractions.Tests.csproj
index 3d1f7e7e..933f2687 100644
--- a/tests/AcDream.UI.Abstractions.Tests/AcDream.UI.Abstractions.Tests.csproj
+++ b/tests/AcDream.UI.Abstractions.Tests/AcDream.UI.Abstractions.Tests.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/AcDream.UI.Abstractions.Tests/packages.neutral.lock.json b/tests/AcDream.UI.Abstractions.Tests/packages.neutral.lock.json
new file mode 100644
index 00000000..24a23153
--- /dev/null
+++ b/tests/AcDream.UI.Abstractions.Tests/packages.neutral.lock.json
@@ -0,0 +1,506 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "coverlet.collector": {
+ "type": "Direct",
+ "requested": "[6.0.4, )",
+ "resolved": "6.0.4",
+ "contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.9.3, )",
+ "resolved": "2.9.3",
+ "contentHash": "TlXQBinK35LpOPKHAqbLY4xlEen9TBafjs0V5KnA4wZsoQLQJiirCR4CbIXvOH8NzkW4YeJKP5P/Bnrodm0h9Q==",
+ "dependencies": {
+ "xunit.analyzers": "1.18.0",
+ "xunit.assert": "2.9.3",
+ "xunit.core": "[2.9.3]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[3.1.4, )",
+ "resolved": "3.1.4",
+ "contentHash": "5mj99LvCqrq3CNi06xYdyIAXOEh+5b33F2nErCzI5zWiDdLHXiPXEWFSUAF8zlIv0ZWqjZNCwHTQeAPYbF3pCg=="
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.GLFW": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "UIs4sH57xlPUNHQ/1bt9rymPWlGy8IMDCNv86h0iM4TOA1CkIx0XM/n/tA4AReh1zQkNrvkxPEdZ3Blvy1dyXg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Ultz.Native.GLFW": "3.4.0"
+ }
+ },
+ "Silk.NET.Input.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "QbJVV7kFBHEByayXCYdJtXXI9Sp4a+QAf0IdGV6uCWkFYcEmqBYW3aaNGvFOdSwTBDbHL5T/OtOCrGh4qYhk7A==",
+ "dependencies": {
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "Silk.NET.Input.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "KGHYqsv/IQRJtD6dloYh2tN4CkaM40vxM2kj0cGKBoCQiBDYHHhJiyDTyMPx0W7Fz5IgnhnG42ELmIAa0DH69A==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Windowing.Glfw": "2.23.0"
+ }
+ },
+ "Silk.NET.Maths": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "r8PdIVzME8EH0qAgbmRPO87I4GfgR2j8TofT7EMuRJDf1QluoQwnVypDoFJjQ2ZBSRsGYk5unYxxogI05Ogsmw=="
+ },
+ "Silk.NET.Windowing.Common": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "ThStSinmY9KQI8DGiF5XEhkLJVnBcgRTBTzL9ijg1wMZAYuckz7ykrNw04fjRm2Gryh6tCNGbvz2XaY0efeFzg==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Maths": "2.23.0"
+ }
+ },
+ "Silk.NET.Windowing.Glfw": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "aYBudKmENmvLRn9p15HbdvlQTnnXskcDfTfbYwSb/4fr263rGLwYuDw/txUEc2jihHJiWCp5+75Y7z5wTJWl7g==",
+ "dependencies": {
+ "Silk.NET.GLFW": "2.23.0",
+ "Silk.NET.Windowing.Common": "2.23.0"
+ }
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "Ultz.Native.GLFW": {
+ "type": "Transitive",
+ "resolved": "3.4.0",
+ "contentHash": "Iy22JopynbOJ32vA0lBhFEzGi65GQJBuJHYBYRBpydrDpNoTiHnjIXfA65Gu+8qsOr/ZEoIF8r9aHCgAXuO6DA=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.18.0",
+ "contentHash": "OtFMHN8yqIcYP9wcVIgJrq01AfTxijjAqVDy/WeQVSyrDC1RzBWeQPztL49DN2syXRah8TYnfvk035s7L95EZQ=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "/Kq28fCE7MjOV42YLVRAJzRF0WmEqsmflm0cfpMjGtzQ2lR5mYVj1/i0Y8uDAOLczkL3/jArrwehfMD0YogMAA=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "BiAEvqGvyme19wE0wTKdADH+NloYqikiU0mcnmiNyXaF9HyHmE6sr/3DC5vnBkgsWaE6yPyWszKSPSApWdRVeQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]",
+ "xunit.extensibility.execution": "[2.9.3]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "kf3si0YTn2a8J8eZNb+zFpwfoyvIrQ7ivNk5ZYA5yuYk1bEtMe4DxJ2CF/qsRgmEnDr7MnW1mxylBaHTZ4qErA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.9.3",
+ "contentHash": "yMb6vMESlSrE3Wfj7V6cjQ3S4TXdXpRqYeNEI3zsX31uTsGMJjEw6oD5F5u1cHnMptjhEECnmZSsPxB6ChZHDQ==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.9.3]"
+ }
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.core.net": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )"
+ }
+ },
+ "acdream.platform": {
+ "type": "Project"
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "acdream.runtime": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Content": "[1.0.0, )",
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Core.Net": "[1.0.0, )",
+ "AcDream.Platform": "[1.0.0, )",
+ "AcDream.Plugin.Abstractions": "[1.0.0, )"
+ }
+ },
+ "acdream.ui.abstractions": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "AcDream.Runtime": "[1.0.0, )",
+ "Silk.NET.Input": "[2.23.0, )"
+ }
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "Silk.NET.Input": {
+ "type": "CentralTransitive",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "Xzl+tVwAp2eEd8blmGQjmJrsZPnp3PWG0KJjiAQHaY2Zr/ELVWeAROKXmZdCAvexzmte2JVGEy/dxnMycbxlpg==",
+ "dependencies": {
+ "Silk.NET.Input.Common": "2.23.0",
+ "Silk.NET.Input.Glfw": "2.23.0"
+ }
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/A8CellAudit/A8CellAudit.csproj b/tools/A8CellAudit/A8CellAudit.csproj
index 9e781806..ad45a732 100644
--- a/tools/A8CellAudit/A8CellAudit.csproj
+++ b/tools/A8CellAudit/A8CellAudit.csproj
@@ -7,6 +7,6 @@
latest
-
+
diff --git a/tools/A8CellAudit/Program.cs b/tools/A8CellAudit/Program.cs
index c9d3df60..ba9578e5 100644
--- a/tools/A8CellAudit/Program.cs
+++ b/tools/A8CellAudit/Program.cs
@@ -445,7 +445,9 @@ static void DumpGfxObj(DatCollection dats, uint gfxObjId)
$"classify: walls={walls} (outwardFacing={outwardWalls} inwardFacing={inwardWalls}) " +
$"floors={floors} ceilings={ceilings} slopes={slopes}");
Console.WriteLine("physics polygons:");
- foreach (var (polyId, poly) in g.PhysicsPolygons.OrderBy(p => p.Key))
+ var physicsPolygons = g.PhysicsPolygons
+ ?? throw new InvalidDataException("GfxObj has no physics polygons collection.");
+ foreach (var (polyId, poly) in physicsPolygons.OrderBy(p => p.Key))
{
Vector3 polyMin = new(float.MaxValue);
Vector3 polyMax = new(float.MinValue);
diff --git a/tools/A8CellAudit/packages.neutral.lock.json b/tools/A8CellAudit/packages.neutral.lock.json
new file mode 100644
index 00000000..359e759d
--- /dev/null
+++ b/tools/A8CellAudit/packages.neutral.lock.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/PesChainAudit/Program.cs b/tools/PesChainAudit/Program.cs
index 78f630ab..89a717e6 100644
--- a/tools/PesChainAudit/Program.cs
+++ b/tools/PesChainAudit/Program.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.IO;
+using AcDream.Content;
using AcDream.Content.Vfx;
using DatReaderWriter;
using DatReaderWriter.DBObjs;
@@ -17,7 +18,8 @@ string datDir = SysEnv.GetEnvironmentVariable("ACDREAM_DAT_DIR")
"Documents", "Asheron's Call");
Console.WriteLine($"datDir = {datDir}");
using var dats = new DatCollection(datDir, DatAccessType.Read);
-var physicsScripts = new RetailPhysicsScriptLoader(dats);
+using var datSource = new DatCollectionAdapter(dats);
+var physicsScripts = new RetailPhysicsScriptLoader(datSource);
uint[] roots = { 0x33000453u, 0x33000428u, 0x3300042Cu, 0x33000429u, 0x3300042Du };
diff --git a/tools/PesChainAudit/packages.neutral.lock.json b/tools/PesChainAudit/packages.neutral.lock.json
new file mode 100644
index 00000000..020f9e8e
--- /dev/null
+++ b/tools/PesChainAudit/packages.neutral.lock.json
@@ -0,0 +1,304 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/ProjectileVfxAudit/packages.neutral.lock.json b/tools/ProjectileVfxAudit/packages.neutral.lock.json
new file mode 100644
index 00000000..020f9e8e
--- /dev/null
+++ b/tools/ProjectileVfxAudit/packages.neutral.lock.json
@@ -0,0 +1,304 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/README.md b/tools/README.md
new file mode 100644
index 00000000..088ee8ae
--- /dev/null
+++ b/tools/README.md
@@ -0,0 +1,33 @@
+# Maintained .NET tools
+
+Every `.csproj` under `tools/` is part of `AcDream.slnx`. The complete Release
+gate restores and builds these tools, so a missing personal checkout or an API
+change cannot leave a tracked tool silently broken. They are diagnostic/manual
+programs: the gate builds them but does not run data-dependent investigations.
+
+| Tool | Purpose | Runtime prerequisite |
+| --- | --- | --- |
+| `A8CellAudit` | Inspect landblock, EnvCell, portal, and collision topology. | Installed AC DAT files / the arguments documented by the program. |
+| `dump-keymap` | Extract the retail master input maps and decoded actions. | Installed `client_portal.dat`. |
+| `PesChainAudit` | Walk weather PES call chains and particle emitters. | Installed AC DAT files. |
+| `ProjectileVfxAudit` | Audit projectile physics-script and particle-emitter VFX mappings. | Installed AC DAT files. |
+| `RainMeshProbe` | Inspect rain surfaces, polygon sidedness, and generated mesh counts. | Installed AC DAT files. |
+| `RetailTimeProbe` | Read retail time-of-day and sky state for comparison. | Windows, a running retail client, and process-read access. |
+| `SetupInspect` | Dump Setup parts, placement poses, and animation frames. | Installed AC DAT files and a Setup ID. |
+| `ShaderCompiler` | Compile the Vulkan GLSL shader set to committed SPIR-V. | Source and output directory arguments. |
+| `SkyObjectInspect` | Inspect Dereth sky/day-group objects and texture data. | Installed AC DAT files. |
+| `StarsProbe` | Audit sky-object geometry, UV ranges, and surfaces. | Installed AC DAT files. |
+| `TextureDump` | Dump render-surface statistics and texture images. | Installed AC DAT files. |
+| `WeatherEnumerator` | Enumerate weather sky objects and their bounds. | Installed AC DAT files. |
+| `WeatherSetupProbe` | Inspect the parts and surfaces of weather Setups. | Installed AC DAT files. |
+
+Build the complete maintained graph with:
+
+```powershell
+dotnet restore AcDream.slnx --locked-mode --force-evaluate
+dotnet build AcDream.slnx -c Release --no-restore
+```
+
+Use `pwsh ./tools/run-release-gate.ps1` for the authoritative bounded gate.
+Package versions and lock-file maintenance are documented in
+[`docs/release-gate.md`](../docs/release-gate.md).
diff --git a/tools/RainMeshProbe/Program.cs b/tools/RainMeshProbe/Program.cs
index 0839f3d9..e66a3028 100644
--- a/tools/RainMeshProbe/Program.cs
+++ b/tools/RainMeshProbe/Program.cs
@@ -17,6 +17,8 @@ using DatReaderWriter.DBObjs;
using DatReaderWriter.Enums;
using DatReaderWriter.Options;
using DatReaderWriter.Types;
+using AcDream.Content;
+using AcDream.Core.Content;
using AcDream.Core.Meshing;
using SysEnv = System.Environment;
@@ -25,9 +27,10 @@ string datDir = SysEnv.GetEnvironmentVariable("ACDREAM_DAT_DIR")
"Documents", "Asheron's Call");
Console.WriteLine($"datDir = {datDir}");
using var dats = new DatCollection(datDir, DatAccessType.Read);
+using var datSource = new DatCollectionAdapter(dats);
uint[] gfxIds = { 0x01004C42u, 0x01004C44u };
-foreach (uint gid in gfxIds) ProbeRain(dats, gid);
+foreach (uint gid in gfxIds) ProbeRain(dats, datSource, gid);
// Phase 7c: also dump every sky surface we know to test the LUMINOUS flag.
// Two existing code comments contradict each other about whether Dereth's
@@ -69,7 +72,7 @@ static void ProbeSkySurface(DatCollection dats, uint sid)
Console.WriteLine(string.Join("|", bits.Where(b => (t & b.mask) != 0).Select(b => b.n)));
}
-static void ProbeRain(DatCollection dats, uint gid)
+static void ProbeRain(DatCollection dats, IDatObjectSource datSource, uint gid)
{
Console.WriteLine();
Console.WriteLine($"================ GfxObj 0x{gid:X8} ================");
@@ -145,7 +148,7 @@ static void ProbeRain(DatCollection dats, uint gid)
// ----- GfxObjMesh.Build() output -----
Console.WriteLine();
Console.WriteLine(" --- GfxObjMesh.Build() output ---");
- var subs = GfxObjMesh.Build(go, dats);
+ var subs = GfxObjMesh.Build(go, datSource);
Console.WriteLine($" Submesh count: {subs.Count}");
int totalVerts = 0, totalIndices = 0;
for (int i = 0; i < subs.Count; i++)
diff --git a/tools/RainMeshProbe/RainMeshProbe.csproj b/tools/RainMeshProbe/RainMeshProbe.csproj
index 7e499da4..9394b297 100644
--- a/tools/RainMeshProbe/RainMeshProbe.csproj
+++ b/tools/RainMeshProbe/RainMeshProbe.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tools/RainMeshProbe/packages.neutral.lock.json b/tools/RainMeshProbe/packages.neutral.lock.json
new file mode 100644
index 00000000..020f9e8e
--- /dev/null
+++ b/tools/RainMeshProbe/packages.neutral.lock.json
@@ -0,0 +1,304 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.content": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Core": "[1.0.0, )",
+ "BCnEncoder.Net.ImageSharp": "[1.1.2, )",
+ "SixLabors.ImageSharp": "[3.1.12, )"
+ }
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "BCnEncoder.Net.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.1.2, )",
+ "resolved": "1.1.2",
+ "contentHash": "qUi8L+bNfHJii95BMBcV6MhBchkKU2VV6sd6D1yyzgm77YhMt+aFT0keh5uf70bvTsRrq/ZKQnE4UQScNU6XAA==",
+ "dependencies": {
+ "BCnEncoder.Net": "2.2.0",
+ "CommunityToolkit.HighPerformance": "8.4.0",
+ "SixLabors.ImageSharp": "3.1.7"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Chorizite.DatReaderWriter": {
+ "type": "CentralTransitive",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.12",
+ "contentHash": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/RetailTimeProbe/packages.neutral.lock.json b/tools/RetailTimeProbe/packages.neutral.lock.json
new file mode 100644
index 00000000..6afd6786
--- /dev/null
+++ b/tools/RetailTimeProbe/packages.neutral.lock.json
@@ -0,0 +1,6 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {}
+ }
+}
\ No newline at end of file
diff --git a/tools/SetupInspect/SetupInspect.csproj b/tools/SetupInspect/SetupInspect.csproj
index 396c926c..9573b13c 100644
--- a/tools/SetupInspect/SetupInspect.csproj
+++ b/tools/SetupInspect/SetupInspect.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tools/SetupInspect/packages.neutral.lock.json b/tools/SetupInspect/packages.neutral.lock.json
new file mode 100644
index 00000000..359e759d
--- /dev/null
+++ b/tools/SetupInspect/packages.neutral.lock.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/ShaderCompiler/ShaderCompiler.csproj b/tools/ShaderCompiler/ShaderCompiler.csproj
index 4526f6ed..86e71055 100644
--- a/tools/ShaderCompiler/ShaderCompiler.csproj
+++ b/tools/ShaderCompiler/ShaderCompiler.csproj
@@ -24,6 +24,6 @@
AcDream.Tools.ShaderCompiler
-
+
diff --git a/tools/ShaderCompiler/packages.neutral.lock.json b/tools/ShaderCompiler/packages.neutral.lock.json
new file mode 100644
index 00000000..941ab0f3
--- /dev/null
+++ b/tools/ShaderCompiler/packages.neutral.lock.json
@@ -0,0 +1,41 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Silk.NET.Shaderc": {
+ "type": "Direct",
+ "requested": "[2.23.0, )",
+ "resolved": "2.23.0",
+ "contentHash": "+pXfOhmSCeeMECOo9HMi3C63LVbQ7FBxPFgxPKOT6mXD8Gg/90Wt4fLX4LqUuVbGid5LW6BXAUu1g17XQoawdA==",
+ "dependencies": {
+ "Silk.NET.Core": "2.23.0",
+ "Silk.NET.Shaderc.Native": "2.23.0"
+ }
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.6",
+ "contentHash": "jek4XYaQ/PGUwDKKhwR8K47Uh1189PFzMeLqO83mXrXQVIpARZCcfuDedH50YDTepBkfijCZN5U/vZi++erxtg=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "fNGvKct2De8ghm0Bpfq0iWthtzIWabgOTi+gJhNOPhNJIowXNEUE2eZNW/zNCzrHVA3PXg2yZ+3cWZndC2IqYA=="
+ },
+ "Silk.NET.Core": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "D7AT/nnwlB+4RZ84XY8QNGBZMJI5z9l4CSSETIJ1wCfRJzRt/341y3MRZ4HbnFz4r/IGaWOEZr86iE+0/65yyQ==",
+ "dependencies": {
+ "Microsoft.DotNet.PlatformAbstractions": "3.1.6",
+ "Microsoft.Extensions.DependencyModel": "9.0.9"
+ }
+ },
+ "Silk.NET.Shaderc.Native": {
+ "type": "Transitive",
+ "resolved": "2.23.0",
+ "contentHash": "H6OMLIWdh2HITvkmj+ALs8LTIdQvQ2/JTtkDXinVbJ3xxrQIBXhVmc9jnuTQ67YDybGlENSMrgthzhLwK0rjnQ=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/SkyObjectInspect/SkyObjectInspect.csproj b/tools/SkyObjectInspect/SkyObjectInspect.csproj
index 54b88ca7..b33d2ee7 100644
--- a/tools/SkyObjectInspect/SkyObjectInspect.csproj
+++ b/tools/SkyObjectInspect/SkyObjectInspect.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tools/SkyObjectInspect/packages.neutral.lock.json b/tools/SkyObjectInspect/packages.neutral.lock.json
new file mode 100644
index 00000000..359e759d
--- /dev/null
+++ b/tools/SkyObjectInspect/packages.neutral.lock.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/StarsProbe/StarsProbe.csproj b/tools/StarsProbe/StarsProbe.csproj
index a70fd013..cb16a884 100644
--- a/tools/StarsProbe/StarsProbe.csproj
+++ b/tools/StarsProbe/StarsProbe.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tools/StarsProbe/packages.neutral.lock.json b/tools/StarsProbe/packages.neutral.lock.json
new file mode 100644
index 00000000..359e759d
--- /dev/null
+++ b/tools/StarsProbe/packages.neutral.lock.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/TextureDump/TextureDump.csproj b/tools/TextureDump/TextureDump.csproj
index 53622fb4..a6cf5a78 100644
--- a/tools/TextureDump/TextureDump.csproj
+++ b/tools/TextureDump/TextureDump.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tools/TextureDump/packages.neutral.lock.json b/tools/TextureDump/packages.neutral.lock.json
new file mode 100644
index 00000000..3df2e7d1
--- /dev/null
+++ b/tools/TextureDump/packages.neutral.lock.json
@@ -0,0 +1,285 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "Autofac": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "XMWHyO6fXTv8rwCfhm6+64mQS6CyL0rve/hWSODsUrVuEGtq1fjxSOlVTBqCRsW6L8K3OQDskJaPB1boVMI2eQ=="
+ },
+ "Chorizite.ACProtocol": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "PVDw/KRu4WPxT+2MzHwOQ9UFqYlOgpIRswSnco/EgHSHnbQyxOqxwiOwSK0Il+cI6dTSXTW34QNmL7iH0lXLKw==",
+ "dependencies": {
+ "Chorizite.Common": "1.0.0",
+ "Medo.PcapRW": "1.2.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "System.CodeDom": "9.0.0"
+ }
+ },
+ "Chorizite.Common": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "KqI0su7UY2diiSQuq11gF/NztqR6orZLr/e5UKTQ91XM8OsZGgBGHmhf2/jopX9VhwpXOTTLIeFBYTBc30cK8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0"
+ }
+ },
+ "CommunityToolkit.HighPerformance": {
+ "type": "Transitive",
+ "resolved": "8.4.0",
+ "contentHash": "flxspiBs0G/0GMp7IK2J2ijV9bTG6hEwFc/z6ekHqB6nwRJ4Ry2yLdx+TkbCUYFCl4XhABkAwomeKbT6zM2Zlg=="
+ },
+ "Cyotek.Drawing.BitmapFont": {
+ "type": "Transitive",
+ "resolved": "2.0.4",
+ "contentHash": "iA6WehGVdMUuNbfsQQDq/Bt+mMd/OqHjiMUtKFLIQd/0pyYh4ehT7FEjTxN9/4OXNKQZsp9bAJgltP2nnswUJg=="
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "FontStashSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.10",
+ "contentHash": "7JTrihTt3DR8LYbb4L1eZcnbwOUOu/mvY+PJoZ3WVWiKjA6xNUk93GSW3OC/kZBD3iYzrXK8QlmKyYY5Lef/Rg==",
+ "dependencies": {
+ "Cyotek.Drawing.BitmapFont": "2.0.4",
+ "FontStashSharp.Base": "1.1.9",
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": "1.1.9",
+ "StbImageSharp": "2.30.15"
+ }
+ },
+ "FontStashSharp.Base": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "/AjkOcPNijs8vyNgcCj3FfBJbVWmsSH744hqkhLfBt8qspDz/tEoD+U09my5u9eRBX6zX+RLQ/gdCvwy+ZBOtg=="
+ },
+ "FontStashSharp.Rasterizers.StbTrueTypeSharp": {
+ "type": "Transitive",
+ "resolved": "1.1.9",
+ "contentHash": "yi5iuTERem46uyHC5p+jRi3Jh8dKWzgNWLqcvHciGlyVHD1cWFdERgnxshZU4xWB2hRGnogxaCudCirbMpg4eQ==",
+ "dependencies": {
+ "FontStashSharp.Base": "1.1.9",
+ "StbTrueTypeSharp": "1.26.12"
+ }
+ },
+ "Medo.PcapRW": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "vgwcHDg60Q9LJfry7twA78pUFio1P4EypI2IIlk+7mEuySsIRInm+Gx2OINDICyocbuyQZdS/zABjbmejAObeg=="
+ },
+ "Microsoft.Bcl.AsyncInterfaces": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg=="
+ },
+ "Microsoft.Diagnostics.NETCore.Client": {
+ "type": "Transitive",
+ "resolved": "0.2.410101",
+ "contentHash": "I4hMjlbPcM5R+M4ThD2Zt1z58M8uZnWkDbFLXHntOOAajajEucrw4XYNSaoi5rgoqksgxQ3g388Vof4QzUNwdQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.Logging": "2.1.1"
+ }
+ },
+ "Microsoft.Diagnostics.Runtime": {
+ "type": "Transitive",
+ "resolved": "3.1.512801",
+ "contentHash": "0lMUDr2oxNZa28D6NH5BuSQEe5T9tZziIkvkD44YkkCGQXPJqvFjLq5ZQq1hYLl3RjQJrY+hR0jFgap+EWPDTw==",
+ "dependencies": {
+ "Microsoft.Diagnostics.NETCore.Client": "0.2.410101"
+ }
+ },
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "9.0.9",
+ "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "2.1.1",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Options": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
+ "Microsoft.Extensions.Primitives": "2.1.1"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.1",
+ "contentHash": "scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg=="
+ },
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.3",
+ "contentHash": "KLk2gLR9f8scM82EiL+p9TONXXPy9+IAZVMzJOA/Wsa7soZD7UJGG6j0fq0D9ZoVnBRRnSeEC7kShhRo3Olgaw=="
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.3",
+ "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
+ },
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "3a7ntoBncSKkLgpIhT3uQ8BiyDzYKOHIzpzNF4o1vtKc+Re4vWxBcDXFDarOWcr/UkxZ8nxRXbbWk05j6bXFzQ==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.5.1",
+ "Namotion.Reflection": "3.4.3",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.5.1",
+ "contentHash": "xiqZ2DBJM1HuV+EhXgueb5ZUBlWFN3kVfLTKdtpTSxvtyQCO/vit8lqZiUiejnReUMRMIUhtS9m0GbieHZlSow=="
+ },
+ "SixLabors.Fonts": {
+ "type": "Transitive",
+ "resolved": "2.1.3",
+ "contentHash": "ORWbZ5BHrC/LZvo+Y09MnoJq5VUKD85LsYALk+YI7CHFra+m5arCkz00IntDM6SrAiB22bvSdKtKmuCyHOKlqg=="
+ },
+ "SixLabors.ImageSharp.Drawing": {
+ "type": "Transitive",
+ "resolved": "2.1.7",
+ "contentHash": "9KwCo9Fa350cx6ckpsy8NqXQZKwir4RQ8Kj0sdCmJA7wsK9FMyfgC527Sn4l/D6bj2ditSHlhS7dGzcgGszvSQ==",
+ "dependencies": {
+ "SixLabors.Fonts": "2.1.3",
+ "SixLabors.ImageSharp": "3.1.11"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ },
+ "acdream.core": {
+ "type": "Project",
+ "dependencies": {
+ "AcDream.Plugin.Abstractions": "[1.0.0, )",
+ "BCnEncoder.Net": "[2.2.1, )",
+ "Chorizite.Core": "[0.0.18, )",
+ "Chorizite.DatReaderWriter": "[2.1.7, )",
+ "Serilog": "[4.0.2, )",
+ "StbImageSharp": "[2.30.16, )"
+ }
+ },
+ "acdream.plugin.abstractions": {
+ "type": "Project"
+ },
+ "BCnEncoder.Net": {
+ "type": "CentralTransitive",
+ "requested": "[2.2.1, )",
+ "resolved": "2.2.1",
+ "contentHash": "tI5+/OQo0kciLqWrViRjpOH+IL3FjexYnoWZajiGV41g/EM9CGbWsxsPzBDmpoxNkrV9uox/EtIhCIi9chBSFw==",
+ "dependencies": {
+ "CommunityToolkit.HighPerformance": "8.4.0"
+ }
+ },
+ "Chorizite.Core": {
+ "type": "CentralTransitive",
+ "requested": "[0.0.18, )",
+ "resolved": "0.0.18",
+ "contentHash": "Pvf5idSsN0NfhZspJhrpo7QiNTmHx3mnKFkmAvHFpEFx+RnqfXh96Q+Pxam+hrqXbimmKGfk1ooIl5kpQcMo6w==",
+ "dependencies": {
+ "Autofac": "8.4.0",
+ "Chorizite.ACProtocol": "1.0.1",
+ "Chorizite.Common": "1.0.3",
+ "Chorizite.DatReaderWriter": "1.0.0",
+ "FontStashSharp": "1.3.10",
+ "Microsoft.Diagnostics.Runtime": "3.1.512801",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.9",
+ "NJsonSchema": "11.5.1",
+ "SixLabors.ImageSharp": "3.1.11",
+ "SixLabors.ImageSharp.Drawing": "2.1.7"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.9, )",
+ "resolved": "9.0.9",
+ "contentHash": "FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
+ }
+ },
+ "Serilog": {
+ "type": "CentralTransitive",
+ "requested": "[4.0.2, )",
+ "resolved": "4.0.2",
+ "contentHash": "Vehq4uNYtURe/OnHEpWGvMgrvr5Vou7oZLdn3BuEH5FSCeHXDpNJtpzWoqywXsSvCTuiv0I65mZDRnJSeUvisA=="
+ },
+ "SixLabors.ImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.12, )",
+ "resolved": "3.1.11",
+ "contentHash": "JfPLyigLthuE50yi6tMt7Amrenr/fA31t2CvJyhy/kQmfulIBAqo5T/YFUSRHtuYPXRSaUHygFeh6Qd933EoSw=="
+ },
+ "StbImageSharp": {
+ "type": "CentralTransitive",
+ "requested": "[2.30.16, )",
+ "resolved": "2.30.16",
+ "contentHash": "qg1i+NHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw=="
+ },
+ "StbTrueTypeSharp": {
+ "type": "CentralTransitive",
+ "requested": "[1.26.12, )",
+ "resolved": "1.26.12",
+ "contentHash": "hCc6/OsfcPa5VsLECcEU2m78WOshBrKwK42nAodSm9Z5wH68f7n66SoiRLCdGCkDaqbWz2TlX4zYHIjogj1HJA=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/WeatherEnumerator/WeatherEnumerator.csproj b/tools/WeatherEnumerator/WeatherEnumerator.csproj
index 5d89c3e0..8ca8cc30 100644
--- a/tools/WeatherEnumerator/WeatherEnumerator.csproj
+++ b/tools/WeatherEnumerator/WeatherEnumerator.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tools/WeatherEnumerator/packages.neutral.lock.json b/tools/WeatherEnumerator/packages.neutral.lock.json
new file mode 100644
index 00000000..359e759d
--- /dev/null
+++ b/tools/WeatherEnumerator/packages.neutral.lock.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/WeatherSetupProbe/WeatherSetupProbe.csproj b/tools/WeatherSetupProbe/WeatherSetupProbe.csproj
index aed64907..b87d24d0 100644
--- a/tools/WeatherSetupProbe/WeatherSetupProbe.csproj
+++ b/tools/WeatherSetupProbe/WeatherSetupProbe.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/tools/WeatherSetupProbe/packages.neutral.lock.json b/tools/WeatherSetupProbe/packages.neutral.lock.json
new file mode 100644
index 00000000..359e759d
--- /dev/null
+++ b/tools/WeatherSetupProbe/packages.neutral.lock.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/dump-keymap/Program.cs b/tools/dump-keymap/Program.cs
index 22e10c79..fc29d896 100644
--- a/tools/dump-keymap/Program.cs
+++ b/tools/dump-keymap/Program.cs
@@ -68,7 +68,7 @@ foreach (uint id in new uint[] { 0x14000000u, 0x14000002u })
Console.WriteLine(
$" {Dik(scan),-12}{(mods.Length > 0 ? "+" + mods : " ")} " +
$"(scan=0x{scan:X2}, dev={dev}) " +
- $"Action=0x{m.Unknown:X8} " +
+ $"Action=0x{m.Unknown:X8} ({Action(m.Unknown)}) " +
$"Activation=0x{m.Activation:X2}");
}
}
diff --git a/tools/dump-keymap/dump-keymap.csproj b/tools/dump-keymap/dump-keymap.csproj
index 0f37cbb3..6cf18135 100644
--- a/tools/dump-keymap/dump-keymap.csproj
+++ b/tools/dump-keymap/dump-keymap.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/tools/dump-keymap/packages.neutral.lock.json b/tools/dump-keymap/packages.neutral.lock.json
new file mode 100644
index 00000000..359e759d
--- /dev/null
+++ b/tools/dump-keymap/packages.neutral.lock.json
@@ -0,0 +1,27 @@
+{
+ "version": 2,
+ "dependencies": {
+ "net10.0": {
+ "Chorizite.DatReaderWriter": {
+ "type": "Direct",
+ "requested": "[2.1.7, )",
+ "resolved": "2.1.7",
+ "contentHash": "6CpUhfHDV/O+lNx0xUZUcXK7wGkEkHYCnGHFtD8BBeAv4i1BuaNfTID+VQoSzx2EtmOVM0A2O/9wRFibApz6rQ==",
+ "dependencies": {
+ "DotNet.Standard.Common": "2.0.1",
+ "ZLibDotNet": "0.1.1"
+ }
+ },
+ "DotNet.Standard.Common": {
+ "type": "Transitive",
+ "resolved": "2.0.1",
+ "contentHash": "zW0m0ytHi43ccbEOTNDa10cDDnT7BAzY1R1Rb1dlhbdkiyglsALjrsyTPSEjbdnTmCOAvAvl4kkbvBLoYhC6dQ=="
+ },
+ "ZLibDotNet": {
+ "type": "Transitive",
+ "resolved": "0.1.1",
+ "contentHash": "QEti4O7dwRcOb9zbnLuudSrt2IT61OYjq0R7lcJb+EzUm5N6djOVGU/cp+FZIZzJUnaFIntwrpwiuRvhpS7ZHg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/tools/run-release-gate.ps1 b/tools/run-release-gate.ps1
index 7ad387cd..27ddead4 100644
--- a/tools/run-release-gate.ps1
+++ b/tools/run-release-gate.ps1
@@ -3,12 +3,14 @@
Runs the complete portable Release gate with bounded child processes.
.DESCRIPTION
- Discovers every test project under tests/ that declares itself through
- Microsoft.NET.Test.Sdk or IsTestProject, verifies that AcDream.slnx owns it,
- restores and builds the solution, and then runs each test assembly in a
- fresh process. Every process has an outer hard timeout. Test processes also
- use VSTest blame-hang collection, so a stuck test host is terminated with a
- mini dump before the outer watchdog is allowed to kill the process tree.
+ Verifies that AcDream.slnx owns every project under src/, tests/, and tools/;
+ performs a locked restore; builds that complete supported graph; discovers
+ every test project under tests/ that declares itself through
+ Microsoft.NET.Test.Sdk or IsTestProject; and then runs each test assembly in
+ a fresh process. Every process has an outer hard timeout. Test processes
+ also use VSTest blame-hang collection, so a stuck test host is terminated
+ with a mini dump before the outer watchdog is allowed to kill the process
+ tree.
The evidence directory contains process logs, one TRX per test assembly,
any blame sequence/dump files, an environment report, an aggregate JSON
@@ -171,6 +173,48 @@ function Invoke-BoundedDotnet {
return $result
}
+function Get-SolutionProjects {
+ [xml]$solution = Get-Content -LiteralPath $solutionPath
+ $projectPaths = @(
+ $solution.SelectNodes('//Project') |
+ ForEach-Object { [string]$_.Path } |
+ Sort-Object -Unique
+ )
+ if ($projectPaths.Count -eq 0) {
+ throw 'AcDream.slnx contains no projects.'
+ }
+
+ $projects = @(
+ foreach ($relativePath in $projectPaths) {
+ $fullPath = [IO.Path]::GetFullPath((Join-Path $repoRoot $relativePath))
+ if (-not (Test-Path -LiteralPath $fullPath -PathType Leaf)) {
+ throw "Solution project '$relativePath' does not exist."
+ }
+ Get-Item -LiteralPath $fullPath
+ }
+ )
+
+ $maintainedProjects = @(
+ foreach ($directoryName in @('src', 'tests', 'tools')) {
+ Get-ChildItem -LiteralPath (Join-Path $repoRoot $directoryName) -Recurse -Filter '*.csproj' -File
+ }
+ )
+ $solutionSet = [Collections.Generic.HashSet[string]]::new(
+ [StringComparer]::OrdinalIgnoreCase)
+ foreach ($project in $projects) {
+ [void]$solutionSet.Add($project.FullName)
+ }
+ $missing = @($maintainedProjects | Where-Object { -not $solutionSet.Contains($_.FullName) })
+ if ($missing.Count -gt 0) {
+ $missingText = $missing |
+ ForEach-Object { [IO.Path]::GetRelativePath($repoRoot, $_.FullName).Replace('\', '/') } |
+ Sort-Object
+ throw "Maintained projects missing from AcDream.slnx: $($missingText -join ', ')"
+ }
+
+ return $projects
+}
+
function Get-TestProjects {
$solutionText = Get-Content -LiteralPath $solutionPath -Raw
$projects = @(
@@ -240,6 +284,7 @@ function Write-ArtifactHashes {
Push-Location $repoRoot
try {
$gateStartedUtc = [DateTimeOffset]::UtcNow
+ $solutionProjects = @(Get-SolutionProjects)
$testProjects = @(Get-TestProjects)
$processes = [Collections.Generic.List[object]]::new()
$testReports = [Collections.Generic.List[object]]::new()
@@ -263,6 +308,29 @@ try {
(dotnet nuget list source | Out-String)
'--- worktree status at gate start ---'
($worktreeStatus -join [Environment]::NewLine)
+ '--- supported solution projects ---'
+ ($solutionProjects | ForEach-Object {
+ [IO.Path]::GetRelativePath($repoRoot, $_.FullName).Replace('\', '/')
+ })
+ '--- package lock files ---'
+ ($solutionProjects | ForEach-Object {
+ $relativeProject = [IO.Path]::GetRelativePath($repoRoot, $_.FullName).Replace('\', '/')
+ $lockNames = [Collections.Generic.List[string]]::new()
+ $lockNames.Add('packages.neutral.lock.json')
+ if ($relativeProject.StartsWith('src/', [StringComparison]::OrdinalIgnoreCase)) {
+ $lockNames.Add('packages.win-x64.lock.json')
+ $lockNames.Add('packages.linux-x64.lock.json')
+ }
+ foreach ($lockName in $lockNames) {
+ $lockPath = Join-Path $_.DirectoryName $lockName
+ if (-not (Test-Path -LiteralPath $lockPath -PathType Leaf)) {
+ throw "Supported project '$($_.FullName)' has no $lockName."
+ }
+ $relative = [IO.Path]::GetRelativePath($repoRoot, $lockPath).Replace('\', '/')
+ $hash = (Get-FileHash -LiteralPath $lockPath -Algorithm SHA256).Hash.ToLowerInvariant()
+ "$hash $relative"
+ }
+ })
'--- discovered test projects ---'
($testProjects | ForEach-Object {
[IO.Path]::GetRelativePath($repoRoot, $_.FullName).Replace('\', '/')
@@ -272,7 +340,7 @@ try {
if (-not $SkipRestore) {
$restore = Invoke-BoundedDotnet -Label 'restore' -TimeoutSeconds $RestoreTimeoutSeconds -Arguments @(
- 'restore', $solutionPath, '--nologo'
+ 'restore', $solutionPath, '--locked-mode', '--force-evaluate', '--nologo'
)
$processes.Add($restore)
if ($restore.ExitCode -ne 0) {
diff --git a/tools/update-package-locks.ps1 b/tools/update-package-locks.ps1
new file mode 100644
index 00000000..2381eb5f
--- /dev/null
+++ b/tools/update-package-locks.ps1
@@ -0,0 +1,46 @@
+<#
+.SYNOPSIS
+ Regenerates every neutral and release-RID NuGet lock file.
+#>
+[CmdletBinding()]
+param()
+
+Set-StrictMode -Version Latest
+$ErrorActionPreference = 'Stop'
+
+$repoRoot = [IO.Path]::GetFullPath((Split-Path -Parent $PSScriptRoot))
+$solutionPath = Join-Path $repoRoot 'AcDream.slnx'
+
+function Invoke-Restore {
+ param([Parameter(Mandatory)] [string[]]$Arguments)
+
+ Write-Host "dotnet $($Arguments -join ' ')"
+ & dotnet @Arguments
+ if ($LASTEXITCODE -ne 0) {
+ throw "dotnet restore failed with exit code $LASTEXITCODE."
+ }
+}
+
+Push-Location $repoRoot
+try {
+ Invoke-Restore -Arguments @('restore', $solutionPath, '--force-evaluate', '--nologo')
+
+ $sourceProjects = @(
+ Get-ChildItem -LiteralPath (Join-Path $repoRoot 'src') -Recurse -Filter '*.csproj' -File |
+ Sort-Object FullName
+ )
+ foreach ($runtimeIdentifier in @('win-x64', 'linux-x64')) {
+ foreach ($project in $sourceProjects) {
+ Invoke-Restore -Arguments @(
+ 'restore'
+ $project.FullName
+ '-r'
+ $runtimeIdentifier
+ '--force-evaluate'
+ '--nologo'
+ )
+ }
+ }
+} finally {
+ Pop-Location
+}