Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 26 additions & 21 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@
</PropertyGroup>
<!-- Microsoft Extensions -->
<ItemGroup>
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Logging.Debug" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Logging.Debug" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="8.0.0" />
<PackageVersion Include="OsmSharp" Version="6.2.0" />
<PackageVersion Include="PublicApiGenerator" Version="11.5.4" />
Expand All @@ -27,10 +27,10 @@
</ItemGroup>
<!-- System Packages -->
<ItemGroup>
<PackageVersion Include="System.Text.Encodings.Web" Version="10.0.8" />
<PackageVersion Include="System.Text.Encodings.Web" Version="10.0.9" />
<!-- Override transitive 4.3.0 (NU1903 / GHSA-cmhx-cq75-c4mj). -->
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageVersion Include="System.Text.Json" Version="10.0.8" />
<PackageVersion Include="System.Text.Json" Version="10.0.9" />
<PackageVersion Include="System.Xml.XmlDocument" Version="4.3.0" />
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageVersion Include="System.Reactive" Version="6.0.1" />
Expand Down Expand Up @@ -59,6 +59,9 @@
<PackageVersion Include="JetBrains.Annotations" Version="2025.2.0" />
<PackageVersion Include="LlamaSharp" Version="0.25.0" />
<PackageVersion Include="LLamaSharp.Backend.Cpu" Version="0.25.0" />
<PackageVersion Include="Microsoft.Extensions.AI" Version="10.7.0" />
<PackageVersion Include="Microsoft.Extensions.VectorData.Abstractions" Version="10.7.0" />
<PackageVersion Include="Microsoft.Extensions.AI.Abstractions" Version="10.7.0" />
<PackageVersion Include="StackExchange.Redis" Version="2.7.17" />
<PackageVersion Include="Spectre.Console" Version="0.48.0" />
<PackageVersion Include="YamlDotNet" Version="13.7.1" />
Expand Down Expand Up @@ -112,10 +115,12 @@
</ItemGroup>
<!-- AWS Packages -->
<ItemGroup>
<PackageVersion Include="AWSSDK.S3" Version="3.7.305.12" />
<PackageVersion Include="AWSSDK.Lambda" Version="3.7.305.12" />
<PackageVersion Include="AWSSDK.DynamoDBv2" Version="3.7.400" />
<PackageVersion Include="AWSSDK.Core" Version="3.7.305.12" />
<PackageVersion Include="AWSSDK.S3" Version="4.0.101" />
<PackageVersion Include="AWSSDK.Lambda" Version="4.0.103" />
<PackageVersion Include="AWSSDK.DynamoDBv2" Version="4.0.101.1" />
<PackageVersion Include="AWSSDK.Core" Version="4.0.100.4" />
<PackageVersion Include="AWSSDK.BedrockRuntime" Version="4.0.100.3" />
<PackageVersion Include="AWSSDK.Extensions.Bedrock.MEAI" Version="4.0.101.3" />
</ItemGroup>
<!-- Entity Framework Packages -->
<ItemGroup>
Expand All @@ -131,7 +136,7 @@
<PackageVersion Include="SQLitePCLRaw.bundle_e_sqlite3" Version="3.0.3" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.8" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.9" />
<PackageVersion Include="Dapper" Version="2.1.72" />
<PackageVersion Include="Npgsql" Version="8.0.6" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.1.5" />
Expand Down
8 changes: 7 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: build build-core build-demos prod-dry-run prod-dry-run-agent-server restore-core test test-prod-style test-framework-prod-first test-prime-time test-prime-time-full test-cross-platform test-portable test-multi-env test-all-platforms test-all-platforms-ephemeral ci-verify kernel-gate kernel-gate-tier-b kernel-gate-tier-c kernel-gate-tier-d kernel-gate-tier-e kernel-gate-full application-gate application-gate-tier-a application-gate-tier-b application-gate-tier-c application-gate-tier-d application-gate-full composition-mesh-gate composition-mesh-gate-tier-a composition-mesh-gate-tier-b composition-mesh-gate-tier-c composition-mesh-gate-tier-d composition-mesh-gate-full dependency-boundary-gate ship-gate ship-gate-tier-a ship-gate-tier-b ship-gate-tier-c ship-gate-tier-d ship-gate-full ops-gate ops-gate-tier-a ops-gate-tier-b ops-gate-tier-c ops-gate-tier-d ops-gate-tier-e ops-gate-full security-gate security-gate-tier-a security-gate-tier-b security-gate-tier-c security-gate-tier-d security-gate-tier-e security-gate-full rc-gate rc-gate-tier-a rc-gate-tier-b rc-gate-tier-c rc-gate-tier-d rc-gate-tier-e rc-gate-full perf-gate perf-gate-tier-a perf-gate-tier-b perf-gate-tier-c perf-gate-tier-d perf-gate-full compat-gate compat-gate-tier-a compat-gate-tier-b compat-gate-tier-c compat-gate-full dr-gate dr-gate-tier-a dr-gate-tier-b dr-gate-tier-c dr-gate-full waterproofing-gate-full nexo-ready-gate bootstrap-mesh-lab-env validate-safe review-summary clean-test-artifacts test-readiness-gate release-preflight release-gate release-dispatch release-staging verify-staging release-staging-and-verify verify-external-product-shape mesh-lab-e2e mesh-lab-e2e-workers mesh-lab-e2e-deep mesh-lab-e2e-stress mesh-lab-up mesh-lab-verify mesh-lab-verify-deep mesh-lab-verify-entitlements mesh-lab-verify-governance mesh-lab-verify-director-cli mesh-lab-verify-persistence mesh-lab-verify-network-negative mesh-lab-verify-post-stress mesh-lab-stress mesh-lab-down test-mesh-lab
.PHONY: build build-core build-demos prod-dry-run prod-dry-run-agent-server restore-core test test-prod-style test-framework-prod-first test-prime-time test-prime-time-full test-cross-platform test-portable test-multi-env test-all-platforms test-all-platforms-ephemeral ci-verify meai-pipeline-gate kernel-gate kernel-gate-tier-b kernel-gate-tier-c kernel-gate-tier-d kernel-gate-tier-e kernel-gate-full application-gate application-gate-tier-a application-gate-tier-b application-gate-tier-c application-gate-tier-d application-gate-full composition-mesh-gate composition-mesh-gate-tier-a composition-mesh-gate-tier-b composition-mesh-gate-tier-c composition-mesh-gate-tier-d composition-mesh-gate-full dependency-boundary-gate ship-gate ship-gate-tier-a ship-gate-tier-b ship-gate-tier-c ship-gate-tier-d ship-gate-full ops-gate ops-gate-tier-a ops-gate-tier-b ops-gate-tier-c ops-gate-tier-d ops-gate-tier-e ops-gate-full security-gate security-gate-tier-a security-gate-tier-b security-gate-tier-c security-gate-tier-d security-gate-tier-e security-gate-full rc-gate rc-gate-tier-a rc-gate-tier-b rc-gate-tier-c rc-gate-tier-d rc-gate-tier-e rc-gate-full perf-gate perf-gate-tier-a perf-gate-tier-b perf-gate-tier-c perf-gate-tier-d perf-gate-full compat-gate compat-gate-tier-a compat-gate-tier-b compat-gate-tier-c compat-gate-full dr-gate dr-gate-tier-a dr-gate-tier-b dr-gate-tier-c dr-gate-full waterproofing-gate-full nexo-ready-gate bootstrap-mesh-lab-env validate-safe review-summary clean-test-artifacts test-readiness-gate release-preflight release-gate release-dispatch release-staging verify-staging release-staging-and-verify verify-external-product-shape mesh-lab-e2e mesh-lab-e2e-workers mesh-lab-e2e-deep mesh-lab-e2e-stress mesh-lab-up mesh-lab-verify mesh-lab-verify-deep mesh-lab-verify-entitlements mesh-lab-verify-governance mesh-lab-verify-director-cli mesh-lab-verify-persistence mesh-lab-verify-network-negative mesh-lab-verify-post-stress mesh-lab-stress mesh-lab-down test-mesh-lab

# External product shape: packed Nexo.* feed → authored brick + thin host + HTTP client (no repo refs).
verify-external-product-shape:
Expand Down Expand Up @@ -177,6 +177,11 @@ testing-strategy-gate:
dependency-boundary-gate:
bash scripts/dependency-boundary-gate.sh

# MEAI governed pipeline + VectorData RAG architecture tests (net8).
meai-pipeline-gate:
dotnet test src/Nexo.Tests.AI.Pipeline/Nexo.Tests.AI.Pipeline.csproj -f net8.0 -c Release --nologo \
--blame-hang-timeout 120s --blame-hang-dump-type none

kernel-gate:
dotnet build Nexo.Runtime.sln -v minimal
dotnet build src/Nexo.Tests.Infrastructure/Nexo.Tests.Infrastructure.csproj -v minimal
Expand All @@ -186,6 +191,7 @@ kernel-gate:
NEXO_ALLOW_MOCK=1 dotnet test src/Nexo.Tests.Infrastructure/Nexo.Tests.Infrastructure.csproj -f net8.0 --no-build \
--filter "FullyQualifiedName~PipelineTemplateValidatorTests|FullyQualifiedName~PipelineLifecycleE2ETests" \
--blame-hang-timeout 120s --blame-hang-dump-type none
$(MAKE) meai-pipeline-gate
@if [ "$${KERNEL_GATE_PRODSTYLE:-0}" = "1" ]; then $(MAKE) test-prod-style; fi
@if [ "$${KERNEL_GATE_MESH:-0}" = "1" ]; then $(MAKE) mesh-lab-verify; fi

Expand Down
30 changes: 30 additions & 0 deletions Nexo.Kernel.sln
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.Spatial.Platform.XREAL
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.Spatial.Platform.VisionPro", "src\Nexo.Spatial.Platform.VisionPro\Nexo.Spatial.Platform.VisionPro.csproj", "{AF198EA0-BF30-4C9A-BED5-43E0C3F047F1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.AI.Pipeline", "src\Nexo.AI.Pipeline\Nexo.AI.Pipeline.csproj", "{8115FD2E-46AF-4A38-914D-B4D00AEE5414}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.Tests.AI.Pipeline", "src\Nexo.Tests.AI.Pipeline\Nexo.Tests.AI.Pipeline.csproj", "{0B55F79C-992F-4664-AF04-DFDD55D9812F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -407,6 +411,30 @@ Global
{AF198EA0-BF30-4C9A-BED5-43E0C3F047F1}.Release|x64.Build.0 = Release|Any CPU
{AF198EA0-BF30-4C9A-BED5-43E0C3F047F1}.Release|x86.ActiveCfg = Release|Any CPU
{AF198EA0-BF30-4C9A-BED5-43E0C3F047F1}.Release|x86.Build.0 = Release|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Debug|x64.ActiveCfg = Debug|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Debug|x64.Build.0 = Debug|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Debug|x86.ActiveCfg = Debug|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Debug|x86.Build.0 = Debug|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Release|Any CPU.Build.0 = Release|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Release|x64.ActiveCfg = Release|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Release|x64.Build.0 = Release|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Release|x86.ActiveCfg = Release|Any CPU
{8115FD2E-46AF-4A38-914D-B4D00AEE5414}.Release|x86.Build.0 = Release|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Debug|x64.ActiveCfg = Debug|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Debug|x64.Build.0 = Debug|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Debug|x86.ActiveCfg = Debug|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Debug|x86.Build.0 = Debug|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Release|Any CPU.Build.0 = Release|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Release|x64.ActiveCfg = Release|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Release|x64.Build.0 = Release|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Release|x86.ActiveCfg = Release|Any CPU
{0B55F79C-992F-4664-AF04-DFDD55D9812F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -440,5 +468,7 @@ Global
{075FBDC0-DF1B-46B2-A74E-70C1A6CCF6B1} = {31297073-3FD6-401C-A313-89BE7C850D6B}
{B3BA94D1-49D6-4781-8BF7-7939560DD859} = {31297073-3FD6-401C-A313-89BE7C850D6B}
{AF198EA0-BF30-4C9A-BED5-43E0C3F047F1} = {31297073-3FD6-401C-A313-89BE7C850D6B}
{8115FD2E-46AF-4A38-914D-B4D00AEE5414} = {31297073-3FD6-401C-A313-89BE7C850D6B}
{0B55F79C-992F-4664-AF04-DFDD55D9812F} = {31297073-3FD6-401C-A313-89BE7C850D6B}
EndGlobalSection
EndGlobal
30 changes: 30 additions & 0 deletions Nexo.Runtime.sln
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.BackgroundAgents.HostR
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.Hosting", "src\Nexo.Hosting\Nexo.Hosting.csproj", "{852A6EFA-21A3-47A3-8EC8-35A0B06CA36A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.AI.Pipeline", "src\Nexo.AI.Pipeline\Nexo.AI.Pipeline.csproj", "{50497523-BE3C-474B-B18F-484FADF6CE30}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nexo.Tests.AI.Pipeline", "src\Nexo.Tests.AI.Pipeline\Nexo.Tests.AI.Pipeline.csproj", "{DF6026C1-BA7D-4B91-9264-B505DF100551}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -253,6 +257,30 @@ Global
{852A6EFA-21A3-47A3-8EC8-35A0B06CA36A}.Release|x64.Build.0 = Release|Any CPU
{852A6EFA-21A3-47A3-8EC8-35A0B06CA36A}.Release|x86.ActiveCfg = Release|Any CPU
{852A6EFA-21A3-47A3-8EC8-35A0B06CA36A}.Release|x86.Build.0 = Release|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Debug|Any CPU.Build.0 = Debug|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Debug|x64.ActiveCfg = Debug|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Debug|x64.Build.0 = Debug|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Debug|x86.ActiveCfg = Debug|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Debug|x86.Build.0 = Debug|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Release|Any CPU.ActiveCfg = Release|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Release|Any CPU.Build.0 = Release|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Release|x64.ActiveCfg = Release|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Release|x64.Build.0 = Release|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Release|x86.ActiveCfg = Release|Any CPU
{50497523-BE3C-474B-B18F-484FADF6CE30}.Release|x86.Build.0 = Release|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Debug|x64.ActiveCfg = Debug|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Debug|x64.Build.0 = Debug|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Debug|x86.ActiveCfg = Debug|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Debug|x86.Build.0 = Debug|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Release|Any CPU.Build.0 = Release|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Release|x64.ActiveCfg = Release|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Release|x64.Build.0 = Release|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Release|x86.ActiveCfg = Release|Any CPU
{DF6026C1-BA7D-4B91-9264-B505DF100551}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -275,5 +303,7 @@ Global
{215BF0F8-C5B4-4310-BDFF-E6930BDB5E6E} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{8DB1D6CC-D71C-4060-B481-2C1362ACB719} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{852A6EFA-21A3-47A3-8EC8-35A0B06CA36A} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{50497523-BE3C-474B-B18F-484FADF6CE30} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{DF6026C1-BA7D-4B91-9264-B505DF100551} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
EndGlobalSection
EndGlobal
Loading
Loading